2010-05-22 5 views
17

Ich versuche axis2 (1.5.1) Version zu verwenden Java-Codes von WSDL-Dateien zu generieren, aber ich kann nicht herausfinden, was die richtige pom.xml istaxis2 Maven Beispiel

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
      <version>1.5.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>wsdl2code</goal> 
        </goals> 
        <configuration> 
         <wsdlFile>src/main/resources/wsdl/stockquote.wsdl</wsdlFile> 
         <databindingName>xmlbeans</databindingName> 
         <packageName>a.bc</packageName> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
</dependencies> 

, wenn ich schreibe mvn Kompilierung, es klagt die

Retrieving document at 'src/main/resources/wsdl/stockquote.wsdl'. 
java.lang.ClassNotFoundException: org.apache.xml.serializer.TreeWalker 

Und wenn ich versuche, die TreeWalker zu finden, es ist ein Chaos, eine geeignete jAR-Dateien zu finden.

Kann mir jemand einen Tipp geben? oder geben Sie mir richtig pom.xml

[Update] die xalan-2.7.0.jar Bedürfnisse depedent auch werden, und die JAR-Datei defekt ist (wegen nexus Problem), thx pascal

+0

ich die Schritte gefolgt in der accepter Antwort beschrieben, aber es hat nicht Arbeit; Maven beschwert sich immer noch über die fehlende Klasse. Können Sie eine vollständige Antwort mit einem funktionierenden POM posten? – Leonel

Antwort

22

Es ist vielleicht nicht

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.stackoverflow</groupId> 
    <artifactId>Q2888422</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-api</artifactId> 
     <version>1.2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-impl</artifactId> 
     <version>1.2.6</version> 
    </dependency> 
    <dependency> 
     <groupId>axis</groupId> 
     <artifactId>axis-wsdl4j</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.3.0</version> 
    </dependency> 
    ... 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
     <version>1.5.1</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>wsdl2code</goal> 
      </goals> 
      <configuration> 
       <wsdlFile>src/main/resources/wsdl/stockquote.wsdl</wsdlFile> 
       <databindingName>xmlbeans</databindingName> 
       <packageName>a.bc</packageName> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Diese pom.xml das Ergebnis oder versucht, Fehler plus einige googeln, konnte ich keine einzige offizielle oder inoffizielle Ressource finden: zu erstellenden optimal, aber die folgende pom.xml scheint der generierte Code zu ermöglichen, mit einem funktionierenden Setup. Ernsthaft, warum zur Hölle ist es so schwer ein Axis2-Projekt einzurichten? Ein weiterer Grund, warum ich Axis nicht mag.

+0

danke für die Kommentare, und ich benutze die neue dep. Der Fehler ist weiterhin vorhanden, da die Dependance xercesImpl-2.6.2 keine TreeWalker-Klasse hat, nur die neuere Version enthält diese. Und ich Liste alle Maven Abhängigkeiten Version unten (von meiner Eclipse) axis2-1.5.1.jar Axiom-api-1.2.6.jar geronimo-activation_1.1_spec-1.0.jar geronimo-javamail_1.4_spec -1.2.jar commons-logging-1.1.1.jar jaxen-1.1.1.jar xml-apis-1.3.04.jar xercesImpl-2.6.2.jar geronimo-stax-api_1.0_spec-1.0.1.jar Axiom-Umsetz-1.2.6.jar wstx-asl-3.2.4.jar achsen wsdl4j-1.5.1.jar XMLBeans-2.3. 0.jar stax-api-1.0.1.jar –

+0

Ok, es hängt von xalan ab und mein Xalan-2.7.0 ist wieder kaputt. Jetzt ist das Problem gelöst, thx. –

+0

Das hat mich auf den richtigen Weg gebracht, aber ich musste die Axiom-Versionen auf 1.2.8 aktualisieren und auch eine Abhängigkeit von axiom-dom hinzufügen, um es kompilieren zu lassen. Danke, dass du einen frustrierenden Morgen beendet hast! –

4

sorgen dafür, dass die Config geschoben werden muss oben (das Beispiel falsch ist)

<plugins> 
    <plugin> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
     <version>1.5.1</version> 
       <configuration> 
        <wsdlFile>src/main/resources/wsdl/stockquote.wsdl</wsdlFile> 
        <databindingName>xmlbeans</databindingName> 
        <packageName>a.bc</packageName> 
       </configuration> 
     <executions> 
      <execution> 
       <goals> 
        <goal>wsdl2code</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 
+2

Achtung! Ich hatte ein ähnliches Problem: Aufruf von Maven gemäß [Docs] (http://axis.apache.org/axis2/java/core/tools/maven-plugins/maven-wsdl2code-plugin.html): 'mvn -e axis2-wsdl2code: wsdl2code hat die Konfiguration nicht ausgewählt. Aber die Konfiguration wird richtig gelesen, wenn Sie die maven-Phase anstelle des Ziels aufrufen: 'mvn -e generate-sources'. Es ist wichtig, dass Sie jede Ausführung unabhängig konfigurieren können, wenn Sie Quellen für mehr als eine WSDL generieren müssen. – Alberto

1

Dies ist eine aktualisierte Version des pom von Pascal Thivent zur Verfügung gestellt.

Die wichtigsten Änderungen sind, dass Versionsnamen unterschiedlich sind und Neethi benötigt wird.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example</groupId> 
    <artifactId>my-wsdl2code-example</artifactId> 
    <version>1.0</version> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.axis2</groupId> 
       <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
       <version>1.6.1</version> 
       <executions> 
        <execution> 
         <id>execution_id</id> 
         <goals> 
          <goal>wsdl2code</goal> 
         </goals> 
         <configuration> 
          <packageName>com.example.wsdl</packageName> 
          <wsdlFile>src/main/wsdl/web-service.wsdl</wsdlFile> 
          <databindingName>xmlbeans</databindingName> 
         </configuration> 
        </execution> 
       </executions> 

       <dependencies> 

        <dependency> 
         <groupId>org.apache.xmlbeans</groupId> 
         <artifactId>xmlbeans</artifactId> 
         <version>2.6.0</version> 
        </dependency> 

       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 

     <dependency> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

     <dependency> 
      <groupId>axis</groupId> 
      <artifactId>axis-wsdl4j</artifactId> 
      <version>1.5.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.neethi</groupId> 
      <artifactId>neethi</artifactId> 
      <version>3.0.2</version> 
     </dependency> 


     <dependency> 
      <groupId>org.apache.ws.commons.axiom</groupId> 
      <artifactId>axiom-impl</artifactId> 
      <version>1.2.14</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.xmlbeans</groupId> 
      <artifactId>xmlbeans</artifactId> 
      <version>2.6.0</version> 
     </dependency> 

    </dependencies> 

</project> 
2

Dank Pascals Pom konnte ich es mit den neuesten Versionen arbeiten. Außerdem:

  • Ich musste das build-helper-maven-plugin Plugin hinzufügen, so dass meine Client-Klassen auf die Proxy-Stubs zugreifen konnten.
  • Ich entfernte die package Konfigurationsoption
  • ich meine outputDirectory geändert

Hier ist mein pom:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.yourcompany</groupId> 
<artifactId>axis2-server-proxy</artifactId> 
<version>1.0.0</version> 
<packaging>jar</packaging> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.axis2</groupId> 
     <artifactId>axis2</artifactId> 
     <version>1.6.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-api</artifactId> 
     <version>1.2.15</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.commons.axiom</groupId> 
     <artifactId>axiom-impl</artifactId> 
     <version>1.2.15</version> 
    </dependency> 
    <dependency> 
     <groupId>axis</groupId> 
     <artifactId>axis-wsdl4j</artifactId> 
     <version>1.5.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.6.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.axis2</groupId> 
      <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
      <version>1.6.3</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>wsdl2code</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/generated-sources/</outputDirectory> 
         <wsdlFile>src/main/wsdl/services_visa_com_realtime_realtimeservice_v6_PublicV2.wsdl</wsdlFile> 
         <databindingName>xmlbeans</databindingName> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>add-source</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>add-source</goal> 
        </goals> 
        <configuration> 
         <sources> 
          <source>${project.build.directory}/generated-sources/</source> 
         </sources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build>