java调用c#的webservice接口,传递List参数问题
用java调用c编写的webservice接口,需要传递List参数,在服务器端总是接收不到传入的参数,从服务器端打出来的list.count总是0,麻烦高手帮忙看下问题出在什么地方吧
客户端代码:
String endpoint= "http://ip:port/Service.asmx";
Service service = new Service();
List<User> list1 = new ArrayList<User>();
User c1 = new User();
c1.userid = "user1";
c1.username = "张三";
list1.add(c1);
User c2 = new User();
c2.userid ="user2";
c2.username ="李四";
list1.add(c2);
Call call = (Call) service.createCall();
QName qn = new QName("http://tempuri.org/","User");
call.registerTypeMapping(User.class, qn,
new org.apache.axis.encoding.ser.BeanSerializerFactory(User.class,qn),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(User.class,qn));
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://tempuri.org/","I_List"));
call.setSOAPActionURI("http://tempuri.org/I_List");
call.addParameter(new QName("http://tempuri.org/", "list1"), org.apache.axis.encoding.XMLType.XSD_ANYTYPE, javax.xml.rpc.ParameterMode.IN);
call.invoke(new Object[]{list1});
服务器端代码:
[WebMethod]
public void I_List(List<User> list1)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter("C:\\log.txt", true))
{
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "[" + list1.ToString() + "]");
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "[" + list1.Count + "]");
}
}
[Serializable]
public class User
{
public string userid;
public string username;
}
服务器端打出的日志:
2012-09-05 17:26:57 [System.Collections.Generic.List`1[Service+User]]
2012-09-05 17:26:57 [0]