カテゴリ: axis

インストールしただけではサーブレット起動失敗。
C:\jboss\server\default\deploy\axis.war>javac -classpath WEB-inf\lib\axis.jar SOAPMonitorApplet.java
でOK。
サービスにデプロイしてリクエスト発行

org.apache.axis.ConfigurationException: Can't find handler name:'null' type:'soapmonitor' in the registry

→ 監視対象サービスのwsddに


.....

が抜けてた。そもそも本にゃこれが抜けてる。また例によってバージョン間の違い
→いや、本ではSOAPMoniter.wsddを用意して単体でデプロイしていた。

このエントリーをはてなブックマークに追加 mixiチェック

サンプルのクライアントクラス実行の際、-s オプションでサービスを明示する必要がある。

java samples.userguide.example3.Client -s axis/services/MyService こんにちは

なら成功する。
多分バージョン間のサンプルの非互換だろう。この本

エンジニア実験室 試してわかるWebサービス

エンジニア実験室 試してわかるWebサービス

は1.0、私は1.3を使っている。
判ってる人から見ると単純な事なんだろうけど、初学者がびくびくインストールして一番最初に行うはじめの一歩の"Hello World"でいきなり躓くと萎えるよな。環境のインストールが悪いのかビルドが悪いのか実行手順が悪いのかプログラムのソースが悪いのかまだ全然勘が働かない段階だし。

このエントリーをはてなブックマークに追加 mixiチェック

環境変数 AXIS_HOMEを設定、
AXIS_HOME/lib/の全部のjarにクラスパスを通した後、

C:\axis-1_3>java samples.userguide.example3.Client Hello

  • 要求されたクラス(javax.activation.DataHandler と javax.mail.internet.MimeMulti

part)が見つかりません。Attachmentサポートが利用できません。 / [en]-(Unable to fi
nd required classes (javax.activation.DataHandler and javax.mail.internet.MimeMu
ltipart). Attachment support is disabled.)
AXISエンジンが呼出そうとする対象のサービスを見つけられませんでした!targetServic
eはnullです / [en]-(The AXIS engine could not find a target service to invoke!
targetService is null)

最初の行の「クラスが見つかりません」云々は単なる警告なので無視。下はつまりTomcat/axisへのコネクトまでは成功している。
→example3/deploy.wsdd を java org.apache.axis.client.AdminClient に掛けてWEBサービスをデプロイしてから実行してもやっぱり同じ。コマンドプロンプトには(Done processing)と返ってくるんだけど、実際にはデプロイされていないと思われる。クラスパスか何かか。いやしかしw3ebapps\axis\の下はまとめて全部axis.warとしてデプロイ済みだしなー。謎だ。
→管理コンソール(/axis/)の「リスト」でもMyServiceは表示されているのでデプロイはされている模様。クライアント側の問題だろうか?やっぱり警告無視がイカンのか?でもメール何て要らない気がするが…まぁクラスパス通してみよう。
-sオプションで成功
※ちなみにjavax.activation.DataHandler と javax.mail.internet.MimeMultipartはJ2EEに含まれる。J2SEでは無い。

このエントリーをはてなブックマークに追加 mixiチェック

JBossはAPサーバ(Tomcat)とEJBコンテナだけで、WEBサービスは別途みたい。
JBossへのAxisのインストール手順(/axis/webapps/axis/をwarにしてデプロイ(deployディレクトリにコピー)するだけ)
→warにしてデプロイするより、axisディレクトリ配下のファイルを全部「deploy/axis.war」という名のディレクトリにコピーする方がweb.xml変更等が微妙に楽。

localhost:8080/axis/の「訪問」で以下のエラー

java.lang.RuntimeException: クラスパス内にコンパイラが見つかりません! (おそらく'tools.jar'を追加する必要があります)

tools.jarはJDK/libの下のものをaxis/WEB-INF/lib/にそのままコピーするととりあえずパスが通るが、今度はjwsコンパイル時にjavax.servlet.httpが無いとのエラーになる。何かクラスパス指定が根本的に足りない気がする。

このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ