首页 > 解决方案 > WSDL 到 Java 工件

问题描述

我在从 WSDL url 生成 java 工件时遇到了麻烦。我已经尝试过这个帖子 链接来发布并最终在我的 pom 文件中使用了这个配置

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <wsdlUrls>
                        <wsdlUrl>https://tim-erp.com/ERPX_WEB/awws/ErpX.awws?wsdl</wsdlUrl>
                    </wsdlUrls>
                    <packageName>com.output</packageName>
                    <sourceDestDir>
                        ${project.build.directory}/generated-sources/
                    </sourceDestDir>
                </configuration>
            </plugin>

但现在我收到此错误 [ERROR] Invalid wsdl:operation "kasaLogin": its a document-literal operation, message part must refer to a schema element declaration。

几天前,我曾使用此链接生成初始工件,但我删除了代码,现在我不记得它是如何工作的了。现在我正在寻找任何可行的解决方案。 导入到 SOAP UI 时 Wsdl 工作正常。我正在使用 java 11 和 Intellij Idea。

提前致谢。

标签: javaspringsoapwsdl

解决方案


使用soap ui查看消息的外观,然后创建与您所看到的完全一样的soap消息,这对我来说很好用。这是创建肥皂消息的演示的一部分

MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
SOAPEnvelope envelope = soapPart.getEnvelope();

……

创建肥皂消息后,您只需发送一个包含您组装的 http 或 https 请求。


推荐阅读