簡體   English   中英

無法使用cxf-java2ws-plugin生成正確的wsdl

[英]Can not generate correct wsdl with cxf-java2ws-plugin

我正在嘗試從MyWebService界面生成wsdl文件;

public interface MyWebService{
    public ResponseMessage processService(MyWSData myWSData);
}

這是java類

public class MyWSData extends Message {
    private String myString;
    private MyOtherClass[] myOtherClassArray;  
    private Long myLong;
}

public class MyOtherClass{
    private Long id;
    private String name;
}

這是我的pom.xml文件

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-java2ws-plugin</artifactId>
                <version>2.4.3</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-frontend-jaxws</artifactId>
                        <version>2.4.3</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-frontend-simple</artifactId>
                        <version>2.4.3</version>
                    </dependency>
                </dependencies>

                <executions>
                    <execution>
                        <id>process-classes</id>
                        <phase>process-classes</phase>
                        <configuration>
                            <className>com.ferdisonmezay.webservice.MyWebService</className>
                            <genWsdl>true</genWsdl>
                            <verbose>true</verbose>
                            <genClient>false</genClient>
                            <serviceName>MyWebService</serviceName>
                            <targetNameSpace>some-namespace-here</targetNameSpace>
                            <argline> -createxsdimports </argline>
                        </configuration>
                        <goals>
                            <goal>java2ws</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

在我生成的wsdl文件中:MyOtherClass數組字段看起來為空

<xs:complexType name="myOtherClassArray">
    <xs:sequence/>
  </xs:complexType>

應該是什么原因,或者還有其他方法可以生成正確的wsdl文件,包括MyOtherClass []

  1. 那是CXF的很舊的版本。

  2. 沒有訪問器,JAX-B不能對MyOtherClass做任何事情。 嘗試將公共獲取器和設置器添加到字段中。

兩件事情:

  1. CXF 2.5.2 java2ws不喜歡從接口生成,因為它需要一個實現來在生成的服務器中實例化。 因此,從實現您的接口的類生成。

  2. 實現MyWebService的類需要使用@ javax.jws.WebService進行注釋,而該類中的processService()方法需要使用@ javax.jws.WebMethod進行注釋-java2ws只會為所需的方法生成WSDL。 。 您當然可以使用import javax.jws.WebService; 並使用@WebService等進行注釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM