2012-01-04 11 views
1

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オプションを使用して似ています。

答えて

1

これは現在、WSDLを変更しなければ不可能です。これを行うには、AXIS-1984で説明されているように、WSDLを変更せずに(BTW、なぜそうしたくないのでしょうか)、XMLカタログのサポートが必要です。

+0

アイデアは、ファイルを直接ダウンロードし、mavenでサービス生成を開始することです。手動による対話は、エラーソースではないように最小限に抑える必要があります。回避できる手順ではエラーは発生しません。リンクありがとう。 –

+0

次に、HTTP URLをwsdl2javaに直接フィードしないでください。 –

+0

それについても考えました。しかし、webserviceを持つサーバーは常に最新のバージョンを搭載しているわけではありません。 –