Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
摘要:最近在协助同事搞Android调用WebService接口,再测试的过程中发现老师报错,经过baidu,google,终于解决了,现在记录一下:
一:错误信息:
2015-10-28 18:50:39 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
警告: Interceptor for {http://service.qdexam.com/}HelloServiceImplService#{http://service.qdexam.com/}say has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"http://service.qdexam.com/", 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.tomcat.util.net.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:"http://service.qdexam.com/", 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 more
Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://service.qdexam.com/", 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 more
Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://service.qdexam.com/", 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();} }}
Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?相关推荐
- Android开发中调用系统窗口的方法
//直接拨号 Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:12345678")); start ...
- Android 开发中调用google语音接口
最近项目开发中需求中要采用多种的输入方式,于是乎想起google的语音搜索做了一下尝试,做了一个简单的语音识别的demo,总结起来,大致的过程如下: 一.检查Androird手机上是否装上了googl ...
- Android开发中调用百度地图SDK
前言 我是一个在普通大学上学的孩子,主攻AR方向.我最近要通过unity3d来完成我的科研立项---AR指南针,当我开始这个项目时,我在想怎么做,首先在unity3d中调用AR摄像头不难,难就难在怎么 ...
- android开发中调用手机的豌豆荚、应用宝等市场进行评分操作,以及分享功能
应用场景:某个手机阅读器程序,读者看到一篇 文章 ,觉得不错,想要与朋友分享 . 应用展现:按手机的Menu键,弹出"分享"菜单,点击后显示一系列Android分享功能的方式( ...
- Android开发中反编译时出现Unsupported major.minor version 51.0错误的问题
Unsupported major.minor version 51.0大概的意思是:不支持的jdk版本,而major.minor version 51.0为jdk1.7,今天出现此问题时查看了一下自 ...
- dagger android,在Android开发中使用Dagger2的方法
在Android开发中使用Dagger2的方法 发布时间:2020-12-08 17:12:38 来源:亿速云 阅读:236 作者:Leah 在Android开发中使用Dagger2的方法?相信很多没 ...
- android开发怎么调用api
在 Android 开发中调用 API 需要以下步骤: 确定要调用的 API 的 URL 地址,并了解其输入和输出的格式. 在 Android 项目中使用网络请求库,如 Retrofit.Volley ...
- Spring和CXF整合发布WebService(服务端、客户端)
参考Spring和CXF整合发布WebService(服务端.客户端) 转载于:https://www.cnblogs.com/timspace/p/11113576.html
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...
最新文章
- 多账号统一登录(实现方案)
- iOS - 毛玻璃动画效果
- 两页面之间 转发请求,传递参数
- 百练OJ:4150:上机
- Axure快速原型教程02--创建页面和设置界面
- 我所理解的JVM(三):字节码的执行
- linq的简单查询 和 组合查询
- 小技巧 ----- 通过二进制串的位运算进行二维指数型枚举
- 低效能人士的七个坏习惯
- Android studio 混淆配置
- vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版
- ios 系统状态栏样式修改_IOS修改状态栏的字体颜色以及修改状态栏的背景颜色...
- operands could not be broadcast together with remapped shapes
- 小米5(mi5)开启-全面屏手势-详细步骤
- 【CSS】vertical-align属性
- 编译器错误 C2355
- SSM基于WEB的房屋出租管理系统 毕业设计-附源码261620
- mepg-4 的码流分析
- 复旦大学2018--2019学年第二学期高等代数II期末考试情况分析
- 1092 习题6-4 有序插入
热门文章
- shell 获取家目录_一篇教会你写90%的shell脚本
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
- 支付宝支付php代码示例,Laravel使用支付宝进行支付的示例代码
- Linux下解决发布Qt程序报错:it could not find or load the Qt platform plugin “xcb” in “”
- 开源的SIP协议栈 PJSIP
- 进程控制2--exec族
- 图幅号与经纬度的换算
- 【转】DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
- C#接口归纳总结实例详解
- 天猫精灵方糖拆解报告和芯片详解