web-dev-qa-db-ja.com

use = "encoded"を例外としてWSDLの解析中にエラーが発生しました

wsimportを実行するたびに、次のエラーが発生します。

[エラー] "SOAPエンコーディングはサポートされていません。SOAP file:dummy.wsdlの65行目の拡張要素にuse =" encoded ""が失敗しましたWSDLを解析します。

WSDL(エラーブロック):

<wsdl:input name="dummyRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="urn:cmg.stdapp.webservices.generalplugin" use="encoded" />
</wsdl:input>
13
ddss

これは、指定されたWSDLがRPCエンコーディングであり非常に古い方法である「encoded」を使用しているためです。 RPCエンコーディングはwsimportではサポートされていません

エラーメッセージに関する詳細情報Java.netの元のリンク切れ

別の方法として、 Apache Axis を使用してみてください。これは厄介で古いものですが、うまくいくと思います。

Mavenプロジェクトの場合、WSDLをsrc/main/resources/wsdlにドロップし、pom.xmlに以下を追加します

<dependency>
   <groupId>org.Apache.axis</groupId>
   <artifactId>axis</artifactId>
   <version>1.4</version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>org.Apache.axis</groupId>
   <artifactId>axis-jaxrpc</artifactId>
   <version>1.4</version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>wsdl4j</groupId>
   <artifactId>wsdl4j</artifactId>
   <version>1.6.2</version>
   <scope>compile</scope>
</dependency>

<plugins>
...
<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>axistools-maven-plugin</artifactId>
   <version>1.4</version>
   <executions>
       <execution>
           <goals>
               <goal>wsdl2Java</goal>
           </goals>
       </execution>
   </executions>
   <configuration>
       <packageSpace>com.mycompany.service.client</packageSpace>
       <sourceDirectory>src/main/resources/wsdl</sourceDirectory>
       <outputDirectory>target/generated-sources/wsdl2Java</outputDirectory>
   </configuration>
</plugin>
20
rjdkolb