这是一个简单的web service程序,server端返回一个List(内含两个字符串),client端将字符串输出
我参考的是一个能返回字符串的程序,现在改成List,结果运行时在client端出了问题。
请高手指点一下,谢谢!环境:Tomcat5.5+AXIS1.4
//server端程序,编译正常!
import java.util.List;
import java.util.ArrayList;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class ListService
{
public List getList()
{
List<String> list = new ArrayList<String>();
list.add("xxxx");
list.add("yyyy");
return list;
}
}
//client端
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import java.util.ArrayList;
import java.util.List;
public class ListClient
{
public static void main(String [] args) throws Exception { String endpoint = "http://localhost:" +"8080"+ "/axis/services/ListService";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("getList" );
List list = (List) call.invoke( new Object[] {} ); for(int i=0;i<list.size();i++)
System.out.println(list.get(i));
}
}
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at test.backup.ListClient.main(ListClient.java:17)
我参考的是一个能返回字符串的程序,现在改成List,结果运行时在client端出了问题。
请高手指点一下,谢谢!环境:Tomcat5.5+AXIS1.4
//server端程序,编译正常!
import java.util.List;
import java.util.ArrayList;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class ListService
{
public List getList()
{
List<String> list = new ArrayList<String>();
list.add("xxxx");
list.add("yyyy");
return list;
}
}
//client端
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import java.util.ArrayList;
import java.util.List;
public class ListClient
{
public static void main(String [] args) throws Exception { String endpoint = "http://localhost:" +"8080"+ "/axis/services/ListService";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName("getList" );
List list = (List) call.invoke( new Object[] {} ); for(int i=0;i<list.size();i++)
System.out.println(list.get(i));
}
}
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at test.backup.ListClient.main(ListClient.java:17)
import java.util.*;
public class TestList{
public ArrayList Lists()
{
ArrayList list=new ArrayList();
list.add(0,"0");
list.add(1,"这是正确的信息");
list.add(2,new Date());
return list;
}
}
<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
<%@ page import=" org.apache.axis.client.Call"%>
<%@ page import=" org.apache.axis.client.Service"%>
<%@ page import=" java.util.*"%>
<%@ page import=" javax.xml.namespace.QName"%>
<html>
<%
try {
String endpoint = "http://localhost:8080/axis/TestList.jws";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("Lists");
call.setReturnType(new QName("ArrayList"),ArrayList.class);
ArrayList list = (ArrayList) call.invoke(new Object[]{});
for(int i=0;i<list.size();i++)
{
out.print(list.get(i)+"<br>");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
%>
</html>
import java.util.*;
public class TestList{
public ArrayList Lists()
{
ArrayList list=new ArrayList();
list.add(0,"0");
list.add(1,"这是正确的信息");
list.add(2,new Date());
return list;
}
}
<%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
<%@ page import=" org.apache.axis.client.Call"%>
<%@ page import=" org.apache.axis.client.Service"%>
<%@ page import=" java.util.*"%>
<%@ page import=" javax.xml.namespace.QName"%>
<html>
<%
try {
String endpoint = "http://localhost:8080/axis/TestList.jws";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("Lists");
call.setReturnType(new QName("ArrayList"),ArrayList.class);
ArrayList list = (ArrayList) call.invoke(new Object[]{});
for(int i=0;i<list.size();i++)
{
out.print(list.get(i)+"<br>");
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
%>
</html>