[英]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 []
那是CXF的很舊的版本。
沒有訪問器,JAX-B不能對MyOtherClass做任何事情。 嘗試將公共獲取器和設置器添加到字段中。
兩件事情:
CXF 2.5.2 java2ws不喜歡從接口生成,因為它需要一個實現來在生成的服務器中實例化。 因此,從實現您的接口的類生成。
實現MyWebService的類需要使用@ javax.jws.WebService進行注釋,而該類中的processService()方法需要使用@ javax.jws.WebMethod進行注釋-java2ws只會為所需的方法生成WSDL。 。 您當然可以使用import javax.jws.WebService; 並使用@WebService等進行注釋
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.