Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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 通过JAX-WS生成的SOAP方法参数中的数组?_Java_Soap_Jaxb_Jax Ws - Fatal编程技术网

Java 通过JAX-WS生成的SOAP方法参数中的数组?

Java 通过JAX-WS生成的SOAP方法参数中的数组?,java,soap,jaxb,jax-ws,Java,Soap,Jaxb,Jax Ws,我正在用JAX-WS注释用Java构建SOAP服务。除此之外,我想知道如何在我的方法中注释数组参数。当我从带注释的接口生成wsdl,然后再次从该wsdl生成java类时(我这样做是为了测试,在这两种情况下都使用ApacheCXF),它将生成类来保存数组参数 例如: @WebService(name="sillyService", ... ) @SOAPBinding(style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERA

我正在用JAX-WS注释用Java构建SOAP服务。除此之外,我想知道如何在我的方法中注释数组参数。当我从带注释的接口生成wsdl,然后再次从该wsdl生成java类时(我这样做是为了测试,在这两种情况下都使用ApacheCXF),它将生成类来保存数组参数

例如:

 @WebService(name="sillyService",
    ...
)
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL, parameterStyle=SOAPBinding.ParameterStyle.BARE)
public interface SillyService {
    public String doSillyThings(
         @WebParameter(name = "stupid") StupidData[] stupid;
    );
}
其中StupidData将是另一个这样注释的类

@XmlAccessorType(XmlAccessType.FIELD)

@XmlRootElement(name = "StupidData")
public class StupidData {
@XmlElement(name = "datapoint")
String datapoint;
}
然后,在生成的类中,参数变为一个新类StupidDataArray,该类的一个字段是StupidData的数组,而不是数组


有没有办法让它直接接受数组作为参数?感谢…

在我的例子中,apache CXF从WSDL文件生成的代码包括
ArrayOfXXX
类,使用一个
getXXX()
方法返回一个
列表。
此方法的自动生成javadoc声明:

此访问器方法返回对活动列表的引用, 不是快照。因此,您对 返回的列表将出现在JAXB对象中。 这就是为什么guid属性没有set方法的原因。 例如,要添加新项目,请执行以下操作: getXXX().add(newItem)


为了回答您的问题,您不能将本机数组传递给该方法,但可以在将元素添加到其基础列表后传递该数组类。为此,您可以使用
getXXX()从数组包装器中检索封装的
列表
并向其中添加元素。

尝试使用列表在我的情况下,我希望我的wsdl包含ArrayOfxx。但无法实现它。这是我的问题。请告诉我您使用哪个版本的CXF创建ArratOfLOB。或者需要任何JaxB注释。@AvinashJethy抱歉,我唯一能提供的是版本:我使用的
cxf-rt前端jaxws
cxf-rt从maven传输http
,两个版本都是3.2.0。代码不是我的,所以我不知道注释。