我在创建SOAP客户端时遇到了一些麻烦。 我必须使用BiPRO WebService(德国保险机构之间的规范通信模式)。 WebService有一个复杂的数据结构,我认为代码生成器在该结构中存在一些问题。
我收到以下错误消息:
SAXParseException; [...] A class/interface with the same name "barmenia.LebenWs.CTElementarprodukt" is already in use. Use a class customization to resolve this conflict.
以及
[...] (Relevant to above error) another "CTElementarprodukt" is generated from here
经过一些研究,我发现使用
autoNameResolution
会有所帮助。但是如果我这样做,那么这些类的生成就不正确(缺少一些属性 - 上面的消息就是一个属性)。
我使用以下maven插件生成客户端:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generatePackage>de.tj.msc.bipro.consumer.taa.tarifierung.services.clients.leben.barmenia.LebenWs</generatePackage>
<schemas>
<schema>
<url>
https://ws0.barmenia24.de/ibis/services/lebenservice_2.1.5.1.2?wsdl</url>
</schema>
</schemas>
</configuration>
</plugin>
我读了一些关于使用xjb文件的内容。 但是我没有这样的文件。
如果有人能帮助我,那就太好了。 非常感谢你!
祝福
答案 0 :(得分:0)
如评论所述,我建议使用不同的JAX-WS / JAX-B生成库来检查是否会出现相同的错误 - 比如jaxws-maven-plugin,这在我的项目中运行得非常好(请参阅例如cxf-spring-boot-starter。