700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?

Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?

时间:2022-05-09 03:08:19

相关推荐

Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?

摘要:最近在协助同事搞Android调用WebService接口,再测试的过程中发现老师报错,经过baidu,google,终于解决了,现在记录一下:

一:错误信息:

-10-28 18:50:39 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging警告: Interceptor for {/}HelloServiceImplService#{/}say has thrown exception, unwinding noworg.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"/", local:"name"). Expected elements are <{}name> at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:882)at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:703)at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:160)at org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:108)at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:243)at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:197)at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620)at org.apache..JIoEndpoint$Worker.run(JIoEndpoint.java:489)at java.lang.Thread.run(Thread.java:662)Caused by: javax.xml.bind.UnmarshalException- with linked exception:[javax.xml.bind.UnmarshalException: unexpected element (uri:"/", local:"name"). Expected elements are <{}name>]at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:425)at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362)at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339)at org.apache.cxf.jaxb.JAXBEncoderDecoder.doUnmarshal(JAXBEncoderDecoder.java:843)at org.apache.cxf.jaxb.JAXBEncoderDecoder.access$100(JAXBEncoderDecoder.java:102)at org.apache.cxf.jaxb.JAXBEncoderDecoder$2.run(JAXBEncoderDecoder.java:871)at java.security.AccessController.doPrivileged(Native Method)at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:869)... 26 moreCaused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"/", local:"name"). Expected elements are <{}name>at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254)at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249)at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:101)at com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(StructureLoader.java:243)at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:242)at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)... 32 moreCaused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"/", local:"name"). Expected elements are <{}name>... 43 more

二:正确的Android调用WebService接口代码,这里是一个登陆的例子:

package com.qdexam.service;import java.io.IOException;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import android.test.AndroidTestCase;public class MyTest extends AndroidTestCase {// 命名空间String nameSpace3="http://myUseIos/";// WSDLString WSDL3="http://192.168.1.103:8080/qdksptCxfService/ksptService";// 接口名称String studentLogin="studentLogin";// 登录public void studentLogin() {HttpTransportSE httpTranstation=new HttpTransportSE(WSDL3);SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);SoapObject request =new SoapObject(nameSpace3,studentLogin);String userName = "7777777777";// 参数String password = "7777777777";// 参数request.addProperty("userName", userName);request.addProperty("password", password);envelope.setOutputSoapObject(request);try {httpTranstation.call(null, envelope);Object object = envelope.getResponse();System.out.println("object" + object); } catch (IOException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();} }}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。