WEBサービス

axis2のセキュリティポリシー

特に必要性はないのだがふと気になってセキュリティマネージャを有効にしてaxis2のサービスを動かしてみた。 まあSecurityException出まくりで動かないこと(笑) 一つ一つSecurityExceptionを解決しながらとりあえず動くところまでやってみたところ、axis2の…

axis2でのログ設定

axis2でコンテナとサービスのログ設定を完全に切り離そうとしてハマった。 ※log4jに起因するものなので他のログ実装ではあてはまらないかもしれない。 最初は単にEnableChildFirstClassLoadingパラメータを有効にして必要なjarをアーカイブに入れればできる…

axis2でのサービスdeploy

どこのサイトを見てもaarファイルにアーカイブしてservicesディレクトリに置くように書かれているが、アーカイブしなくてもdeployできることに気がついた。 servicesディレクトリの中にサブディレクトリを作ってその中にアーカイブに入れるファイルをすべて…

axis2でのサービスの設定ファイル

axis2でサービスをdeployする時は関連ファイルをすべてまとめたzipファイルをaarという拡張子にしてコンテナのWEB-INF/servicesディレクトリに置く。 まあ至極簡単でいいのだが、サービス独自の設定ファイルをどこに置くかが問題になる。 aarファイルに入れ…

WSDL2Java

WSDL2Javaで自動生成されるコードの変更方法を調べてみた。 ちなみにadb用の場合。 jibxとかは使ってないので知らない。 生成されるコードの元になっているテンプレートはaxis2-adb-codegen-1.6.1.jarに入っているorg.apache.axis2.schema.template.ADBBean…

activation.jar

webサービスから画像データを戻そうとしてはまった。 wsdlで型をbase64binaryにすればいいらしいことはわかった。 こうするとbeanの型がjavax.activation.DataHandlerという型になる。 しかしjava6では問題ないのにjava5ではシリアライズできなくてエラーに…

要素の順番

wsdlで使われる2種類の要素、sequenceとall。 complexType要素の子要素となる。 今まで気にしたことがなかったが、今日初めて意味を知った。 sequenceは子要素がwsdlに記述されている順番に並ぶことを要求する。 allはそれが順不同でもかまわない。 axis2の…

axis2のnull処理その2

先日の記事にはこう書いた。 「ちなみにセッターが呼ばれていて値がnullであればnil属性付きのタグが出力される。」 ところがその後会社でテストした時のコードでは違っていて、セッターが呼ばれていても値がnullであればタグが出力されないようになっていた…

axis2のnull処理

家でaxis2のサンプルを1から作っていて気になった。 beanのメンバがnullだった時のシリアライズとデシリアライズに齟齬があるような気がする。 シリアライズ メンバがnullであろうがなかろうがセッターが呼ばれていなければタグが出力されない。 まあセッタ…

クラスパスの設定

クライアントとしてのaxis2のモジュール展開処理について調べていた。 参考にしたサイトではシステムプロパティにリポジトリのパスを指定しろとあったのでその通りにしていたが、ステップ実行しているとどうやらクラスパスに指定したものも展開されるらしい…

axis2、ログ

再び仕事でaxis2をさわる。 書きたい点はいろいろあれど今回はログ出力について。 wsdl2javaコマンドでコードを自動生成するとサービスアーカイブを生成するためのbuild.xmlも生成されるが、これを実行してもなぜかソースフォルダにあるlog4j.propertiesがア…

axis2メモ

axis2への入れ替えはかなり手間がかかりそうだということで立ち消えになった。今までわかった事だけでもメモとして残しておく。 POJOでWEBサービスが作れる。(axis1でも同じ) wsdlは自動生成してくれるが、protectedやstaticメソッドまで含まれるので使い物…

axis2の起動でエラー

以前axis1で作ったWEBサービスをaxis2に入れ替えるという話が出た。 axis2は使ったことなかったので色々調べてみるが、最初の最初でつまずく。 axis2のwarファイルを展開したwebappが起動できないのだ。 よく覚えてないがLogConfigurationExceptionが起きて…

axis。datetime。Z

axisでのxsd:datetime表記。 yyyy-MM-ddTHH:mm:ss.SSSZ 最後の'Z'がGMT表記(=タイムゾーンオフセット無し)を意味することを初めて知った。 だから日時もGMTに変換されてたのか・・・

axis。日付変換の罠

axisを使っていて気になったことが一つ。 xsd:datetimeとjavaの日付を変換する際にGMT・JSTの違いによって9時間の誤差が生じることは以前のシステムで経験があったので、あらかじめCalendarのSerializer/Deserializerをカスタマイズして誤差を吸収していたが…

wsdlの形式

axisでサービスを公開する際にwsdlの形式を選択することができる。 server-config.wsddのserviceタグに設定するstyle属性のことだが、有効な形式はwrapped/document/rpcの3種類かな?一般的なのはdocumentらしいのだが、リクエストデータを表す構造体に妙な…

soapのバージョン指定

WEBサービスを作ることになったので、以前使ったことのあるaxisをいじる。 soapの1.1と1.2と両方対応しているらしいけど、どこで指定するのか皆目わからず。クライアントならそもそも呼び出すメソッドが違うんだけど、サーバーは?1.1のリクエストしか受け付…