2011-03-07 5 views
1

나는 내가 부르고있는 웹 서비스 응답에서 만든 xsd 클래스를 생성했다. 웹 서비스 호출에서 InputStream을 읽는 JUnit 테스트 클래스를 실행할 때 예외가 발생합니다. 나는 예외가 무엇을 의미하는지에 관해서는 갇혔어요, 그래서 확인하는 것들에 대한 몇 가지 아이디어를 찾고 있어요 : 내 생성 된 클래스에서 나는 클래스가JAXB Unmarshal Exception

javax.xml.bind.UnmarshalException: Unexpected element {http://bar.foo.com/bbs}:rule 

을에서 :

com.foo.bar.bbs.Rule 

합니까 Exception은 적절한 패키지에 Rule 클래스가 없다는 것을 의미합니까?

답변

0

정확한 유형의 개체를 언 마샬링해야합니다.

@XmlRootElement 
public class Rule { 
} 

@XmlElementDecl

: 규칙 클래스가 @XmlRootElement로 주석되는

@XmlRootElement

확인 : 다음

3

확인하는 몇 가지 있습니다 또는 해당하는 @XmlElementDecl이 th 전자 ObjectFactory를 클래스 :

@XmlElementDecl(namespace = "http://bar.foo.com/bbs", name = "root") 
public JAXBElement<Root> createCustomer(Root value) { 
    return new JAXBElement<BigInteger>(_ROOT_QNAME, Root.class, null, value); 
} 

@XmlSchema는

또한 네임 스페이스 정보가 올바르게 지정되어 있는지 확인해야합니다. 패키지 정보 클래스는 아마도 다음과 같이 생성되었을 것입니다. 올바른 네임 스페이스가 지정되었는지 확인하십시오. 자세한 내용은

@XmlRootElement(namespace="http://bar.foo.com/bbs") 
public class Rule { 
} 

참조 :

@XmlSchema( 
    namespace = "http://bar.foo.com/bbs", 
    elementFormDefault = XmlNsForm.QUALIFIED) 
package com.foo.bar.bbs; 

import javax.xml.bind.annotation.XmlNsForm; 
import javax.xml.bind.annotation.XmlSchema; 

은 또한 당신은 @XmlRootElement 주석의 네임 스페이스를 포함 할 수

또한
+0

블로그에 하나! :) –