プロが教えるわが家の防犯対策術!

簡単なWebサービスを作ってみようと思い、先日、
TomcatとApacheSOAPをインストールし、
Tomcatの起動に関しては無事成功しました。
また、
http://localhost:8080/soap
もきちんと見ることができます。

ですが、ここから先で問題が生じました。
それは、
http://localhost:8080/soap/admin
で行うことのできる機能のすべてを利用することができない、
ということです。

ListもDeployもUndeployも、すべてJSP(プラスBean)の形で
提供されていますが、それらを実行しようとすると、例外が発生します。
その上、正常にJSPが呼び出されたときに表示されるはずのフォームは
一切表示されず、そのかわりに、例外についての情報をずらりと表示します。

設定に誤りがあったのかと思いましたが、
xerces.jarとsoap.jarはクラスパスに追加されていますし、
もちろんxerces.jarについては、クラスパスの先頭に追加されています。
tomcat.batの訂正も抜かりなく行われています。
server.xmlには、http://localhost:8080/soap
を見るための設定の追加が施されています。

にもかかわらず、正常動作しないのは、
設定が間違っているか、まだ行っていない設定があるかの
いずれかだろうとは思うのですが、それが具体的に何かがわからないのです。

ちなみに、私の環境は、
OS:WINME
JDK:JDK1.3
Xerces:Xerces 1.2.3
Tomcat:tomcat 3.2.1
SOAP:SOAP 2.0
です。

もし、このことについてご存知な方がいらっしゃいましたら、
ぜひ回答していただきたいと思います。

A 回答 (4件)

面白そうなので、インストールして、DeployとListまで動かしてみました。

(こっからが大事なのですが、ここから先が良くわからないので止まっています)

メッセージを見る限り、soap.jarが見つけられてないようです。MS-DOSプロンプトで、tomcat runで実行するとUsing CLASSPATH:のメッセージのあとに、CLASSPATHが表示されると思うのですが、このメッセージに正しくsoap.jarの指定は出てますでしょうか?

あと補足ですが

・JavaMailがないと動きませんでした。
・Windows2000でサービスとして動かす場合は、wapper.propertiesの記述が必要でした

でした

この回答への補足

わざわざインストールしていただいた上での回答、ありがとうございます。

実は、自宅のWINME機へのインストールをあきらめ、
学校で使用しているWIN2000機にインストールしようとしたところ、
カレントディレクトリをきちんとクラスパスに含めないと、
ApacheSOAPが正常動作しないことがわかりました。
(もちろんJavaMail等の設定を行った上ですが。)
現在では、WIN2000機では、DeployとListがきちんと動く状態です。

Deployの仕方やそれ以降行う事柄がよく分からないとのことですが、
その点については、ichigoさんが明記してくださったページが詳しいかと思います。

ですが、私の場合、実際にこのページの通りに試してみても、
うまくいきませんでした。

例えば、このページにあるサンプルコードを
Z:\Apache\demo1>java Client
と、コマンドを打つと、

invoke service
URL= http://localhost:8080/soap/servlet/rpcrouter
URN =urn:demo1:exchange
SOAPException= SOAP-ENV:Client, A 'http://schemas.xmlsoap.org/soap/envelope/:Fau
lt' element must contain a: 'faultcode' element.

というエラーメッセージが返され、本来返されるべき値が、
帰ってこない(この場合はFLOAT型のデータ)という状態です。

この場合、WIN2000のサービスとして使うわけではないので、
wrapper.propertiesの記述は不要ではないかと思います。

この点について、何かお気づきになった点などありましたら、
ご回答していただければ幸いです。

補足日時:2001/04/19 21:16
    • good
    • 0

その後、いろいろさわってみたのですが、やっぱり違うものをコールしてました。



wrapper.propertiesのwrapper.class_pathのxerces.jarを最初に来るように変更したところ動作しました。

良く考えてみれば、あたりまえでしたね。

なお、サービスとして動作させるときに、下記のホームページにあるjk_javaを使っていたのですが、これを使用するとうまく動きませんでした。

http://www01.u-page.so-net.ne.jp/db3/midori/soft …

jk_javaを使用していた理由は、Java2 SDK 1.3のNTサービスプロセスがWindows2000/NTのログアウトで停止してしまうのを回避するためです。SOAPで遊ぶには、jk_javaでは駄目なようで、ちょっとショックです。
    • good
    • 0
この回答へのお礼

少し返事が遅れてしまいましたが、ご回答、どうもありがとうございます。

実は、ちょうど今、やっとApacheSOAPがまともに動いてくれ、
もちろん、RPCも自分の環境で実現することができました。
(NTサービスにわざわざしなくともうまく動いてくれました。)

どうも、一度ApacheSOAP(含むTOMCAT)が正常に動かなくなったら
何もかも最初からインストールしなおさなければならなかったようで、
それを行いましたところ、問題が全て解決いたしました。


詳細なアドバイスを下さった回答者の皆様、本当にありがとうございました。

お礼日時:2001/04/24 19:46

バッチで、Tomcatを起動した場合、うまくいきました。



wapper.propertiesに

wrapper.class_path=$(wrapper.tomcat_home)\classes

がありますので、Exchange.Classは、Tomcatのホームのclassesにおいて実行しました。

□実行結果
invoke service
URL= http://hogehoge/soap/servlet/rpcrouter
URN =urn:demo1:exchange
Result= 144.52

上記で、8080がついていませんが、ApacheとTomcatの連携経由でもちゃんと動きました。

ですが、バッチじゃなくてサービスで起動するとやっぱり駄目ですねえ。どうも見てるCLASSPATHが違うみたいですねえ。

□実行結果
invoke service
URL= http://hogehoge:8080/soap/servlet/rpcrouter
URN =urn:demo1:exchange
Fault= SOAP-ENV:Server.Exception:, java.lang.NoSuchMethodError

なんか、違うものをコールしているような・・・・

回答になってませんね。ごめんなさい
    • good
    • 0

私はsoapもインストールしたことありませんし、


Javaも詳しくないのでなんなのですが・・。
多少Apacheを知っている者としてのアドバイスです。

少し情報が不足しているような気がします。

>例外についての情報をずらりと表示

これは何が表示されましたか?
このメッセージでわかる方がいるかもしれません。

あなたにとっては当たり前ことでも、
回答されるかたは当たり前ではないかもしれません。

尚、以下のURLはご覧になりましたでしょうか?
バージョンも同じなので何かヒントがあるかもしれません。
インストールを行う際に参考にされたURLなども付け加えておくとよいかもしれません。

参考URL:http://www-6.ibm.com/jp/developerworks/webservic …

この回答への補足

早速のアドバイス、ありがとうございます。

実は、ご指摘の参考URLを参照しながら設定しておりました。
この点に関しては最初から明示すべきでした。申し訳ございません。

また、例外に関しては、その詳細内容まですべて貼り付けてしまうと、
文章がいたずらに長くなるため、記載を遠慮しておりましたが
例外の種別だけでも記載しておくべきでした。
ここで、せっかくご指摘もあったことですので、
こちらに、追加情報として例外に関する情報を記載したいと思います。

まず、発生する例外は、いずれのjspを試してみた場合も、
javax.servlet.ServletException
と、
java.lang.NoClassDefFoundError
の2つです。
ブラウザに表示された内容は以下の通りです。
なお、表示された内容の例外に関する箇所は、コンソールに出力されたものと同様です。

○list.jsp実行時

Service Listing
Error: 500
Location: /soap/admin/list.jsp
Internal Servlet Error:

javax.servlet.ServletException: org/apache/soap/server/http/ServerHTTPUtils
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:399)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)

Root cause:
java.lang.NoClassDefFoundError: org/apache/soap/server/http/ServerHTTPUtils
at admin._0002fadmin_0002flist_0002ejsplist_jsp_0._jspService(_0002fadmin_0002flist_0002ejsplist_jsp_0.java:65)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)

○deploy.jsp実行時

Deploy a Service
Error: 500
Location: /soap/admin/deploy.jsp
Internal Servlet Error:
(注:これより下は、list.jspのInternal Servlet Error:
以下ととほぼ同じ内容が表示されます。ただし、
Root cause: の、
admin._0002fadmin_0002flist_0002ejsplist_jsp_0._jspService(_0002fadmin_0002flist_0002ejsplist_jsp_0.java:65)
が、
at admin._0002fadmin_0002fdeploy_0002ejspdeploy_jsp_0._jspService(_0002fadmin_0002fdeploy_0002ejspdeploy_jsp_0.java:72)
になっている点のみ異なります。)

○undeploy.jsp実行時

Un-Deploy a Service
Error: 500
Location: /soap/admin/undeploy.jsp

Internal Servlet Error:
(注:これより下は、list.jspのInternal Servlet Error:
以下ととほぼ同じ内容が表示されます。ただし、
Root cause: の、
admin._0002fadmin_0002flist_0002ejsplist_jsp_0._jspService(_0002fadmin_0002flist_0002ejsplist_jsp_0.java:65)
が、
at admin._0002fadmin_0002fdeploy_0002ejspdeploy_jsp_0._jspService(_0002fadmin_0002fdeploy_0002ejspdeploy_jsp_0.java:68)
になっている点のみ異なります。)

追加情報に関しては以上です。
あらためて、よろしくお願いいたします。

補足日時:2001/04/15 00:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!