编程语言
首页 > 编程语言> > java-Apache Axis Web服务中是否支持ArrayList?

java-Apache Axis Web服务中是否支持ArrayList?

作者:互联网

我已经编写了一个简单的HelloWorld Web服务.它以ArrayList作为参数.代码就像`import java.util.ArrayList;这样简单.

public class Service {

public void service(ArrayList<Object> list) {
    System.out.println("Hello World..");
}
}`

我正在使用Eclipse Helios SR1,并尝试生成Web服务.
选择Web服务实现以选择“服务”,选择服务器运行时作为Tomcat 6.0,选择Web服务运行时作为Apache Axis.单击下一步给出警告为
服务类“服务”不符合JAX-RPC 1.1规范的一项或多项要求,并且可能无法正确部署或运行​​.
  服务类“服务”上的方法“服务”使用数据类型“ java.util.ArrayList”,JAX-RPC规范不支持该数据类型.该类型的实例可能无法正确序列化或反序列化.可能会导致数据丢失或Web服务完全失败.

单击确定继续,它会显示更多警告:
输入类型java.lang.Class是不可实例化的类型,将从示例JSP中省略.继续示例JSP生成吗?

输入类型javax.xml.namespace.QName是不可实例化的类型,将从示例JSP中省略.继续示例JSP生成吗?

IWAB0189W示例JSP客户机省略了一些方法,因为它们包含不受支持的类型.

有什么原因可能会发生这种情况?
我在Sun网站上看到了:Sun RPC Doc

根据它应该支持ArrayList.

有什么帮助吗?

解决方法:

从规范中引用.

Arrays

JAX-RPC also supports arrays with members of supported JAX-RPC types.
Examples of supported arrays are int[] and String[]. Multidimensional
arrays, such as BigDecimal[][], are also supported.

对方法签名进行简单的修改以接受与ArrayList相对的数组应该可以解决该问题.

标签:arraylist,apache,tomcat6,web-services,java
来源: https://codeday.me/bug/20191208/2089405.html