我定义的UserInfoWrapper 对象:
package com.test;
import java.io.Serializable;public class UserInfoWrapper implements Serializable {
//相关消息 //用户信息列表 private int recordNum; private String message; private UserInfo[] userInfo;
class UserInfo{
private String login ;
private String orgAddr;
private String orgId;
private String orgName;
private String userId;
private String username;
public String getlogin() {
return login;
}
public void setlogin(String login) {
this.login = login;
}
public String getorgAddr() {
return orgAddr;
}
public void setorgAddr(String orgAddr) {
this.orgAddr = orgAddr;
}
public String getorgId() {
return orgId;
}
public void setorgId(String orgId) {
this.orgId = orgId;
}
public String getorgName() {
return orgName;
}public void setorgName(String orgName) {
this.orgName = orgName;
}
public String getuserId() {
return userId;
}public void setuserId(String userId) {
this.userId = userId;
}
public String getusername() {
return username;
}public void setusername(String username) {
this.username = username;
}}
public int getRecordNum() {
return recordNum;
} public void setRecordNum(int recordNum) {
this.recordNum = recordNum;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public UserInfo[] getUserInfo() {
return userInfo;
} public void setUserInfo(UserInfo[] userInfo) {
this.userInfo = userInfo;
} }
调用所使用的测试代码:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.rmi.RemoteException;
import java.io.Serializable;
import org.apache.axis.encoding.ser.*;
import javax.xml.namespace.QName;
import com.test.*;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
import javax.xml.rpc.ParameterMode;
import java.util.*;public class test{
public static void main(String args[]) { try{
String endpoint = "http://168.134.65.36/services/UserInfoService?wsdl";
Service service = new Service();
QName qn = new QName("urn:UserInfoService","UserInfoService");
Call call = null;
call = (Call) service.createCall();
call.registerTypeMapping(UserInfoWrapper.class, qn,new BeanSerializerFactory(UserInfoWrapper.class, qn),new BeanDeserializerFactory(UserInfoWrapper.class, qn));
call.setOperationName( "pageSearch");
call.setTargetEndpointAddress(new java.net.URL(endpoint));
/*
call.addParameter( "login", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "userName", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "orgName", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "roleNo", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "pageIndex", XMLType.XSD_INT, ParameterMode.IN);
call.addParameter( "pageSize", XMLType.XSD_INT, ParameterMode.IN);
call.setReturnClass(UserInfoWrapper.class);*/
UserInfoWrapper ret=new UserInfoWrapper();
ret= (UserInfoWrapper)call.invoke(new Object[]{"","","","",2,2});
System.out.print("num="+ret.getRecordNum());
}catch(Exception ex){
ex.printStackTrace();
}
}
}
运行之后出现错误:
org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at test.main(test.java:40)
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at test.main(test.java:40) {http://xml.apache.org/axis/}hostname:zrorg.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.client.Call.invoke(Call.java:2470)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at test.main(test.java:40)
Caused by: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
... 3 more
请问到底是什么原因?
package com.test;
import java.io.Serializable;public class UserInfoWrapper implements Serializable {
//相关消息 //用户信息列表 private int recordNum; private String message; private UserInfo[] userInfo;
class UserInfo{
private String login ;
private String orgAddr;
private String orgId;
private String orgName;
private String userId;
private String username;
public String getlogin() {
return login;
}
public void setlogin(String login) {
this.login = login;
}
public String getorgAddr() {
return orgAddr;
}
public void setorgAddr(String orgAddr) {
this.orgAddr = orgAddr;
}
public String getorgId() {
return orgId;
}
public void setorgId(String orgId) {
this.orgId = orgId;
}
public String getorgName() {
return orgName;
}public void setorgName(String orgName) {
this.orgName = orgName;
}
public String getuserId() {
return userId;
}public void setuserId(String userId) {
this.userId = userId;
}
public String getusername() {
return username;
}public void setusername(String username) {
this.username = username;
}}
public int getRecordNum() {
return recordNum;
} public void setRecordNum(int recordNum) {
this.recordNum = recordNum;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public UserInfo[] getUserInfo() {
return userInfo;
} public void setUserInfo(UserInfo[] userInfo) {
this.userInfo = userInfo;
} }
调用所使用的测试代码:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.rmi.RemoteException;
import java.io.Serializable;
import org.apache.axis.encoding.ser.*;
import javax.xml.namespace.QName;
import com.test.*;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
import javax.xml.rpc.ParameterMode;
import java.util.*;public class test{
public static void main(String args[]) { try{
String endpoint = "http://168.134.65.36/services/UserInfoService?wsdl";
Service service = new Service();
QName qn = new QName("urn:UserInfoService","UserInfoService");
Call call = null;
call = (Call) service.createCall();
call.registerTypeMapping(UserInfoWrapper.class, qn,new BeanSerializerFactory(UserInfoWrapper.class, qn),new BeanDeserializerFactory(UserInfoWrapper.class, qn));
call.setOperationName( "pageSearch");
call.setTargetEndpointAddress(new java.net.URL(endpoint));
/*
call.addParameter( "login", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "userName", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "orgName", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "roleNo", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter( "pageIndex", XMLType.XSD_INT, ParameterMode.IN);
call.addParameter( "pageSize", XMLType.XSD_INT, ParameterMode.IN);
call.setReturnClass(UserInfoWrapper.class);*/
UserInfoWrapper ret=new UserInfoWrapper();
ret= (UserInfoWrapper)call.invoke(new Object[]{"","","","",2,2});
System.out.print("num="+ret.getRecordNum());
}catch(Exception ex){
ex.printStackTrace();
}
}
}
运行之后出现错误:
org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at test.main(test.java:40)
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at test.main(test.java:40) {http://xml.apache.org/axis/}hostname:zrorg.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.client.Call.invoke(Call.java:2470)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at test.main(test.java:40)
Caused by: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.
at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
... 3 more
请问到底是什么原因?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货