And*_*dez 10 java service arraylist
我在从Web服务(Java)返回ArrayList时遇到问题.
我编写了一个测试Web服务和客户端来使用它.所有似乎都工作正常 - 即客户端正在调用服务器,服务器接收操作请求.
但是,我编写了一个简单的方法,我希望它返回一个ArrayList.
我的接口定义如下:
@WebService
@SOAPBinding(style = Style.RPC)
public interface ISQLServerConnectionWS {
@WebMethod
ArrayList getSimpleArrayList();
}
Run Code Online (Sandbox Code Playgroud)
我有我的服务器端实现来返回ArrayList:
@WebService(endpointInterface="WebServices.ISQLServerConnectionWS")
public class SQLConnectionWSServer
implements ISQLServerConnectionWS {
@Override
public ArrayList getSimpleArrayList() {
ArrayList al = new ArrayList();
al.add( "This" );
al.add( "is" );
al.add( "a" );
al.add( "test" );
return al;
}
}
Run Code Online (Sandbox Code Playgroud)
最后我的客户打电话给它:
ArrayList results = server.getSimpleArrayList();
Run Code Online (Sandbox Code Playgroud)
服务器正好填充数组列表.但是,回到客户端,ArrayList为空.它的大小为0.
如果我在我的URL(http://127.0.0.1:9876/myservice-sql?wsdl)上检查executeSelectSQL 的WSDL ,它看起来像:
<message name="executeSelectSQLResponse">
<part name="return" type="tns:arrayList"/>
</message>
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗
编辑:
但是,如果我在界面中定义了一个web方法:
@WebMethod
String getAString();
Run Code Online (Sandbox Code Playgroud)
和服务器实现:
@Override
public String getAString() {
return "hello there";
}
Run Code Online (Sandbox Code Playgroud)
然后这很好 - "hello there"
在客户端收到.
dog*_*ane 12
使用数组而不是ArrayList,因为JAXB无法将集合作为顶级对象处理,仅作为bean的属性.或者,创建一个bean并将ArrayList放入其中.
请参阅bug:JAXB-223:JAXB不支持将集合类作为顶级对象
归档时间: |
|
查看次数: |
30452 次 |
最近记录: |