调用WebServices出现,SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize

luofengjava 2008-03-05 11:58:31
调用客户端代码public AuthResponse authRequest(AuthRequest authReq)
{
endpoint = authReq.getServicePath();
AuthResponse authRes = new AuthResponse();
try
{
Call call = (Call)cmsService.createCall();
QName qnReq = new QName("urn:BeanService", "AuthRequest");
Class clsReq = com.huawei.mdn.um.sms.unify.AuthRequest.class;
call.registerTypeMapping(clsReq, qnReq, new BeanSerializerFactory(clsReq, qnReq), new BeanDeserializerFactory(clsReq, qnReq));
QName qnRes = new QName("urn:BeanService", "AuthResponse");
Class clsRes = com.huawei.mdn.um.sms.unify.AuthResponse.class;
call.registerTypeMapping(clsRes, qnRes, new BeanSerializerFactory(clsRes, qnRes), new BeanDeserializerFactory(clsRes, qnRes));
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName("authRequest");
authRes = (AuthResponse)call.invoke(new Object[] {
authReq
});
}
catch(ServiceException e1)
{
e1.printStackTrace();
System.err.println(e1.toString());
}
catch(RemoteException e)
{
e.printStackTrace();
}
catch(MalformedURLException e)
{
e.printStackTrace();
}
return authRes;
}

出错信息
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 com.thirdparty.bss.NotifyClient.authRequest(NotifyClient.java:45)
at test.com.thirdparty.bss.NotifyClient_Test.test(NotifyClient_Test.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

{http://xml.apache.org/axis/}hostname:luofengboy

org.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 com.thirdparty.bss.NotifyClient.authRequest(NotifyClient.java:45)
at test.com.thirdparty.bss.NotifyClient_Test.test(NotifyClient_Test.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
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)
... 22 more

...全文
7570 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
hkNaruto 2012-05-23
  • 打赏
  • 举报
回复
java webService注意事项
1.所有类名首字母强制大写
2.所有方法名首字母强制小写!

字母大小写错误会导致调用webservice时报异常SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize

浩澜藏 2011-09-29
  • 打赏
  • 举报
回复
俺也今天也遇到了,怎么就没人解决的呀!
jennyzhangyi 2011-09-07
  • 打赏
  • 举报
回复
http://blog.csdn.net/wjwwgh/article/details/4349744
2399 2011-09-06
  • 打赏
  • 举报
回复
同求,363851356@qq.com
weizhongjun8 2011-05-30
  • 打赏
  • 举报
回复
好像是调用webservice返回的对象与要强转的对象(AuthResponse)不一致导致的
men2011it 2011-05-17
  • 打赏
  • 举报
回复
在下也求解,希望知道解决方案的教导下呀,我邮箱men2011it@163.com
men2011it 2011-05-17
  • 打赏
  • 举报
回复
在下也求解,希望知道解决方案的教导下呀,我邮箱men2011@163.com
phochahasau 2011-04-13
  • 打赏
  • 举报
回复
哥们也在等啊!!
yyys8517750 2011-03-29
  • 打赏
  • 举报
回复
同样的问题,急,谁知道 发到jacky_yi@126.com 谢谢...
ahsj8905 2010-06-12
  • 打赏
  • 举报
回复
楼主大哥,您的问题解决了吗,小弟又遇到了此问题,谁解决了,请赐教。。。。。。。。
ahsj8905@163.com
lpclpc333 2009-08-17
  • 打赏
  • 举报
回复
楼主大哥 您的问题解决了吗?小弟被此问题困住了很久 楼主大哥若已解决 请赐教..
lpclpc333@126.com
缘叶 2009-04-30
  • 打赏
  • 举报
回复
各位,问题解决了吗,我今天也遇到同样的问题了,如果知道解决方法的,请帮下忙,邮箱:yuanyeekong@sina.com
谢谢
melling 2009-04-30
  • 打赏
  • 举报
回复
楼主解决了吗?
我也碰到同样的问题
能把解决方法告诉我吗。。。
fvive@sina.com
wenm2008 2009-02-10
  • 打赏
  • 举报
回复
我也遇到了这个问题!!
baicai715 2008-08-21
  • 打赏
  • 举报
回复
楼主解决了吗?
我也碰到同样的问题
能把解决方法告诉我吗。。。
baicai715@qq.com
luofengjava 2008-03-05
  • 打赏
  • 举报
回复
返回对象类

package com.huawei.mdn.um.sms.unify;

public class AuthResponse
{
private String transID; private int resultCode; //操作结果,0表示成功,非0表示失败。
private int accountAction;
private String description; //返回信息
private String signData; //签名信息。其中用于数字签名算法的“接口通讯请求数据”为:

public AuthResponse()
{
accountAction = -1;
description = "";
resultCode = -1;
signData = "";
transID = "";
}
public void setTransID(String transID)
{
this.transID = transID;
}
public String getTransID()
{
return this.transID;
}

public void setResultCode(int resultCode)
{
this.resultCode = resultCode;
}
public int getResultCode()
{
return this.resultCode;
}

public void setAccountAction(int accountAction)
{
this.accountAction = accountAction;
}
public int getAccountAction()
{
return this.accountAction;
}

public void setDescription(String description)
{
this.description = description;
}
public String getDescription()
{
return this.description;
}

public void setSignData(String signData)
{
this.signData = signData;
}
public String getSignData()
{
return this.signData;
}

public String toString()
{
StringBuffer tmpSb = new StringBuffer();
tmpSb.append("\n>>>>AuthResponse");
tmpSb.append("\nTransID = ").append(this.transID);
tmpSb.append("\nResultCode = ").append(this.resultCode);
tmpSb.append("\nAccountAction = ").append(this.accountAction);
tmpSb.append("\nDescription = ").append(this.description);
tmpSb.append("\nSignData = ").append(this.signData);
tmpSb.append("\nAuthResponse<<<<");
return tmpSb.toString();
}
}
luofengjava 2008-03-05
  • 打赏
  • 举报
回复
server-config.wsdd
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.Directory" value="D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\WebServices\WEB-INF\attachments"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>

<service name="UnfiyAPIImpl" provider="java:RPC" style="wrapped" use="literal">
<parameter name="wsdlTargetNamespace" value="http://unify.sms.um.mdn.huawei.com"/>
<parameter name="wsdlServiceElement" value="UnfiyAPIImplService"/>
<parameter name="schemaQualified" value="http://unify.sms.um.mdn.huawei.com"/>
<parameter name="wsdlServicePort" value="UnfiyAPIImpl"/>
<parameter name="className" value="com.huawei.mdn.um.sms.unify.UnfiyAPIImpl"/>
<parameter name="wsdlPortType" value="UnfiyAPIImpl"/>
<parameter name="typeMappingVersion" value="1.2"/>
<operation xmlns:operNS="http://unify.sms.um.mdn.huawei.com" xmlns:retNS="http://unify.sms.um.mdn.huawei.com" xmlns:rtns="http://unify.sms.um.mdn.huawei.com" name="authRequest" qname="operNS:authRequest" returnQName="retNS:authRequestReturn" returnType="rtns:AuthResponse" soapAction="">
<parameter xmlns:pns="http://unify.sms.um.mdn.huawei.com" xmlns:tns="http://unify.sms.um.mdn.huawei.com" qname="pns:authReq" type="tns:AuthRequest"/>
</operation>
<operation xmlns:operNS="http://unify.sms.um.mdn.huawei.com" xmlns:retNS="http://unify.sms.um.mdn.huawei.com" xmlns:rtns="http://unify.sms.um.mdn.huawei.com" name="accountRequest" qname="operNS:accountRequest" returnQName="retNS:accountRequestReturn" returnType="rtns:AccountResponse" soapAction="">
<parameter xmlns:pns="http://unify.sms.um.mdn.huawei.com" xmlns:tns="http://unify.sms.um.mdn.huawei.com" qname="pns:accReq" type="tns:AccountRequest"/>
</operation>
<parameter name="allowedMethods" value="accountRequest authRequest"/>

<typeMapping xmlns:ns="http://unify.sms.um.mdn.huawei.com" qname="ns:AuthResponse" type="java:com.huawei.mdn.um.sms.unify.AuthResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
<typeMapping xmlns:ns="http://unify.sms.um.mdn.huawei.com" qname="ns:AccountRequest" type="java:com.huawei.mdn.um.sms.unify.AccountRequest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
<typeMapping xmlns:ns="http://unify.sms.um.mdn.huawei.com" qname="ns:AccountResponse" type="java:com.huawei.mdn.um.sms.unify.AccountResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
<typeMapping xmlns:ns="http://unify.sms.um.mdn.huawei.com" qname="ns:AuthRequest" type="java:com.huawei.mdn.um.sms.unify.AuthRequest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle=""/>
</service>


<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
<parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
<parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧