无法解组我的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注释,但似乎并不适用于我的情况。