• 締切済み

WebアプリケーションをWebサービスへ改修

現在、Apache+Tomcat+StrutsによるWebアプリケーションがあります。それを、XML問い合わせによるWebサービスに改修したい次第です。WebサービスはAXIS(またはAXIS2)で実現したいと考えています。 通常のJavaクラスであればjava2wsdlなどでソースからWSDLファイルを作れると思いますが、StrutsのActionクラスなどは同様の事が出来るのでしょうか?それとも自身でWSDLファイルを作り、wsdl2javaなどからスケルトンを作って、そこから実体を呼ぶような手続きを取らなければならないのでしょうか? AXISもあまり詳しくないのですが、アドバイス頂けると幸いです。

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

noname#49428
noname#49428
回答No.2

あなたが求めてるのは、AxisではなくSOAPなのでは? Axisは、サーブレットとして実装されているのでStrutsと共存させるのは無理です。 なぜStrutsを使う必要があるのか分かりませんが、Axisに入れ替えるだけでいいのではないですか。

del4thta
質問者

補足

度々の回答、ありがとうございます。 > あなたが求めてるのは、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クラスが数千にも渡るため厳しい戦いです。

noname#49428
noname#49428
回答No.1

StrutsのActionは、通常はHTML(JSP)を返すものですが、 Axisはインタフェースを返します。 それを、どう吸収するのでしょうか? Actionから実行されているBLをAxisとするのは分かるんですが。 Axisのインタフェースとなるものは何ですか?

del4thta
質問者

補足

> 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に投げて」という改修手段が出来ないかを試行錯誤しています。

関連するQ&A

  • axis パラメータ

    apache + tomcat + axis で Webサービス(Javaクラス) を使っています。 Webサービス(Javaクラス)にサーバのパラメータを渡すことは可能でしょうか? クライアントからWebサービス(Javaクラス)に引数を渡す方法ではなく、 サーバ(axis)のWeb.xmlなどに記述する方法を探しています。 (起動するサービスごとにパラメータを分けたい) よろしくお願い致します。

    • ベストアンサー
    • Java
  • JavaでWebサービスの開発

    こんばんは。 今度はじめてJavaでWebサービスを開発・構築することになりました。 実際開発するにあたっては「Struts」「Spring」のような骨組み のようなフレームワークはあるのでしょうか?。 ApacheのAXIS、は聞いたことはありますが、これを使用して開発し、 外部公開するのでしょうか?。 初歩的ですみませんが、よろしくお願いします。

  • AXIS2の初期処理

    Apache AXIS2(Tomcat + AXIS2 1.3)のサービスクラスで初期処理をする方法を探しています。 イメージとしてはStrutsのプラグインのように、WEBアプリケーションの起動時のみ呼び出されるような処理です。 宜しくお願い致します。

  • Jakarta NTサービスとともに動かすには。。。

    TOMCATをNTのサービスとしてバックグランドで実行させようとして その方法が書かれていた(http://www.ingrid.org/jajakarta/tomcat/tomcat-3.2.3/doc-ja/NT-Service-howto.html)を参考にしながらやっているのですが、うまくいきません。 環境は、Win2000、JDK1.3.1_02、TOMCAT3.2.4です。 サービスは登録されるのですが、サービスを開始すると途中でエラー以下のエラーがでて、実際には開始されません。 「システムエラーが発生しました。 システムエラーが1067発生しました。 プロセスを強制終了しました。」 logフォルダに出てくる「jvm.stderr」の内容は javax.xml.parsers.FactoryConfigurationError: java.lang.ClassNotFoundException: org.apache.crimson.jaxp.SAXParserFactoryImpl at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:120) at org.apache.tomcat.util.xml.XmlMapper.readXml(XmlMapper.java:210) at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:187) at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:240) Exception in thread "main" となります、なにがいけないのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcat & Axisの設定

    @ITや豆蔵のサイトを見て、Apache Tomcat1.4とAXIS1.0を使ったWebアプリケーションにトライしてみようと思っているのですが、以下のようなエラーが出てしまいます。 (AXIS付属のサンプルを実行した結果です) C:\xml-axis-10>java samples.userguide.example3.Client HELLO Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContext 違うサンプルも試してみたのですが、同じエラーが出ました。何らかの設定の間違いだと思うのですが、何が間違っているのかわかりません。どのように直せばよろしいのでしょうか?よろしくお願いします。 OS:WinME 環境変数 axis_home : c:\xml-axis-10 java_home : C:\j2sdk1.4.0_01 classpath : .;C:\xml-axis-10\lib\axis.jar;C:\xml-axis-10\lib\axis-ant.jar;C:\xml-axis-10\lib\commons-discovery.jar;C:\xml-axis-10\lib\commons-logging.jar;C:\xml-axis-10\lib\jaxrpc.jar;C:\xml-axis-10\lib\log4j-1.2.4.jar;C:\xml-axis-10\lib\saaj.jar;C:\xml-axis-10\lib\wsdl4j.jar;C:\xml-axis-10\lib\xerces.jar

    • ベストアンサー
    • Java
  • ■SOAPを使ったwebアプリケーションについて質問です

    ■SOAPを使ったwebアプリケーションについて質問です 現在、SOAPを利用したJavaでのクライアントーサーバ間のwebアプリケーションを作成しようとしています。 やりたいことは下記の通りです。 1、クライアント側でSOAP本体を自前で作成し、それをサーバプログラムに送信する。 2、サーバで受け取ったSOAPメッセージを解析し、応答メッセージを作成する。 3、作成した応答メッセージをクライアントへ返す。 使用する環境は Java 1.6 Apache 2,2 Tomcat 6.0 Axis2(不要なら使わない予定) です。 上記のアプリケーションを作成するには具体的にどのようなソースになるか ネット上でも調べてみたのですが見つからず困っております。 有識者の方、どうかご教授願いますでしょうか。

  • Tomcat+Axis のサンプルで

    Apache-Axisを勉強中です。 ここhttp://yamaguch.sytes.net/~tora/java/axis.xmlのサンプルを試しているのですが、 エラーになってしまい悩んでいます。 OS:Win2kPro Java:j2sdk1.4.1_02 Tomcat:jakarta-tomcat-4.0.6 Axis:xml-axis-10 (説明を読んで、足りないjarファイルはbeta1から持ってきました) 環境変数 AXIS_HOME=c:\axis-10 AXIS_LIB=%AXIS_HOME%\lib CLASSPATH=.;%AXIS_LIB%\axis.jar;%AXIS_LIB%\clutil.jar;%AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-core.jar;%AXIS_LIB%\tt-bytecode.jar;%AXIS_LIB%\wsdl4j.jar;%AXIS_LIB%\log4j-1.2.4.jar;%AXIS_LIB%;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\commons-discovery.jar;%AXIS_LIB%\xerces.jar;%CATALINA_HOME%\common\lib\mail.jar;%CATALINA_HOME%\common\lib\activation.jar;%CATALINA_HOME%\common\lib\servlet.jar;C:\j2sdk1.4.1_02\lib\tools.jar; 見出しHelloAxis以下書かれているとおりに勧めて、 実行すると > java HelloClient http://localhost:8080/axis/HelloAxis.jws "Boo" 以下のエラーとなってしまいます。 - Mapping Exception to AxisFault AxisFault faultCode: {http://xml.apache.org/axis/}Server.userException faultString: java.lang.RuntimeException: No compiler found in your classpath! (you may need to add tools.jar) faultActor: null faultDetail: stackTrace: java.lang.RuntimeException: No compiler found in your classpath! (you may need to add tools.jar) at org.apache.axis.components.compiler.Javac.<init>(Javac.java:111) at org.apache.axis.components.compiler.CompilerFactory.getCompiler(CompilerFactory.java:87) ~以下略~

    • ベストアンサー
    • Java
  • 「StrutsによるWebアプリケーションスーパーサンプル」の本のサンプルのエラーについて

    「StrutsによるWebアプリケーションスーパーサンプル」(ソフトバンククリエィティブ)の本のP.124ページの「2-1」電子カタログを作ろうのサンプルなのですが、 P.125~128に記載されているデータベースの作成をして、2-1.warファイルをtomcatのwebappsのフォルダの なかにコピーしてtomcatを起動するとうまく解凍されてhttp://localhost:8080/2-1/Catalog.doにアクセスすると 正常に表示されたのですが、その解凍したファイルをeclipse側で2-1というプロジェクトを作成してインポートして strutsのlibの下のjarを追加してやると、 インポート javax.sql.DataSource は決して使用されません。の警告がでていました。 ソースのなかではDataSourceは使用しているのに警告が出ていたのが気になります。l http://localhost:8080/2-1/Catalog.doにアクセスすると以下のようなエラーが表示されました。 <エラー> org.apache.jasper.JasperException: 絶対URI: http://jakarta.apache.org/struts/tags-bean は web.xmlまたはこのアプリケーションを配備したJARファイルのどちらかでも解決できません 以下の内容をweb.xmlに追加して解決しました。 <web.xml> <taglib> <taglib-uri>/tags/struts-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-logic</taglib-uri> <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-tiles</taglib-uri> <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-nested</taglib-uri> <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> </taglib> <taglib> つぎに、http://localhost:8080/2-1/Catalog.doにアクセスすると HTTP Status 404 - /2-1/Catalog.doのエラーがでて原因がわからなくてこまっています。 データベースが作成されていることは確認しています。 開発環境についてはCDに付属のものを使用してバージョンはあわせています。 tomcatでwarを解凍して削除すると設定データのごみが残っているのかなと思いまして、一度eclipseとtomcatを削除 して再インストールをしてもうまくいきませんでした。 C:\Program Files\Apache Group\Tomcat 4.1\confのなかのserver.xmlのなかには設定は追加されていることは 確認しています。 <Context path="/2-1" reloadable="true" docBase="C:\eclipse\workspace\2-1" workDir="C:\eclipse\workspace\2-1\work\org\apache\jsp" /> あと、DFツール、ファイル作成機でファイルとソースの内容を比較してみましたが、 おかしなところはありませんでした。 warファイルをtomcatのwebappsに入れるとエラーなくうまくいくのですが、eclipseからだとエラーになります。 どうかご教授よろしくお願いします。

  • 既存JavaクラスをWebサービス化するにあたって

    既存JavaクラスをWebサービス化するにあたって axis2やJAX-WSを用いて既存Javaクラスを Webサービス化する方法を模索しています。 int型など、引数や返り値が単純なデータ型は 簡単にWebサービス化することができたのですが HashTableなどよく使われるユーティリティクラスや 独自クラスなどを引数や返り値に使用している場合は どのような方法をとれば良いのか さっぱり情報が見当たらず困っています。 参考となるサイトや 何か少しでもそのへんのことをご存知の方がいらっしゃれば どうかご教示くださいますようお願い申し上げます。

  • strutsのサンプル画面について

    初めてstruts開発に携わる初心者です。 下記環境で、strutsのインストール確認を行おうと思うのですが 「The requested resource (/struts-examples/) is not available.」とエラーが発生してしまい大変困っています。 <環境> struts-1.3.8 Tomcat 6.0 jdk1.6.0_06 windowsXP <手順> (1)それぞれをダウンロード&インストール (2)JAVA_HOME、CATALINA_HOMEを設定 (3)struts-1.3.8\apps下のwarファイルをTomcat 6.0\webappsにコピー (4)http://localhost:8080/struts-blank-1.3.8で動作確認 <出力されたログ> 情報: Coyote HTTP/1.1を http-8080 で初期化します 2008/07/26 22:07:38 org.apache.catalina.startup.Catalina load 情報: Initialization processed in 1148 ms 2008/07/26 22:07:38 org.apache.catalina.core.StandardService start 情報: サービス Catalina を起動します 2008/07/26 22:07:38 org.apache.catalina.core.StandardEngine start 情報: Starting Servlet Engine: Apache Tomcat/6.0.16 2008/07/26 22:07:38 org.apache.catalina.startup.HostConfig deployWAR 情報: Webアプリケーションアーカイブ struts-examples-1.3.8.war を配備します 2008/07/26 22:07:41 org.apache.struts.action.ActionServlet initChain 情報: Loading chain catalog from jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/struts-examples-1.3.8/WEB-INF/lib/struts-core-1.3.8.jar!/org/apache/struts/chain/chain-config.xml 2008/07/26 22:07:42 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/org/apache/struts/validator/validator-rules.xml' 2008/07/26 22:07:42 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/upload/validation.xml' 2008/07/26 22:07:43 org.apache.struts.config.impl.ModuleConfigImpl addFormBeanConfig 警告: Overriding ActionForm of name localeForm 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/org/apache/struts/validator/validator-rules-compressed.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-bundles.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-i18nVariables.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-type.xml' 2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources 情報: Loading validation rules file from '/WEB-INF/validator/validation-validwhen.xml' 2008/07/26 22:07:44 org.apache.coyote.http11.Http11Protocol start 情報: Coyote HTTP/1.1を http-8080 で起動します 2008/07/26 22:07:44 org.apache.jk.common.ChannelSocket init 情報: JK: ajp13 listening on /0.0.0.0:8009 2008/07/26 22:07:44 org.apache.jk.server.JkMain start 情報: Jk running ID=0 time=0/46 config=null 2008/07/26 22:07:44 org.apache.catalina.startup.Catalina start 情報: Server startup in 5831 ms 初歩的な質問ですが何卒よろしくお願いします。

    • ベストアンサー
    • Java