简单的问题,但我整天都在喋喋不休。 JAX-WS Web服务,由第三方WSDL生成。 内容是这样的:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://foo.it/bar",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package it.foo.bar.webservice.generated;
webservice工作,输出产生如下:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<response xmlns="it.foo.bar.bean">
<result>
问题是使用Web服务的客户端需要这样的响应:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns:response xmlns:ns="it.foo.bar.bean">
<ns:result>
如果我手动添加 XmlNs 注释的包信息:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://foo.it/bar", xmlns = {
@javax.xml.bind.annotation.XmlNs(namespaceURI = "it.foo.bar.bean", prefix = "sms")
}, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package it.foo.bar.webservice.generated;
响应按预期生成。 有没有办法只使用wsimport或一些jaxb绑定或其他什么来实现相同的结果? 我很确定每次覆盖package-info.java都有更好的方法。