我是 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 运行时
最佳答案
我假设这只是一个复制粘贴错误,但您的 ComplexType getter 方法语法不正确。他们缺少 ()。这可能导致它们编译为字段而不是方法。如果这不仅仅是错字,请尝试修复方法并删除注释。
关于java - WSDL 中缺少信息(JAX-WS 运行时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114223/