- 締切済み
WebアプリケーションをWebサービスへ改修
現在、Apache+Tomcat+StrutsによるWebアプリケーションがあります。それを、XML問い合わせによるWebサービスに改修したい次第です。WebサービスはAXIS(またはAXIS2)で実現したいと考えています。 通常のJavaクラスであればjava2wsdlなどでソースからWSDLファイルを作れると思いますが、StrutsのActionクラスなどは同様の事が出来るのでしょうか?それとも自身でWSDLファイルを作り、wsdl2javaなどからスケルトンを作って、そこから実体を呼ぶような手続きを取らなければならないのでしょうか? AXISもあまり詳しくないのですが、アドバイス頂けると幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
あなたが求めてるのは、AxisではなくSOAPなのでは? Axisは、サーブレットとして実装されているのでStrutsと共存させるのは無理です。 なぜStrutsを使う必要があるのか分かりませんが、Axisに入れ替えるだけでいいのではないですか。
StrutsのActionは、通常はHTML(JSP)を返すものですが、 Axisはインタフェースを返します。 それを、どう吸収するのでしょうか? Actionから実行されているBLをAxisとするのは分かるんですが。 Axisのインタフェースとなるものは何ですか?
補足
> StrutsのActionは、通常はHTML(JSP)を返すものですが、 > Axisはインタフェースを返します。 > それを、どう吸収するのでしょうか? 私はそれを質問しているのですが・・・(汗 クライアントからHttpRequestではなくXMLが飛んでくるので、それを解析し、処理し、返却内容のオブジェクトを生成し、結果としてHTMLではなくXMLを返したいのが求める作業です。この「解析し」と「XMLを返したい」という部分とをAxisに補ってもらおうと思っているのですが、考え方は間違っていますでしょうか? > Actionから実行されているBLをAxisとするのは分かるんですが。 > Axisのインタフェースとなるものは何ですか? 純粋な処理部分はJavaClassですのでそれをそのままAxisインタフェースとするのは簡単ですが、入り口がStrutsです(Actionから前述の純粋な処理部分を呼んでいます)ので入出力のエラー処理や例外などもStrutsに依存しています。 Aixsとはクライアントから受けたもの(XML)を指定のJavaClassに投げて、結果として帰ってきたものをクライアントに返す(XML)わけですよね?その「指定のJavaClassに投げて」を「StrutsActionに投げて」という改修手段が出来ないかを試行錯誤しています。
補足
度々の回答、ありがとうございます。 > あなたが求めてるのは、AxisではなくSOAPなのでは? その通りですが、AxisはSOAP実現のServletではないのでしょうか? (これが違うとしたら、私自身がとんでもない勘違いをしている?) Strutsは使う必要があるのではなく、既に使われている(既存アプリ)のです。StrutsによってPOST入力のチェックなどを賄っています。またAxisを使う理由はサービス統合対象が既にAxisインタフェース(Axisクライアント:他社開発)を持っているためです。今まではブラウザから呼ばれていたためHTML(JSP)を返却していましたが、改修後はWebサービス統合サーバのServiceClientから呼ばれ、XMLを返却する必要があります。 ともあれ > Axisは、サーブレットとして実装されているのでStrutsと共存させるのは無理です。 であれば、無理に実装しようとすると以下の選択になるという事でしょうか。。。 A:AxisサーバにHttpRequestインスタンスを作り、再度Strutsサーバにアクセス B:Strutsに依存している部分全て、依存しない方法に書き換える 結局Bが一番無難な選択になってしまうのでしょうか? Actionクラスが数千にも渡るため厳しい戦いです。