Jaxb:wsdl 中的两个声明导致 objectFactory 类中的冲突

塞巴斯蒂安 G。

我想使用 Affilinet API。它的一个 WSDL 文件在这里:

Affilinet AccountService.wsdl

我使用这个 Maven 插件来生成源代码:

Jaxb Maven 插件

我的 Pom.xml 插件配置:

<plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.13.1</version>
                <executions>
                    <execution>
                        <id>schema1-generate</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <schemaLanguage>WSDL</schemaLanguage>
                            <generatePackage>webservices.framework.affilinet.logon</generatePackage>
                            <schemas>
                                <schema>
                                    <url>https://api.affili.net/V2.0/Logon.svc?wsdl</url>
                                </schema>
                            </schemas>
                        </configuration>
                    </execution>
                    <execution>
                    <id>schema2-generate</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <schemaLanguage>WSDL</schemaLanguage>
                        <generatePackage>webservices.framework.affilinet.inbox</generatePackage>
                        <schemas>
                            <schema>
                                <url>https://api.affili.net/V2.0/PublisherInbox.svc?wsdl</url>
                            </schema>
                        </schemas>
                    </configuration>
                </execution>
                    <execution>
                        <id>schema3-generate</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <schemaLanguage>WSDL</schemaLanguage>
                            <generatePackage>webservices.framework.affilinet.inbox</generatePackage>
                            <schemas>
                                <schema>
                                    <url>https://api.affili.net/V2.0/AccountService.svc?wsdl</url>
                                </schema>
                            </schemas>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

所以,在编译这个时,我收到一个错误:

com.sun.istack.SAXParseException2; systemId: https://api.affili.net/V2.0/AccountService.svc?wsdl; lineNumber: 1; columnNumber: 2127; Two declarations cause a collision in the objectFactory class.

但是我如何使用来自 url 的 wsdl 文件来解决这个问题?

schemaLocation 不接受 wsdl 文件....

编辑:完整日志:

[ERROR] Error while generating code.Location [ https://api.affili.net/V2.0/AccountService.svc?wsdl{1,6200}].

com.sun.istack.SAXParseException2; systemId: https://api.affili.net/V2.0/AccountService.svc?wsdl ; 行号:1;列数:6200;这是另一个声明。

乐可可

如果您有两个相互冲突的定义,通常会发生这种情况。很难判断您的 WSDL 究竟有什么问题,因为它的格式很差。但通常这将类似于转换为 Java 后获得相同方法名称的两个元素。

您通常可以通过绑定自定义来解决这个问题。下面是一个例子:

<jaxb:bindings version="1.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    jaxb:extensionBindingPrefixes="xjc">

    <jaxb:bindings 
        schemaLocation="http://schemas.opengis.net/citygml/texturedsurface/1.0/texturedSurface.xsd" 
        node="/xs:schema">
        <jaxb:bindings node="xs:element[@name='_Appearance']">
            <jaxb:factoryMethod name="AAppearance"/>
        </jaxb:bindings>
    </jaxb:bindings>

</jaxb:bindings>

所以你要做的就是找出问题的确切原因,编写并应用绑定。我要做的第一件事是下载 WSDL,将其格式化为人类可读的并在本地编译。这应该清楚地指出哪些部分会导致问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

maven-jaxb2-plugin无法生成类,因为两个声明导致ObjectFactory类发生冲突

JAXB:无法解决ObjectFactory类错误中的冲突

通过自定义解决JAXB“ ObjectFactory类中的名称冲突”问题

xjc:两个声明导致ObjectFactory类发生冲突

wsdl2java两个类具有相同的XML类型名称“ {http://***.***.***.***/***/***/***} objectFactory”

Jaxb:如何生成ObjectFactory类?

如何解决wsdl2java上的ObjectFactory中的冲突?

JAXB 2的ObjectFactory类有什么意义?

使用JAXB时是否始终需要ObjectFactory类?

JAXB XJC代码生成-ObjectFactory类不完整

如何使用StructureMap在代码中摆脱ObjectFactory

wsimport两个声明导致冲突

两个类具有相同的XML类型名称“ objectFactory”

jaxb,wsdl文件,重复的类

如何在StructureMap 3中替换ObjectFactory用法

空的ObjectFactory构造函数是Sonar中的关键问题

jaxb(jax-ws)soap WSDL-方法中缺少参数

JAXB XJC 抑制 ObjectFactory 并生成 jaxb.index

Rails中的类名冲突

AngularFire ObjectFactory子对象导致循环依赖

JAXB解组期间,ObjectFactory的作用是什么?

在nginx配置中声明两个以上的上游会导致nginx花费80秒重新启动

两个文件中的Javascript冲突

wsimport-两个声明导致冲突,给定同一行

在我的项目和pod中命名两个类之间的冲突

如何对从WSDL生成的类使用JAXB自动继承?

从WSDL使用jaxb2-maven-plugin生成类

如何使用 jaxb 从 wsdl 文件生成 java 类?

如何使用HTTPS LINK从WSDL在jaxb中生成类?