[英]spring-ws jdom wrong response
我在与JDOM一起使用的Spring-WS上苦苦挣扎。
码:
@Endpoint
@Namespace(uri = "http://example.pl/gb/schemas", prefix = "gb")
public class PdfCheckStatusEndPoint {
private static final String NAMESPACE_URI = "http://example.pl/gb/schemas";
...
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "PdfStatusRequest")
@Namespace(uri = NAMESPACE_URI, prefix = "sch")
@ResponsePayload
public Element getPdfStatus(@XPathParam("//sch:policyNr") String policyNr) {
org.jdom2.Namespace javaxml2Namespace = org.jdom2.Namespace.getNamespace("http://example.pl/gb/schemas");
Element responseElement = new Element("PersonResponse", javaxml2Namespace);
Element childElement1 = new Element("FullName");
childElement1.setText("john doe");
Element childElement2 = new Element("SSN");
childElement2.setText("12345");
responseElement.addContent(childElement1);
responseElement.addContent(childElement2);
return responseElement;
}
}
端点可以正常工作,但是响应不是预期的:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<PersonResponse xmlns="http://example.pl/gb/schemas"/>
</env:Body>
</env:Envelope>
如您所见,不返回任何子元素,仅返回根元素。 有任何想法吗?
似乎要添加此依赖项:
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.3.3</version>
</dependency>
连同bean定义:
<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
<property name="messageFactory">
<bean class="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"/>
</property>
</bean>
做工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.