使用WebParam不允许使用XmlElement注释

MW.*_*MW. 16 java xml web-services jax-ws

我在webservice中有一个方法,具有以下签名:

@WebResult(name="purchaseId") public int CreatePurchase(
            @XmlElement(required=true)
            @WebParam(name = "item") String item {
  ...
}
Run Code Online (Sandbox Code Playgroud)

在我看来(根据我发现的信息),这应该工作.不幸的是,我在编译时收到以下错误消息:

The annotation @XmlElement is disallowed for this location
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

Pac*_*ace 33

默认情况下,JAX-B包含在JDK中.特定JDK附带的版本几乎不像JAX-B本身那样频繁更新.JDK(1.6)附带的当前版本是JAX-B 2.1.10(此处记录).

@XmlElement仅允许在以JAX-B 2.2开头的方法参数上

当Java加载库时,它会加载JDK附带的库,然后再加载类路径上的库.向Java 7上传可以解决您的问题.如果您无法升级到Java 7,还有一个告诉Java您想要使用更新库的过程.这些被称为"认可"库,您必须将库放在同一个库中文件夹结构为JDK本身.这里描述该过程.