如何更改package-info.java内容

时间:2012-10-16 15:39:57

标签: java jax-ws xml-namespaces

简单的问题,但我整天都在喋喋不休。 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都有更好的方法。

1 个答案:

答案 0 :(得分:2)

这是一个众所周知的问题:http://java.net/jira/browse/JAXB-818

随意投票,评论和/或提供修复。