[Seasar-user:11911] Re: [S2Axis2]Webサービス呼び出し時にコンポーネント名をPOST先に付与しないようにするには?
Takafumi Yoshida
[E-MAIL ADDRESS DELETED]
2007年 12月 5日 (水) 11:06:05 JST
吉田@オプティクスです。
たかのりさん、小林 (koichik)さん、お世話になります。
お二人のアドバイスを元に、以下のようにしてみました。
・POST先について
小林 (koichik)さんのアドバイスから、diconファイルを以下のように設定しました。
<component name="connector"
class="org.seasar.remoting.axis2.connector.AxisInOutConnector">
<property name="baseURL">
new java.net.URL("http://localhost:9090/luckystarWeb/")
</property>
</component>
..略
<!-- Webサービスのプロキシ -->
<component name="Service.asmx" class="test.proxy.HelloWorld">
<aspect>remoting</aspect>
</component>
上記の設定でPOST先は
http://localhost:9090/luckystarWeb/Service.asmx
になりました。
・SOAPActionについて
まず.NET側のメソッドを小文字で始まるよう(helloWorld)に修正し、メソッドに
[SoapDocumentMethod(Action = "urn:helloWorld")]
と属性を付与して、
SOAPAction: "urn:helloWorld"
で該当のメソッドが呼び出されるよう設定。
このあたりについては、以下のURLを参考にしました。
http://www.microsoft.com/japan/msdn/webservices/general/howwebmeth.aspx
以上のようにしてS2Axis2側から呼び出してみましたが、今度は
HTTP/1.1 400 Bad Request
が返ってくるようです。
これはおそらくKeep-Aliveで呼び出す必要があるんだと考えています。
というのも、.NETクライアントからの呼び出しと比較した場合に、.NETクライアントでは
いったんHTTP 100 Continueが返り、その後SOAPメッセージの実体が返って
きているからです。
たかのりさんの言うように、Connectorを独自に実装するしかないのかなと思っていますが
AbstractRPCConnectorから実装すればよいでしょうか?
以上、宜しくお願いいたします。
Seasar-user メーリングリストの案内