2010-05-22 33 views
17

tôi cố gắng sử dụng axis2 (1.5.1) phiên bản để tạo mã java từ file wsdl, nhưng tôi không thể tìm ra pom.xml đúng là những gìaxis2 maven dụ

<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> 

khi tôi gõ mvn biên dịch, nó khiếu nại

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

Và nếu tôi cố gắng tìm TreeWalker, sẽ là một mớ hỗn độn khi tìm một tệp jar phù hợp.

bạn có thể cho tôi một gợi ý không? hoặc cho tôi pom.xml đúng

[cập nhật] nhu cầu Xalan-2.7.0.jar được depedent là tốt, và các tập tin jar được chia (do vấn đề mối quan hệ), thx pascal

+0

Tôi làm theo các bước được mô tả trong câu trả lời accepter, nhưng nó đã không công việc; Maven vẫn phàn nàn về lớp còn thiếu. Bạn có thể đăng câu trả lời hoàn chỉnh với POM đang hoạt động không? – Leonel

Trả lời

22

Nó có lẽ không tối ưu nhưng pom.xml sau dường như cho phép các mã được tạo được biên soạn:

<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> 

pom.xml Đây là kết quả hoặc thử và lỗi cộng với một số googling, tôi không thể tìm thấy một quan chức duy nhất hoặc nguồn không chính thức với một thiết lập làm việc. Nghiêm túc đấy, tại sao lại khó thiết lập một dự án Axis2? Một lý do nữa tôi không thích Axis.

+0

cảm ơn các nhận xét và tôi sử dụng dep mới. Lỗi vẫn tồn tại, vì xercesImpl-2.6.2 phụ thuộc không có lớp TreeWalker, chỉ có phiên bản mới hơn bao gồm điều này. Và tôi liệt kê tất cả các phiên bản maven phụ thuộc dưới đây (từ nhật thực của tôi) axis2-1.5.1.jar tiên đề-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-impl-1.2.6.jar wstx-asl-3.2.4.jar axis-wsdl4j-1.5.1.jar xmlbeans-2.3. 0.jar stax-api-1.0.1.jar –

+0

Ok, nó cần phụ thuộc vào xalan và xalan-2.7.0 của tôi bị hỏng một lần nữa. Bây giờ vấn đề được giải quyết, thx. –

+0

Điều này đã cho tôi trên con đường bên phải nhưng tôi đã phải cập nhật các phiên bản tiên đề 1.2.8 và cũng thêm một phụ thuộc vào tiên đề-dom để có được nó biên dịch. Cảm ơn bạn đã kết thúc một buổi sáng thất vọng! –

4

nâng niu mang rằng cấu hình phải được đẩy lên (ví dụ là sai)

<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

Xem ra! Tôi đã có một vấn đề tương tự: gọi maven theo [docs] (http://axis.apache.org/axis2/java/core/tools/maven-plugins/maven-wsdl2code-plugin.html): 'mvn -e axis2-wsdl2code: wsdl2code' không chọn cấu hình. Nhưng cấu hình được đọc đúng nếu bạn gọi pha maven thay vì mục tiêu: 'mvn -e generate-sources'. Điều quan trọng là có thể định cấu hình mọi hoạt động độc lập nếu bạn cần tạo nguồn cho nhiều hơn một wsdl. – Alberto

1

Đây là một phiên bản cập nhật của pom được cung cấp bởi Pascal Thivent.

Sửa đổi chính là tên phiên bản khác nhau và cần có neethi.

<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

Nhờ pascal của Pascal, tôi có thể làm cho nó hoạt động bằng cách làm điều này với các phiên bản mới nhất. Ngoài ra:

  • Tôi đã thêm plugin build-helper-maven-plugin để lớp khách hàng của tôi có thể truy cập vào các nhánh proxy.
  • tôi loại bỏ các tùy chọn package cấu hình
  • tôi đã thay đổi tôi outputDirectory

Dưới đây là pom của tôi:

<?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>