2012-01-26 20 views
0

MyWebServiceインターフェイスからwsdlファイルを生成しようとしています。cxf-java2ws-pluginで正しいwsdlを生成できません。

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

、ここでは私の生成されたWSDLファイル内

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

私のpom.xmlファイルのJavaクラス

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

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

だとここにある: MyOtherClass配列フィールドが空

<xs:complexType name="myOtherClassArray"> 
    <xs:sequence/> 
    </xs:complexType> 
に見えます

何が理由であるべき、またはCXFの非常に古いバージョンを表示しています[]

答えて

1
  1. MyOtherClass含め、正しいWSDLファイルを生成するための他の方法があります。

  2. アクセサがなければ、JAX-BはMyOtherClassで何もできません。フィールドにパブリックゲッターとセッターを追加してみてください。

+0

ありがとうございました! ;) – fsonmezay

0

2つのこと:それは生成されたサーバーでインスタンス化する実装を必要とするため

  1. CXF 2.5.2 java2wsは、インタフェースから生成するようにしていません。したがって、あなたのインターフェイスを実装するクラスから生成します。

  2. MyWebServiceは、@ javax.jws.WebServiceで注釈する必要が実装するクラス、そのクラスのメソッドprocessServiceは()@ javax.jws.WebMethodでアノテートする必要 - java2wsのみのためのWSDLを生成しますあなたが望む方法。もちろん、import javax.jws.WebServiceを使用することもできます。 @WebServiceなどで注釈を付けるだけです。

関連する問題