wsdl2java
(maven axistoolsでラップされています)を使用して軸を使用してJavaクライアントを生成しようとしています。軸wsdl2javaが特殊文字を含むスキーマの読み込みに失敗する
私はwsdlと対応するスキーマをダウンロードしました。
WSDLは、以下のスキーマ定義を有する:
要するに<wsdl:types>
<xsd:schema
targetNamespace="http://example.com/CM_IntegrationService/"
xmlns:pref="http://example.com/CM_IntegrationService"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://example.com//CM_IntegrationService"
schemaLocation="CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd"/>
:
schemaLocation="CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd"
誤差として示す:
:見つかりません短いファイルで[ERROR] Failed to execute goal org.codehaus.mojo:axistools-maven-plugin:1.4:wsdl2java (default) on project wsclient-cm: Error generating Java code from WSDL. error running file:/C:/workspace/ws/wsclient-reactor/wsclient-wsdl/src/main/wsdl/CM_IntegrationService.wsdl:
WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve schema referenced at 'CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd', relative to 'file:/C:/workspace/ws/wsclient-reactor/shop-wsclient-wsdl/src/main/wsdl/CM_IntegrationService.wsdl'.:
This file was not found: file:/C:/workspace/ws/wsclient-reactor/wsclient-wsdl/src/main/wsdl/CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd -> [Help 1]
/C:/workspace/ws/wsclient-reactor/wsclient-wsdl/src/main/wsdl/CM_IntegrationService?xsd=ServiceModel_CM_IntegrationService.xsd
使用するスキーマを指定する方法はありますか?スキーマをServiceModel_CM_IntegrationService.xsd
として保存しました。しかし、私はファイルシステムでエミュレートできない=
と?
を含む完全なパスを探しています。
で提案されているように私は、WSDLを変更したくない:WSDL to Java -client creation error
Why is axistools-maven-plugin trying to access this relative schema location?は、しかし、助けていないuseEmitter=true
オプションを使用して似ています。
アイデアは、ファイルを直接ダウンロードし、mavenでサービス生成を開始することです。手動による対話は、エラーソースではないように最小限に抑える必要があります。回避できる手順ではエラーは発生しません。リンクありがとう。 –
次に、HTTP URLをwsdl2javaに直接フィードしないでください。 –
それについても考えました。しかし、webserviceを持つサーバーは常に最新のバージョンを搭載しているわけではありません。 –