无法解组我的xml
问题描述:
我正在向webservice发送请求,并且正在以xml格式接收来自web服务的正确响应,正确的值填充在响应元素tage中。现在我尝试解组,但响应对象正在填充null,而不是我在XML响应中看到的值。无法解组我的xml
任何明显的事情来检查? 这是我的代码:
InputSource outputSource = getWebServiceHelper().send(source,messageIdentifier);
JAXBElement<Envelope> responseEnv = (JAXBElement<Envelope>) getWebServiceHelper().unmarshal(new SAXSource(outputSource));
JAXBElement<ResponseObjectType> result = (JAXBElement<ResponseObjectType>)responseEnv.getValue().getBody().getAny().get(0);
的那一刻第二行执行,响应属性成为空。尽管在xml标签之间是正确的!
谢谢了。 Chaitanya
答
我通过激烈的反复试验找到了解决方案。这是我如何完成的。
运行xjc
创建4个类,即ObjectFactory.java
,package-info.java
,表示web服务请求的类和表示web服务响应的类。
我忽视了包括package-info.java
与其他3类。这是jaxb无法解开repsone的原因。
如果我不包括ObjectFactory.java
,我在服务器启动时发现异常,在弹出的上下文文件中定义了org.springframework.oxm.jaxb.Jaxb2Marshaller
bean,所以我知道我必须包含它。但不包括package-info.java
失败默默地造成挫折!
我已经在Stackoverflow和其他地方看过,对于unmarshal()方法来接受只有一个参数javax.xml.transform.Source
和unmarshal我需要使用@XmlRootElement
注释,但似乎并不适用于我的情况。