spring - WSDL 生成的 Jaxb 仅将命名空间前缀添加到根元素
问题描述
我正在使用 jaxb2 插件创建一个肥皂网络服务。因此,我从 wsdl 文件生成了 jaxb 类。我在这里输入了生成代码的示例。
//ObjectFactory.java
@XmlElementDecl(namespace = "http://xxxxx/", name = "InquiryResponse")
public JAXBElement<InquiryResponse> createInquiryResponse(InquiryResponse value) {
return new JAXBElement<InquiryResponse>(_InquiryResponse_QNAME, InquiryResponse.class, null, value);
}
//package-info.java
@javax.xml.bind.annotation.XmlSchema(namespace = "http://XXXX/",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED,
xmlns = {
@XmlNs(namespaceURI = "http://XXXX/", prefix = "ws")
})
package X.X.X;
import javax.xml.bind.annotation.XmlNs;
回应是
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<InquiryResponse xmlns:ws="http://XXXX/">
<InquiryResponse>
<refId>0004440</refId>
<status>UP</status>
</InquiryResponse>
</InquiryResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
但我想要的是
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ws:InquiryResponse xmlns:ws="http://XXXX/">
<InquiryResponse>
<refId>0004440</refId>
<status>UP</status>
</InquiryResponse>
</InquiryResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I am using a spring boot. Please help me. Thanks.
解决方案
我相信发生这种情况是因为elementFormDefault
您UNQUALIFIED
在package-info.java
. 尝试将其切换到QUALIFIED
以查看是否有帮助。
推荐阅读
- excel - 使用查找功能时出现错误 91,使用 ActiveCell?
- c# - 如何将 INotifyPropertyChanged 添加到包含泛型类型的类?
- jquery - jQuery:检查元素样式是否已被删除
- bash - shebang被认为是评论的特例吗?
- oracle - Update PL/SQL block inside procedure, which I'm using in web project, is taking too long
- scala - Spark 2.X throwing io.netty.buffer.PooledByteBufAllocator.metric()Lio/netty/buffer/PooledByteBufAllocatorMetric
- javascript - Fire onKeyPress Event passing parameters using JQuery does not work
- python-3.x - Averaging data while merging
- git - Data is gone after git branch
- python-3.x - How to subscribe to events in sawtooth hyperledger?