Wie um die Karte wsdl-Datei mit der maven-jaxb2-plugin mit dem Namen Kollision

Habe ich ein problem die Zuordnung eines web service-Java-POJO ist, weil es enthält zwei Elemente:

  • label1
  • label_1

Wenn das plugin wandelt es um java-POJO ‚ s die Unterstriche im Namen gestrippt werden, wodurch doppelte Felder in der generierten Klasse.

[Fehler] FEHLER beim erzeugen der code.Standort [
Datei:/C:/PrivateWS/test-project/sources/target/wsdl/test.wsdl{12,94}].
com.Sonne.istack.SAXParseException2; systemId:
Datei:/C:/PrivateWS/test-project/sources/target/wsdl/test.wsdl;
lineNumber: 12; spalteanzahl: 94; Zwei Erklärungen verursachen einer Kollision
in der ObjectFactory-Klasse.

Habe ich versucht, eine externe binding-Datei umbenennen eines der Elemente, die zu einem anderen Namen, aber das schlägt fehl.
Ich habe eine Menge von verschiedenen Foren, aber ich finde keine Lösung, die zu funktionieren scheint. Soweit ich sehen kann, die Eigenschaft wird nicht beachtet und dies verursacht folgenden Fehler.

[ERROR] Error while parsing schema(s).Standort [
Datei:/C:/PrivateWS/test-project/sources/target/classes/bindings.xjb{9,46}].
com.Sonne.istack.SAXParseException2; systemId:
Datei:/C:/PrivateWS/test-project/sources/target/classes/bindings.xjb;
lineNumber: 9; spalteanzahl: 46; compiler nicht in der Lage war zu Ehren dieses
Eigenschaft anpassen. Es wird an einer falschen Stelle, oder seine
unvereinbar mit anderen Bindungen.

Was mache ich falsch zu machen, das umbenennen der Feld Arbeit?

Ändern Sie die wsdl ist keine option, weil es eine Dritte Partei wsdl.

pom.xml

<?xml version="1.0"?><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
     xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<modelVersion>4.0.0</modelVersion>

<groupId>com.testproject</groupId>
<artifactId>testproject</artifactId>
<version>0.0.0-SNAPSHOT</version>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-binding-file</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.basedir}/src/main/resources</directory>
                                <includes>
                                    <include>bindings.xjb</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <execution>
                    <id>copy-wsdl-file</id>
                    <phase>initialize</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/wsdl</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.basedir}/src/main/resources/wsdl</directory>
                                <includes>
                                    <include>test.wsdl</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.13.1</version>
            <executions>
                <execution>
                    <id>TestProject</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <generatePackage>com.testproject</generatePackage>
                        <schemaIncludes>
                            <schemaInclude>wsdl/test.wsdl</schemaInclude>
                        </schemaIncludes>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <bindingDirectory>${project.build.outputDirectory}</bindingDirectory>
                <bindingIncludes>
                    <include>bindings.xjb</include>
                </bindingIncludes>
                <forceRegenerate>true</forceRegenerate>
                <schemaDirectory>${project.build.directory}</schemaDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

test.wsdl

<definitions name="HelloService"
         targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
         xmlns="http://schemas.xmlsoap.org/wsdl/"
         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
         xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:schema xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl" elementFormDefault="unqualified" targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl" version="1.0">
    <xsd:element name="requestType" type="tns:requestType"/>

    <xsd:complexType final="extension restriction" name="requestType">
        <xsd:sequence>
            <xsd:element form="qualified" minOccurs="0" name="label1" type="xsd:string"/>
            <xsd:element form="qualified" minOccurs="0" name="label_1" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

<message name="SayHelloRequest">
    <part element="tns:requestType" name="parameters"/>
</message>

<message name="SayHelloResponse">
    <part name="greeting" type="xsd:string"/>
</message>

<portType name="Hello_PortType">
    <operation name="sayHello">
        <input message="tns:SayHelloRequest"/>
        <output message="tns:SayHelloResponse"/>
    </operation>
</portType>

<binding name="Hello_Binding" type="tns:Hello_PortType">
    <soap:binding style="rpc"
                  transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sayHello">
        <soap:operation soapAction="sayHello"/>
        <input>
            <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="urn:examples:helloservice"
                    use="encoded"/>
        </input>

        <output>
            <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="urn:examples:helloservice"
                    use="encoded"/>
        </output>
    </operation>
</binding>

<service name="Hello_Service">
    <documentation>WSDL File for HelloService</documentation>
    <port binding="tns:Hello_Binding" name="Hello_Port">
        <soap:address
                location="http://www.examples.com/SayHello/"/>
    </port>
</service>

verbindlich.xjb

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

<jxb:bindings schemaLocation="*">
    <jxb:bindings node="//xs:complexType[@name='requestType']" required="false">
        <jxb:bindings node=".//xs:element[@name='label_1']" required="false">
            <jxb:property name="label2"/>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>

InformationsquelleAutor TCke | 2016-08-03



One Reply
  1. 1

    Haben Sie underscoreBinding und versucht?

    <jxb:bindings schemaLocation="*">
        <jxb:globalBindings underscoreBinding="asCharInWord" />
    </jxb:bindings>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.