2012-09-26 7 views
13

Stellen Sie sich dieses Szenario vor.Benutzerdefinierte Paketnamen cxf-codegen-plugin

Ich habe eine WSDL-Datei mit Namespace a/b/c und es importiert eine andere WSDL, deren Namespace m/n/o ist. Leider haben beide die gleichen ComplexTypes XYZ in ihnen definiert. Wenn ich jetzt cxf-codegen-plugin verwende, um Java-Code zu generieren und den benutzerdefinierten Paketnamen "com.qsrs.uvw" zu verwenden, wird nur eine Klasse im endgültigen Code beibehalten, der generiert wird. Kann mir hier jemand helfen?

+0

Definieren Sie nicht den Paketnamen lassen Sie cxf-codegen-plugin die Arbeit machen. – khmarbaise

Antwort

43

Wenn Sie Paket zu erzeugen, hier auf dem Namensraum abhängig ist die Lösung:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.6.0</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>yourWsdl.wsld</wsdl> 
         <extraargs> 
          <extraarg>-client</extraarg> 
          <extraarg>-verbose</extraarg> 
          <extraarg>-p</extraarg> 
          <extraarg>http://your.namespace/services/=your.package</extraarg> 
          <extraarg>-p</extraarg> 
          <extraarg>http://your.namespace2/services2/=your.package2</extraarg> 
         </extraargs> 
        </wsdlOption> 
       </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Diese <extraarg>http://your.namespace2/services2/=your.package2</extraarg> Ihre Namespace mit dem Paket, das Sie wollen kartieren.

+2

danke für die Antwort. Können Sie mir bitte mitteilen, wenn es möglich ist, allen generierten Paketen ein Präfix zu geben? – Gopal

+0

Was meinst du, Präfix für Pakete? –

+0

@ Paulius..Erinnere ich erlaube JibX, Schema zu respektieren, ich möchte, dass das gesamte erzeugte Paket unter einem Wurzelpaket jibx.x.y.z ist. Das eigentliche Problem ist, dass ich ein cxf-Code-Gen-Plugin habe, das Code unter Verwendung desselben Schemas erzeugt. So effektiv habe ich zwei Klassen mit gleicher Paketstruktur und Name. Daher möchte ich alle von jibx generierten Klassen unter einem anderen Stamm platzieren. – Gopal

Verwandte Themen