私は JAX-WS を初めて使用します。次の状況があります。
サービス:
public class MyService {
@WebMethod()
public @WebResult MyBaseClass getBaseClassById(@WebParam(name="id") int id){
}
}
MyBaseClass と階層:
@XmlSeeAlso({MySimpleType.class, MyComplexerType.class})
public abstract class MyBaseClass {
private int intField;
public int getIntField() { return intField; }
}
public class MySimpleType {
private String stringField;
public String getStringField() { return stringField; }
}
public class MyComplexerType {
private String[] stringArray;
private List<String> stringList;
public String[] getStringArray(){ return stringArray; }
public List<String> getStringList(){return stringList; }
}
サービスを実行すると、MySimpleType と MyBaseType は適切に wsdl に変換されますが、MyComplexerType は変換されません。私が得るものは、おおよそ次のとおりです。
MyBaseType の場合:
<xs:complexType abstract="true" name="myBaseType">
<xs:sequence>
<xs:element name="intField" type="xs:int"/>
</xs:sequence>
</xs:complexType>
MySimplerType の場合:
<xs:complexType name="mySimpleType">
<xs:complexContent>
<xs:extension base="tns:myBaseType">
<xs:sequence>
<xs:element minOccurs="0" name="stringField" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
MyComplexerType の場合:
<xs:complexType name="myComplexerType">
<xs:complexContent>
<xs:extension base="tns:myBaseType">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
私は何を間違っていますか?List フィールドと String[] フィールドを WSDL に取り込むにはどうすればよいですか? JBoss 7.1.1.Final ランタイムを使用しています