2013-10-01 1 views
2

나는 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이 제대로 변환되지 않았습니다. MyComplexerType에 대한

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

: MySimplerType에 대한

<xs:complexType abstract="true" name="myBaseType"> 
    <xs:sequence> 
    <xs:element name="intField" type="xs:int"/> 
    </xs:sequence> 
</xs:complexType> 

: 내가 누구인지

<xs:complexType name="myComplexerType"> 
    <xs:complexContent> 
    <xs:extension base="tns:myBaseType"> 
     <xs:sequence/> 
    </xs:extension> 
</xs:complexContent> 

MyBaseType를 들어

: 내가 도착하면 다음과 약 잘못된거야? List와 String [] 필드를 WSDL로 가져 오는 방법은 무엇입니까? JBoss 7.1.1을 사용하고 있습니다. 최종 런타임

+0

를 해결 – YM67549

답변

0

이 누락 된 필드 주석은 문제를 해결 (= TRUE 필수) @XmlElement 추가 문제

0

이것은 단지 복사 붙여 넣기 오류이지만 ComplexType의 getter 메소드에는 잘못된 구문이 있다고 가정합니다. 그들은()을 놓치고 있습니다. 이로 인해 메소드가 아닌 필드로 컴파일 될 수있었습니다. 단순히 오타가 아니라 메서드를 수정하고 주석을 제거하는 경우. 누락 된 필드

@XmlElement(required=true) 

주석을 추가

+0

예, 사실, 그것은 단지입니다 복사 - 붙여 넣기 오류 – YM67549

관련 문제