Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebParam不允许使用XmlElement注释_Java_Xml_Web Services_Jax Ws - Fatal编程技术网

Java WebParam不允许使用XmlElement注释

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

我在Web服务中有一个方法,具有以下签名:

@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,但同样的错误也发生在我身上。你能帮我解决这个问题吗。