簡単な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
です。
もし、このことについてご存知な方がいらっしゃいましたら、
ぜひ回答していただきたいと思います。
No.2ベストアンサー
- 回答日時:
面白そうなので、インストールして、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の記述は不要ではないかと思います。
この点について、何かお気づきになった点などありましたら、
ご回答していただければ幸いです。
No.4
- 回答日時:
その後、いろいろさわってみたのですが、やっぱり違うものをコールしてました。
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では駄目なようで、ちょっとショックです。
少し返事が遅れてしまいましたが、ご回答、どうもありがとうございます。
実は、ちょうど今、やっとApacheSOAPがまともに動いてくれ、
もちろん、RPCも自分の環境で実現することができました。
(NTサービスにわざわざしなくともうまく動いてくれました。)
どうも、一度ApacheSOAP(含むTOMCAT)が正常に動かなくなったら
何もかも最初からインストールしなおさなければならなかったようで、
それを行いましたところ、問題が全て解決いたしました。
詳細なアドバイスを下さった回答者の皆様、本当にありがとうございました。
No.3
- 回答日時:
バッチで、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.1
- 回答日時:
私は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)
になっている点のみ異なります。)
追加情報に関しては以上です。
あらためて、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイクラjavaでForgeを入れたい...
-
OptiFineをJAVAで開こうとする...
-
vs codeはオフラインでも使用で...
-
セットアップファイル(MSIとEX...
-
サクラエディタについて
-
Javaをインストールしたんです...
-
Visual Studioにdirent.h
-
Jupyter Notebook の拡張機能(N...
-
MSDNのコレクションがありませ...
-
ActivePerlをインストールしよ...
-
ヘルプの日本語化の方法
-
OO4Oのインストールのしかた
-
phpBBのエラー
-
OpenJDKのtools.jar
-
javaのコンパイルについて
-
インストール不要のCコンパイラ...
-
Eclipseのアンインストールの仕方
-
winbas95をwindows10(32bit)で...
-
ある本で、BASIC/98 ver.5を用...
-
コマンドプロンプトから「javac...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseのアンインストールの仕方
-
マイクラjavaでForgeを入れたい...
-
vs codeはオフラインでも使用で...
-
MSDNのコレクションがありませ...
-
OptiFineをJAVAで開こうとする...
-
ActivePerlをインストールしよ...
-
この <windows.h> はどこに在る...
-
64bitでbasp21の使用方法
-
Javaをインストールしたんです...
-
windows7 ADTプラグイン追加で...
-
セットアップファイル(MSIとEX...
-
ActobatReader無しでPDFを表示
-
NET Framework 4 v4.0.30319 ダ...
-
stdoleについて
-
アプリの配布方法
-
NuGetのインストール
-
VBSでuser32.dll(Win32API)を...
-
OpenJDKのtools.jar
-
MATLABのtoolboxのインストール...
-
リアルタイム表示
おすすめ情報