- PR -

Webサービスを統合したWebサービスの作成

1
投稿者投稿内容
yu-ya
会議室デビュー日: 2006/01/04
投稿数: 2
投稿日時: 2006-01-04 16:36
書込は初めてですが、いつも参考にさせて頂いています。

今回はどうしてもWebサービスについてのエラーが解決できないため書込させて頂きました。Webサービス作成に携わってから4ヶ月程のキャリアですので、大変つたない質問だと思いますが、よろしくお願い致します。

現在Webサービスを統合したWebサービスを作成しています。
困っているのはWebサービスのまた呼び(呼び出した先がまた呼び出す)の部分です。

各サービスのWebサービスのクライアントとしての機能は、難なく作成することが出来たのですが、そのクライアントをいざWebサービス化し動作させてみると、クライアント側で以下のエラーが出現しました。

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.reflect.InvocationTargetException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:s1dhcp063.rsl.crl.fujixerox.co.jp

java.lang.reflect.InvocationTargetException
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
at org.apache.axis.client.Call.invoke(Call.java:2748)
at org.apache.axis.client.Call.invoke(Call.java:2424)
at org.apache.axis.client.Call.invoke(Call.java:2347)
at org.apache.axis.client.Call.invoke(Call.java:1804)
at stub.UrnIndexServiceSoapBindingStub.startIndexWebService(UrnIndexServiceSoapBindingStub.java:259)
at TestMain.testSave(TestMain.java:53)
at TestMain.main(TestMain.java:40)

 呼び出したいWebサービスの実行メソッドを、中継サーバが実行したところで中継サーバは止まっていました。try/catchで囲んでいましたが、特にエラーは出力されていませんでした。

 ちなみに、このクラスについてローカルで同じメソッドを動かした場合は、なんの問題もなく動作しました。また、自分で作成したプログラムをローカルに置き、それをWebサービス化して呼び出したところ、問題なく動作しました。自分では、Webサービスが中継サーバを通して呼び出されたときに、なんらかの要素が足りなくてエラーが出ているのだと思っているのですが、それも見当違いなのかもしれません。

環境は、使用したいWebサービスはIISでC#で作成されたものでサーバはWinXP。中継サーバはLinux(FedoraCore3)でTomcat4.1.31,ApacheAxisでJavaで作成。呼び出しのクライアントはWin上でJavaで作成しています。それぞれ別の人が作っているので環境がばらばらです。ここで環境を統一してくださいと言えないところが痛いところです。

過去ログで同じようなシステムを作成している方がいらっしゃいましたが、そこを読んだだけではよくわかりませんでした。期限も迫っていて本当に困っています。アドバイスを頂けませんでしょうか。よろしくお願い致します。

[ メッセージ編集済み 編集者: yu-ya 編集日時 2006-01-04 18:00 ]
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-01-10 18:09
中継用のWebサービスが正常にデプロイされていることは確認しましたか?
それから実行メソッドで例外は発生していない、とのことですが、そもそもそのメソッドが
呼び出されているかどうかは確認しているでしょうか。
yu-ya
会議室デビュー日: 2006/01/04
投稿数: 2
投稿日時: 2006-01-11 11:56
返信有難う御座います。デプロイもメソッドもOKだったのですが、どうしてもエラーが消えませんでした。あれから試行錯誤し、自分の作ったWebサービスではまた呼出が可能だということに気が付きました。

これは例外が出力されていないだけ?Webサービス側が問題?と思いまして、Webサービスを提供して貰っていた方に確認したところ、どうもログでOutOfMemoryが起こっていたことに気がついた(例外がサービス使用側には返ってこないようになっていたようです)とのことで、修正して頂いた結果、無事動作させることが出来ました。

製作グループ全体が知識が足りないことを痛感させられました。
エラー処理などの重要性を体感させられた問題でした。

実際でデバッグは皆さんどのようになさっているんでしょうか?
私はサービス毎にEclipseでデバッガを起動させて動かしてみるのですが、それだとサービス提供者にお願いしないといけないので大変効率が悪いです。

こんな単純ミスで質問して大変お騒がせしました。
ukさんアドバイス有難う御座いました。
これからはもっと精進したいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)