Java WebParam不允许使用XmlElement注释
我在Web服务中有一个方法,具有以下签名:Java WebParam不允许使用XmlElement注释,java,xml,web-services,jax-ws,Java,Xml,Web Services,Jax Ws,我在Web服务中有一个方法,具有以下签名: @WebResult(name="purchaseId") public int CreatePurchase( @XmlElement(required=true) @WebParam(name = "item") String item { ... } 在我看来(根据我发现的信息),这应该是可行的。不幸的是,我在编译时收到以下错误消息: The annotation @XmlElement is
@WebResult(name="purchaseId") public int CreatePurchase(
@XmlElement(required=true)
@WebParam(name = "item") String item {
...
}
在我看来(根据我发现的信息),这应该是可行的。不幸的是,我在编译时收到以下错误消息:
The annotation @XmlElement is disallowed for this location
有人知道如何解决这个问题吗?默认情况下,JAX-B包含在JDK中。特定JDK附带的版本更新频率不如JAX-B本身。JDK(1.6)的当前版本是JAX-B2.1.10(有文档记录) @XmlElement仅允许用于从JAX-B2.2开始的方法参数
当Java加载库时,它会在加载类路径上的库之前加载JDK附带的库。升级到Java 7可以解决您的问题。如果您无法升级到Java7,还可以通过一个过程告诉Java您希望使用更为更新的库。这些被称为“认可”库,您必须将库放在与JDK本身相同的文件夹结构中。描述了该过程 当您收到以下错误消息:“此位置不允许使用注释@xmlement”时,很可能您使用了错误的导入语句 将其更改为:
import javax.xml.bind.annotation.XmlElement;
Eclipse建议将另一个包作为第一个选项,这是一个非常常见的错误。您使用的是任何特定的JAXB实现,还是Java EE或web容器提供的?参考实现确实不喜欢非JAXB注释妨碍它。我不是100%确定我理解这个问题(我对Java EE相当陌生),但Apache CFX 2.3.7包含在项目构建路径中,其中包含一些JAXB JAR。谢谢你,我已经看完了。不幸的是,我在那些线程中找不到任何帮助我解决问题的东西。哇,thnx很多,修复了这个问题,并提供了一条很好的信息。我使用Java 7作为默认JRE,但同样的错误也发生在我身上。你能帮我解决这个问题吗。