2016-06-30 36 views
1

Ich verwende Apache Axis, um die Java-Quelle aus meiner WSDL-Datei zu generieren. Der Maven-Lauf war erfolgreich ohne Fehler, aber keine generierten Klassen.axistools-maven-plugin erzeugt keine Quelle von WSDL

Frage: Was fehlt mir hier?

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>axistools-maven-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>wsdl2java</goal> 
       </goals> 
       <configuration> 
        <sourceDirectory>/src/main/resources</sourceDirectory> 
        <outputDirectory>/src/main/java</outputDirectory> 
        <wsdlFiles> 
         <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile> 
        </wsdlFiles> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

Ich bin eindeutig nicht sicher, was das Problem mit dieser Konfiguration ist.

Antwort

0

Try Quell- und Ausgabeverzeichnis basiert auf Ihrem Maven Projekt zu definieren, das heißt, Standard Maven Eigenschaften mit Hilfe zur Laufzeit auf den rechten Seite absoluten Pfad verweisen, nach der Konfiguration als Wechsel:

<sourceDirectory>${basedir}/src/main/resources</sourceDirectory> 
<outputDirectory>${basedir}/src/main/java</outputDirectory> 

auf dieser Basis Konfiguration wird die thesourcewsdlfile.wsdl soll unter src/main/resources/thesourcewsdlfile.wsdl

die vollständige Plugin-Konfiguration sollte daher sein, angeordnet sein:

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>axistools-maven-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>wsdl2java</goal> 
       </goals> 
       <configuration> 
        <sourceDirectory>${basedir}/src/main/resources</sourceDirectory> 
        <outputDirectory>${basedir}/src/main/java</outputDirectory> 
        <wsdlFiles> 
         <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile> 
        </wsdlFiles> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 
Außerdem

, müssen die folgenden Abhängigkeiten zu dem Projekt hinzugefügt werden:

<dependencies> 
    <dependency> 
     <groupId>org.apache.axis</groupId> 
     <artifactId>axis</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.xml</groupId> 
     <artifactId>jaxrpc-api</artifactId> 
     <version>1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.1</version> 
    </dependency> 
</dependencies> 

Als allgemeine Anmerkung, wäre es viel besser, erzeugt Quellen unter dem target Verzeichnis abgelegt werden, da sie automatisch generiert werden und sollten nicht zur verwendeten Versionskontrolle hinzugefügt werden. Ein Standardstandort wäre dann ein beliebiges (sinnvolles) Verzeichnis unter ${project.build.directory}/generated-sources (wobei ${project.build.directory} die Standardeigenschaft ist, die tatsächlich auf das Verzeichnis target verweist).

+0

Ich bekomme 'verursacht durch: java.lang.ClassNotFoundException: org.apache.axis.wsdl.WSDL2Java', wenn ich den absoluten Pfad wie oben erwähnt gebe. Wird ohne Quelldateien ausgeführt, wenn ich es entferne. – Arun

+0

@ArunRaj überprüfen Sie mein Update, es versuchte es und funktioniert jetzt gut. –

+0

Ich habe es versucht, aber der gleiche Fehler: 'Eine erforderliche Klasse fehlte während der Ausführung von org.codehaus.mojo: axistools-maven-plugin: 1.4: wsdl2java: org.apache.axis.wsdl.WSDL2Java' Ist es ein Maven-Problem? – Arun