-PR-
解決済み

ApacheSOAPの設定

  • すぐに回答を!
  • 質問No.63833
  • 閲覧数277
  • ありがとう数3
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 25% (1/4)

簡単な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
です。

もし、このことについてご存知な方がいらっしゃいましたら、
ぜひ回答していただきたいと思います。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル11

ベストアンサー率 49% (139/279)

面白そうなので、インストールして、DeployとListまで動かしてみました。(こっからが大事なのですが、ここから先が良くわからないので止まっています)

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

あと補足ですが

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

でした
補足コメント
jyosho

お礼率 25% (1/4)

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

実は、自宅の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:26
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル6

ベストアンサー率 50% (1/2)

私はsoapもインストールしたことありませんし、
Javaも詳しくないのでなんなのですが・・。
多少Apacheを知っている者としてのアドバイスです。

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

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

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

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

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

お礼率 25% (1/4)

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

実は、ご指摘の参考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:30


  • 回答No.3
レベル11

ベストアンサー率 49% (139/279)

バッチで、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

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

回答になってませんね。ごめんなさい
  • 回答No.4
レベル11

ベストアンサー率 49% (139/279)

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

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

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

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

http://www01.u-page.so-net.ne.jp/db3/midori/soft5.html

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

お礼率 25% (1/4)

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

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

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


詳細なアドバイスを下さった回答者の皆様、本当にありがとうございました。
投稿日時 - 2001-04-24 19:46:06
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ