基于CXF的webService本地数据交互PC端与Android端3.docx

上传人:b****6 文档编号:7216574 上传时间:2023-05-11 格式:DOCX 页数:17 大小:203.70KB
下载 相关 举报
基于CXF的webService本地数据交互PC端与Android端3.docx_第1页
第1页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第2页
第2页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第3页
第3页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第4页
第4页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第5页
第5页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第6页
第6页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第7页
第7页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第8页
第8页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第9页
第9页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第10页
第10页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第11页
第11页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第12页
第12页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第13页
第13页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第14页
第14页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第15页
第15页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第16页
第16页 / 共17页
基于CXF的webService本地数据交互PC端与Android端3.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于CXF的webService本地数据交互PC端与Android端3.docx

《基于CXF的webService本地数据交互PC端与Android端3.docx》由会员分享,可在线阅读,更多相关《基于CXF的webService本地数据交互PC端与Android端3.docx(17页珍藏版)》请在冰点文库上搜索。

基于CXF的webService本地数据交互PC端与Android端3.docx

基于CXF的webService本地数据交互PC端与Android端3

本篇基于

(二)的基础上续写

 

主要是JSON的数据交互。

 

1.项目结构图。

 

2.POM.XML  maven中导进需要的包 新增代码(注意这里没有给全,只是给出这篇需要的)

Java代码  

1.

-- =============JSon====================== -->  

2.

-- =========这个我包下不下来  手动导入吧============== -->  

3.

--          -->  

4.

--             net.sf.json-lib -->  

5.

--             json-lib -->  

6.

--             2.3 -->  

7.

--          -->  

8.          

9.            commons-collections  

10.            commons-collections  

11.            20040616  

12.          

13.          

14.            commons-lang  

15.            commons-lang  

16.            20030203.000129  

17.          

18.          

19.            commons-beanutils  

20.            commons-beanutils  

21.            20030211.134440  

22.          

23.          

24.            net.sf.ezmorph  

25.            ezmorph  

26.            1.0.6  

27.          

28.          

29.            xom  

30.            xom  

31.            1.2.5  

32.          

33.          

34.            commons-httpclient  

35.            commons-httpclient  

36.            20020423  

37.          

38.          

39.            net.sf.morph  

40.            morph  

41.            1.1.1  

42.          

 

3.IHelloWorld  新增代码

Java代码  

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;  

9.  

10.@WebService  

11.public interface IHelloWorld {  

12.  

13.        public Concentrator getConcentrator(@WebParam(name = "UID") String UID,  

14.            @WebParam(name = "name") String name);  

15.    // JSON   

16.    public String getJsonResult(@WebParam(name = "object") Object object);  

17.      

18.    public String getJsonKeyValue(@WebParam(name = "object") Object object, @WebParam(name = "key") String key);  

19.}  

 

4.HelloWorldImpl 新增代码

Java代码  

1.package com.royal.serviceImpl;  

2.  

3.import java.util.ArrayList;  

4.import java.util.List;  

5.  

6.import javax.jws.WebService;  

7.  

8.import com.royal.json.Concentrator;  

9.import com.royal.json.JSonDataFormatUtils;  

10.import com.royal.service.IHelloWorld;  

11.  

12.@WebService(endpointInterface = "com.royal.service.IHelloWorld")  

13.public class HelloWorldImpl implements IHelloWorld {  

14.  

15.    public Concentrator getConcentrator(String UID,String name){  

16.        return new Concentrator(UID,name);  

17.    }  

18.      

19.    //  JSON  

20.    public String getJsonResult(Object object){  

21.        String result = null;  

22.        try {  

23.            result = JSonDataFormatUtils.resultJSonFormat(object);  

24.        } catch (Exception e) {  

25.            e.printStackTrace();  

26.        }  

27.        return result;   

28.    }  

29.      

30.    public String getJsonKeyValue(Object object,String key){  

31.        String result = null;  

32.        try {  

33.            result = JSonDataFormatUtils.resultJSonStringKeyValue(object, key);  

34.        } catch (Exception e) {  

35.            e.printStackTrace();  

36.        }  

37.        return result;  

38.    }  

39.  

40.}  

 

5.Concentrator  简单的POJO类

Java代码  

1.package com.royal.json;  

2.  

3.public class Concentrator{  

4.  

5.    private String UID;  

6.  

7.    private String name;  

8.  

9.    public Concentrator() {  

10.  

11.    }  

12.  

13.    public Concentrator(String UID, String name) {  

14.        this.UID = UID;  

15.        this.name = name;  

16.    }  

17.  

18.    public String getUID() {  

19.        return UID;  

20.    }  

21.  

22.    public void setUID(String uID) {  

23.        UID = uID;  

24.    }  

25.  

26.    public String getName() {  

27.        return name;  

28.    }  

29.  

30.    public void setName(String name) {  

31.        this.name = name;  

32.    }  

33.  

34.}  

 

6.JSonDataFormatUtils JSON数据转换工具类---有很多数据类型间的转换,可上网搜索。

Java代码  

1.package com.royal.json;  

2.  

3.import net.sf.json.JSONObject;  

4.  

5./** 

6. *  

7. * @author LONMID 

8. *  

9. *         所依赖的包:

 json-lib-2.3-jdk15.jar, commons-collections.jar, commons- 

10. *         lang.jar, commons-logging.jar, commons-beanutils.jar, 

11. *         ezmorph-1.0.6.jar, xom-1.1.jar 

12. *  

13. */  

14.public class JSonDataFormatUtils {  

15.  

16.    /** 

17.     * 根据对象获得JSON 

18.     *  

19.     * @param object 

20.     * @return 

21.     * @throws Exception 

22.     */  

23.    public static String resultJSonFormat(Object object) throws Exception {  

24.        String result = "";  

25.  

26.        JSONObject jsonResult = JSONObject.fromObject(object);  

27.        result = jsonResult.toString();  

28.  

29.        return result;  

30.    }  

31.  

32.    /** 

33.     * 根据对象获得名称的值    比如---name:

萧_瑟, 获得 萧_瑟 

34.     * @param object 

35.     * @param key 

36.     * @return 

37.     * @throws Exception 

38.     */  

39.    public static String resultJSonStringKeyValue(Object object, String key)  

40.            throws Exception {  

41.        String result = "";  

42.  

43.        JSONObject jsonResult = JSONObject.fromObject(object);  

44.        result = jsonResult.getString(key);  

45.  

46.        return result;  

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  客户端测试  增加代码

Java代码  

1.package com.royal.client;  

2.  

3.import java.util.List;  

4.  

5.import org.apache.cxf.interceptor.LoggingInInterceptor;  

6.import org.apache.cxf.interceptor.LoggingOutInterceptor;  

7.import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  

8.  

9.import com.royal.json.Concentrator;  

10.import com.royal.service.IHelloWorld;  

11.  

12.public class CXFClient {  

13.      

14.    public CXFClient(){  

15.          

16.    }  

17.      

18.    public static void main(String args[]) throws Exception {  

19.        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();  

20.        factory.getInInterceptors().add(new LoggingInInterceptor());  

21.        factory.getOutInterceptors().add(new LoggingOutInterceptor());  

22.        factory.setServiceClass(IHelloWorld.class);    

23.        factory.setAddress("http:

//localhost:

8090/cxf_webservice/services/HelloWorldService");  

24.        IHelloWorld client = (IHelloWorld) factory.create();  

25.  

26.        //传递对象交互  

27.        Concentrator c = client.getConcentrator("DD154151", "江南路");  

28.          

29.        System.out.println("\nconcentrator-----" + c.getUID() + "," + c.getName());  

30.          

31.        //传递json交互    

32.        Concentrator concentrator = new Concentrator();  

33.        concentrator.setUID("CC0215613");  

34.        concentrator.setName("逸辉路集中器");  

35.        String result = client.getJsonResult(concentrator);  

36.        System.out.print(result);  

37.        String UID = client.getJsonKeyValue(concentrator,"UID");  

38.        System.out.println("UID:

" + UID);//CC0215613  

39.        String name = client.getJsonKeyValue(concentrator,"name");  

40.        System.out.println("name:

" + name);//逸辉路集中器  

41.          

42.    }  

43.  

44.}  

 

11.PC端测试结果

 

12.android端  Cxf_webservice_androidActivity 新增代码

Java代码  

1.package com.royal.cxf_webservice;  

2.  

3.import java.util.List;  

4.  

5.import org.ksoap2.SoapEnvelope;  

6.import org.ksoap2.serialization.SoapObject;  

7.import org.ksoap2.serialization.SoapSerializationEnvelope;  

8.import org.ksoap2.transport.HttpTransportSE;  

9.  

10.import 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;  

16.  

17.import com.royal.model.Concentrator;  

18.  

19.public class Cxf_webservice_androidActivity extends Activity {  

20.    private static String NAMESPACE = "  

21.    // webService地址  

22.    private static String URL = "http:

//10.0.2.2:

8090/cxf_webservice/services/HelloWorldService";  

23.    // private static String URL =  

24.    // "http:

//192.168.17.76:

8090/cxf_webservice/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2