私はSpring Web 3.1.1とSpring Oxm 3.1.1を使用しています。
jaxb2marshaller が xml ソースをオブジェクトへ非整列化しようとすると、例外が発生しました。
2012-12-03 13:38:41,152[k.c.s.s.c.r.AuthenticationController:154][ERROR] JAXB unmarshalling exception; nested exception is javax.xml.bind.UnmarshalException: Namespace URIs and local names to the unmarshaller needs to be interned
org.springframework.oxm.UnmarshallingFailureException: JAXB unmarshalling exception; nested exception is javax.xml.bind.UnmarshalException: Namespace URIs and local names to the unmarshaller needs to be interned
at org.springframework.oxm.jaxb.Jaxb2Marshaller.convertJaxbException(Jaxb2Marshaller.java:761) ~[org.springframework.oxm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:682) ~[org.springframework.oxm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:665) ~[org.springframework.oxm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
このように、sevlet設定でjaxb2 marshallを構成しました。
<oxm:jaxb2-marshaller id="marshaller">
<oxm:class-to-be-bound name="kr.co.skcomms.simon.bean.rest.Authentication" />
</oxm:jaxb2-marshaller>
コントローラーで、このようにアンマーシャリングを試みます。
@Autowired
public Jaxb2Marshaller marshaller;
....
Source source = new StreamSource(new StringReader(body));
Authentication authentication = (Authentication) marshaller.unmarshal(source);
および My Authentication Object 。
@XmlRootElement
public class Authentication {
private String simon_auth;
private String client_ip;
private String request_url;
public Authentication(){
}
@XmlElement
public String getSimon_auth() {
return simon_auth;
}
public void setSimon_auth(String simon_auth) {
this.simon_auth = simon_auth;
}
@XmlElement
public String getClient_ip() {
return client_ip;
}
public void setClient_ip(String client_ip) {
this.client_ip = client_ip;
}
@XmlElement
public String getRequest_url() {
return request_url;
}
public void setRequest_url(String request_url) {
this.request_url = request_url;
}
}
この記事を参照しました.. http://www.ibm.com/developerworks/webservices/library/wa-spring3webserv/index.html
私のソースは記事のサンプル コードとまったく同じだと思います。
しかし、うまくいきません。
私はあなたの助けに感謝します。