基于CXF的webService本地数据交互PC端与Android端3Word文档格式.docx
- 文档编号:18460573
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:17
- 大小:203.70KB
基于CXF的webService本地数据交互PC端与Android端3Word文档格式.docx
《基于CXF的webService本地数据交互PC端与Android端3Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于CXF的webService本地数据交互PC端与Android端3Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
9.
commons-collections<
10.
11.
20040616<
12.
13.
14.
commons-lang<
15.
16.
20030203.000129<
17.
18.
19.
commons-beanutils<
20.
21.
20030211.134440<
22.
23.
24.
net.sf.ezmorph<
25.
ezmorph<
26.
1.0.6<
27.
28.
29.
xom<
30.
31.
1.2.5<
32.
33.
34.
commons-httpclient<
35.
36.
20020423<
37.
38.
39.
net.sf.morph<
40.
morph<
41.
1.1.1<
42.
3.IHelloWorld
新增代码
1.package
com.royal.service;
2.
3.import
java.util.List;
4.
5.import
javax.jws.WebParam;
6.import
javax.jws.WebService;
7.
8.import
com.royal.json.Concentrator;
10.@WebService
11.public
interface
IHelloWorld
{
public
Concentrator
getConcentrator(@WebParam(name
=
"
UID"
)
String
UID,
@WebParam(name
name"
name);
//
JSON
getJsonResult(@WebParam(name
object"
Object
object);
getJsonKeyValue(@WebParam(name
object,
key"
key);
19.}
4.HelloWorldImpl
com.royal.serviceImpl;
java.util.ArrayList;
4.import
5.
9.import
com.royal.json.JSonDataFormatUtils;
10.import
com.royal.service.IHelloWorld;
12.@WebService(endpointInterface
com.royal.service.IHelloWorld"
13.public
class
HelloWorldImpl
implements
getConcentrator(String
UID,String
name){
return
new
Concentrator(UID,name);
}
getJsonResult(Object
object){
result
null;
try
JSonDataFormatUtils.resultJSonFormat(object);
catch
(Exception
e)
e.printStackTrace();
result;
getJsonKeyValue(Object
object,String
key){
JSonDataFormatUtils.resultJSonStringKeyValue(object,
40.}
5.Concentrator
简单的POJO类
com.royal.json;
3.public
Concentrator{
private
UID;
6.
name;
Concentrator()
Concentrator(String
name)
this.UID
this.name
getUID()
void
setUID(String
uID)
UID
uID;
getName()
setName(String
34.}
6.JSonDataFormatUtils
JSON数据转换工具类---有很多数据类型间的转换,可上网搜索。
net.sf.json.JSONObject;
5./**
*
@author
LONMID
所依赖的包:
json-lib-2.3-jdk15.jar,
commons-collections.jar,
commons-
lang.jar,
commons-logging.jar,
commons-beanutils.jar,
ezmorph-1.0.6.jar,
xom-1.1.jar
*/
14.public
JSonDataFormatUtils
/**
根据对象获得JSON
@param
object
@return
@throws
Exception
static
resultJSonFormat(Object
object)
throws
;
JSONObject
jsonResult
JSONObject.fromObject(object);
jsonResult.toString();
根据对象获得名称的值
比如---name:
萧_瑟,
获得
萧_瑟
key
resultJSonStringKeyValue(Object
key)
43.
44.
jsonResult.getString(key);
45.
46.
47.
48.
49.}
7.beanRefServer.xml
和
web.xml就不贴了
和
(二)的一样
8.还最重要的一个地方
由于我是maven的项目,所有在项目部署启动前你得勾上json.jar
右键项目---属性---Tomcat---devloaderClasspath
这个小细节阻碍了我2天,由于没勾上,在进行测试的时候经常会报这样的错误:
[javax.xml.bind.JAXBException:
classxxxxxxxxnoranyofitssuperclassisknowntothiscontext.]
或者是
Exceptioninthread"
main"
javax.xml.ws.soap.SOAPFaultException:
net/sf/json/JSONObject
atorg.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:
156)
at$Proxy30.getJsonResult(UnknownSource)
之类的错误
后来经过debug,才发现少了JSONObject这个类,可是这个类明明是json.jar包里面带有的啊,为什么会找不到呢,然后想想spring的注入配置问题,试着在DevLoaderClasspath勾上json.jar,神奇的就可以了,网上找了很多,各有各的理解,不知道其他人是不是这种情况,反正我的是,所以我觉得在做这些调研小例子的时候还是先不要用maven项目,用传统的web项目就好了。
9.服务部署完成了,浏览器访问是不是可以成功
输入地址:
http:
//localhost:
8090/cxf_webservice/services/HelloWorldService?
wsdl
10.CXFClient
客户端测试
增加代码
com.royal.client;
org.apache.cxf.interceptor.LoggingInInterceptor;
org.apache.cxf.interceptor.LoggingOutInterceptor;
7.import
org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
12.public
CXFClient
CXFClient(){
main(String
args[])
JaxWsProxyFactoryBean
factory
JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new
LoggingInInterceptor());
factory.getOutInterceptors().add(new
LoggingOutInterceptor());
factory.setServiceClass(IHelloWorld.class);
factory.setAddress("
8090/cxf_webservice/services/HelloWorldService"
);
client
(IHelloWorld)
factory.create();
//传递对象交互
c
client.getConcentrator("
DD154151"
江南路"
System.out.println("
\nconcentrator-----"
+
c.getUID()
"
c.getName());
//传递json交互
concentrator
Concentrator();
concentrator.setUID("
CC0215613"
concentrator.setName("
逸辉路集中器"
client.getJsonResult(concentrator);
System.out.print(result);
client.getJsonKeyValue(concentrator,"
UID:
UID);
//CC0215613
name
name:
//逸辉路集中器
44.}
11.PC端测试结果
12.android端
Cxf_webservice_androidActivity
com.royal.cxf_webservice;
org.ksoap2.SoapEnvelope;
org.ksoap2.serialization.SoapObject;
org.ksoap2.serialization.SoapSerializationEnvelope;
org.ksoap2.transport.HttpTransportSE;
android.app.Activity;
11.import
android.os.Bundle;
12.import
android.view.View;
13.import
android.view.View.OnClickListener;
14.import
android.widget.Button;
15.import
android.widget.Toast;
17.import
com.royal.model.Concentrator;
19.public
Cxf_webservice_androidActivity
extends
Activity
NAMESPACE
webService地址
URL
//10.0.2.2:
//192.168.17.76:
8090/cxf_webservice/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CXF webService 本地 数据 交互 PC Android