7

以前にwsimportを使用してMetroクライアントを生成しましたが、その場合、WSDLはhttps経由でアクセスされました。私のコンマは次のようになりました:

wsimport https://service.net/services/Service?wsdl -d C:\ClientProject\src\main\java -keep

そして、すべてがうまくいきました。現在、クライアントを生成しようとしていますが、WSDLファイルのローカルコピーしかありません。私のプロジェクトディレクトリは次のように設定されています(c:\ Devel内):

ClientProject
  |- src
     |- main
        |- java
     |- resources
        |- META-INF
           |- service.wsdl
  |- wsimport.bat

wsimport.batファイルは次のようになります。

wsimport -keep -d ../src/main/java -wsdlLocation ../src/resources/META-INF/service.wsdl

これはMetroGuideの例に基づいていますが、-pオプションはありません(http://metro.java.net/guide/Developing_client_application_with_locally_packaged_WSDL.html)。ただし、batファイルを実行すると、コマンドの無限ループがコンソールに出力されます。例えば

C:\Devel\ClientProject>wsimport -keep -d ../src/main/java -wsdlLocation ../src/resources/META-INF/service.wsdl

誰かが私が間違っていることを指摘できますか?

アップデート

絶対パスを使用してみました(そして、パラメータの順序を無駄に並べ替えました。それでも、無限のコマンドコンソールの出力が表示されます。

wsimport C:\Devel\ClientProject\src\resources\META-INF\service.wsdl -d C:\Devel\ClientProject\src\main\java -keep
4

1 に答える 1

9

http://www.java.net/forum/topic/glassfish/metro-and-jaxb/problems-generated-client-using-local-wsdl-file#comment-812705

.batファイルを使用してwsimportコマンドを実行する場合は、wsimportという名前を付けないでください。名前を付けないと、そのファイルを呼び出す無限の再帰ループになります。

また、「-wsdllocation」では大文字と小文字が区別されます。「-wsdlLocation」は機能しません(検索中に多くの例を見てきましたが)。

このwsimportコマンドは、ローカルWSDLからクライアントコードを生成し、サービスクラスの@WebServiceClientアノテーションに「wsdlLocation」属性を設定します。

wsimport src/resources/META-INF/service.wsdl -keep -d src/main/java -wsdllocation META-INF/service.wsdl
于 2011-03-09T17:37:01.183 に答える