Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WSDL中缺少信息(JAX-WS运行时)_Java_Web Services_Jboss_Wsdl_Jax Ws - Fatal编程技术网

Java WSDL中缺少信息(JAX-WS运行时)

Java WSDL中缺少信息(JAX-WS运行时),java,web-services,jboss,wsdl,jax-ws,Java,Web Services,Jboss,Wsdl,Jax Ws,我是JAX-WS新手,我有以下情况: 服务: public class MyService { @WebMethod() public @WebResult MyBaseClass getBaseClassById(@WebParam(name="id") int id){ } } MyBaseClass和层次结构: @XmlSeeAlso({MySimpleType.class, MyComplexerType.class}) public abs

我是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; }
}
@xmlseealway({MySimpleType.class,MyComplexerType.class})
公共抽象类MyBaseClass{
私有int域;
public int getIntField(){return intField;}
}
公共类MySimpleType{
私有字符串字符串字段;
公共字符串getStringField(){return stringField;}
}
公共类MyComplexerType{
私有字符串[]字符串数组;
私人名单;
公共字符串[]getStringArray(){return stringArray;}
公共列表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>

对于mySimpleType:

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


我做错了什么?如何将列表和字符串[]字段放入WSDL?我正在使用JBoss 7.1.1.Final runtime

我假设这只是一个复制粘贴错误,但是ComplexType的getter方法的语法不正确。他们错过了机会。这可能导致它们编译为字段而不是方法。如果这不仅仅是打字错误,请尝试修复方法并删除注释。

添加

@XmlElement(required=true)
对缺失字段的注释解决了问题

向缺失字段添加@XmlElement(required=true)注释解决了问题