问题 使用异常use =“encoded”解析WSDL时出错


每次我跑 的wsimport,我收到此错误:

[错误]“不支持使用SOAP编码。   文件中第65行的SOAP扩展元素:dummy.wsdl具有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>

10752
2018-04-01 11:09


起源



答案:


这是因为给定的WSDL使用'encoded',这是一种RPC编码和一种非常古老的做事方式。 wsimport不支持RPC编码

有关您的错误消息的更多信息

作为替代尝试使用 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>

14
2018-05-20 12:01