武市です。 こちらでも簡単な.NET上のサービスをAxisに移植してみました。 確認のため、手順をまとめておきます。
1. .NET上のサービスのWSDLを取得する。 2. AxisのWSDL2Javaツールを使って、 取得したWSDLからAxis用の各種ファイルを自動生成する。 3. 自動生成されたファイルの中でサービスの実装クラスに 該当するもののメソッドを記述する。 4. サービスの実装クラスをコンパイルし、Axis上にデプロイする。 5. AxisのAPIを使用してクライアントを作成し、サービスの動作確認をする。 6. Axis上のサービスのWSDLを取得する。 7. .NETのツールを使ってWSDLからクライアントスタブを作成する。 8. .NETのクライアントスタブを使用してクライアントを作成し、 サービスの動作確認をする。 #手順7. 8.は.NET Framework SDKのコマンドラインツール (wsdl.exe, csc.exe)を使用した。 そうすると逸見さんと同じように クライアントスタブの生成時にエラーが発生しました。エラーの種類は異なるようですが。 調べてみた結果、Axisが生成するWSDL上に不正な文字列が出力されていることが 分かったため、その部分を修正すると動作するようになりました。 #使用したWSDLファイル(.NET)とエラー出力を添付しました。 下記が動作環境です。 サーバ Apache tomcat 5.0.28 Apache axis 1.2.1 クライアント .NET Framework SDK v1.1 逸見さんの環境でエラーが発生するのも おそらくAxisが生成しているWSDLに問題があるものと思います。 下記の情報を教えていただければ、 もう少し詳しい原因の特定も可能かと思います。 ・.NET上のサービスのWSDL ・Axis上のサービスのWSDL ・.NETおよびAxisのバージョン On Sun, 31 Jul 2005 22:24:55 +0900 tomioHemmi <[EMAIL PROTECTED]> wrote: > ご回答どうもありがとうございました. 逸見です。 > > 早速、WindowsSystemからWSDLを取り出し、WSDL2Javaを動かし、生成された > Soap.BindingImpli.javaに下記のようににテストコードを書き込みLinuxマシーン上 > でDeploy、WSDLがLocalhostで見えることを確認しました。(Tomcatを使っています.) > 次に.NET側でテストモジュールを作ろうと、別のWindowsマシーンから、このサー > バーに向けて参照の追加を行うと下記のようなエラーが出てしまいサービスと接 > 続できません. 手順でなにか間違いあれば、ご指摘いただけると大変たすかり > ます。 > > 「修正したSoap.BindingImpli.java」 > > package testWS; > > public class TestsysSoap_BindingImpl implements testWS.TestsysSoap_PortType{ > private String version = new String("1.0"); > > public testWS.HelloResponse hello(testWS.Hello parameters) throws > java.rmi.RemoteException { > HelloResponse ret = new HelloResponse(); > ret.setHelloResult("hoge"); > ret.setGeneric(version); > return ret; > > } > > 「Win側のエラー」 > > c:\inetpub\wwwroot\accessKure\Web > References\WebReference\Reference.map(1): カスタム ツール エラー : Web > サービス/スキーマをインポートできません。名前空間 'urn:xxx' から連結 > 'TestsysSoapSoapBinding' をインポートできません。 操作 'Hello' をイン > ポートできません。 targetNamespace='urn:xxx' を持つスキーマの構文が無 > 効です。 'base' 属性が無効か、または見つかりません。 > > > > Linux.netMasashi Takeichi wrote: > > はじめまして。武市と申します。 > > > > Axis用のサービスを開発するために必要なファイルは、 > > 基本的にWSDL2Javaが自動生成してくれます。 > > 開発者が行うことは、逸見さんのおっしゃられている通り、 > > サービスを実装するメソッドを記述してあげることだけとなります。 > > > > その際にメソッド内部からAxis関連のモジュールを > > 呼び出す必要はありません。 > > ユーザが実装したメソッドをWebサービスとして動作させるために > > 必要な処理(SOAPメッセージの解釈、引数のシリアライズ、デシリアライズなど) > > はすべてAxisのランタイムが行ってくれるためです。 > > サービスの実装メソッドには純粋に業務ロジックのみを > > 記述すればよいと思います。 > > > > > > On Thu, 28 Jul 2005 19:53:45 +0900 > > Tom <[EMAIL PROTECTED]> wrote: > > > > > >>逸見と申します. WinからAXISにサービスを移そうとしているのですが、経験お > >>ありの方お教え願いたいのですが。 > >> > >> AXISユーザガイドのサーバー側のバインデングに従ってWinのWSDLから > >>SWSDL2Javaに--skaletonDeploy true をつけてService作成の各種クラスを作 > >>り、実装に入ろうとしていますが、実装テンプレートを見ると、せービス側のプ > >>ログラムは入力パラメータと出力パラメータ(私の場合はどちらも、構造の複雑な > >>構造体なのですが)をセットし、あとはサービス内部をかけば良いようにみえる > >>のですが、AXISの関連モジュールは呼ばなくてかまわないのでしょうか. > >> > >> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > ----------------------------------------- > > Masashi Takeichi <[EMAIL PROTECTED]> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] ----------------------------------------- Masashi Takeichi <[EMAIL PROTECTED]>
error.txt
Description: Binary data
MixBookDataEchoService.wsdl
Description: Binary data
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]