使用xfire引擎发布webservice返回xml格式数据

公司是做物联网的 目前手里负责一个项目(山东物联网后勤资产管理系统)

这个系统需要跟手持机(就是用手拿着录入东西的机器,录入方式是扫描(就像wifi发出信号一样扇形扫描))

同步数据,实施人员用手持机在现场录入资产之前需要向后勤系统调用一些基础数据,而录入完之后后勤系统又需要向手持机同步最新的资产信息 于是用到了webService

这里只写下服务端正文:

使用xfire引擎发布webservice返回xml格式数据_第1张图片

使用xfire引擎发布webservice返回xml格式数据_第2张图片

这里是方法接口 上图中最后一行方法三个参数 是我准备修改xml的方式以json的格式返回数据做的测试(因为xmlge要来回解析所以准备换成json,在此可忽略不记)

使用xfire引擎发布webservice返回xml格式数据_第3张图片

在此贴一个实现方法 改方法属于上图中的DataExchangeServiceImpl类

	// 楼宇结构
	@SuppressWarnings("unchecked")
	public String getLouyjg(String xmlString) {
		StringBuffer result = new StringBuffer();
		result.append("");
		result.append("");
		}

		try {
			map = new HashMap();
			map.put("bgrow", Integer.parseInt(startIndex) - 1);
			map.put("rows", Integer.parseInt(endIndex));
			map.put("corpid", corpid);
			System.out.println(map.toString());
			list = SqlMap.getSqlMap().queryForList(
					"WEB_SERVICE.queryListPageForWeb_sys_louyjg", map);

			int count = list.size();
			result.append("" + count + "");
			for (int i = 0; i < list.size(); i++) {
				result.append("");
				Map m = (Map) list.get(i);
				result.append("" + (String) m.get("FANGJID")
						+ "");
				result.append("" + (String) m.get("FANGJH")
						+ "");
				result.append("" + (String) m.get("FANGJMC")
						+ "");
				result.append("" + (String) m.get("LOUCID")
						+ "");
				result.append("" + (String) m.get("LOUCMC")
						+ "");
				result.append("" + (String) m.get("LOUYID")
						+ "");
				result.append("" + (String) m.get("LOUYMC")
						+ "");
				result.append("");
			}
		} catch (SQLException e) {
			System.out.println("数据库查询失败");
			e.printStackTrace();
		}
		result.append("");
		// System.out.println(result.toString());
		return result.toString();
	}

服务类写好了 下面是在xfire引擎中发布web服务 先贴下结构 


下面是xfire详细配置文件

注意:忘记了在什么情况下 改配置文件会出现一个错误(错误也忘记是啥错误了emmmmm )

解决方式把xmlns="http://xfire.codehaus.org/config/1.0" 写到service标签下就好了 每发一个服务就写一次!

使用xfire引擎发布webservice返回xml格式数据_第4张图片

完事在web.xml中将服务公布出去 这样就可以用上面的连接访问了

使用xfire引擎发布webservice返回xml格式数据_第5张图片

服务端完事了 下面写了个客户端做个测试 客户端就一个main方法

使用xfire引擎发布webservice返回xml格式数据_第6张图片

可以看到上图中传入的其实也是一个xml 这样服务端需要对这个xml进行解析 导致了写了很长的代码 而换成json则不需要了 

(使用fastjson-1.2.9.jar已经写出了json格式)会在后期记录

下面是返回的xml格式的数据



    11
    
        502849EB502849EBC330AFA0FCA2FB00
        1037
        国网企协,会议室,综合处
        0500067
        10
        0500001
        办公楼A座
    
    
        5BA6A5B75BA6A5B72A371ADC5E7CC43B
        1022
        实物阅览室
        0500067
        10
        0500001
        办公楼A座
    
    
        6825EAB36825EAB38E3A238D6A2258D1
        3410
        接待室
        0500321
        34
        0500001
        办公楼A座
    
    
        6F26DF676F26DF678FA039FD4923F649
        1032
        会议室
        0500067
        10
        0500001
        办公楼A座
    
    
        73203E7B73203E7B742E11CB383FA242
        1016
        仓库
        0500067
        10
        0500001
        办公楼A座
    
    
        73343A8173343A81A421C04D66A16659
        1026
        会议室
        0500067
        10
        0500001
        办公楼A座
    
    
        78392B2B52BC5FF5EB27F8B2F03D463C
        3208
        综合处
        0500303
        32
        0500001
        办公楼A座
    
    
        8435C1A18435C1A1B6B953C3DE39692C
        833
        机房
        0500048
        8
        0500001
        办公楼A座
    
    
        88482947035E4F1ABFF969E56646A352
        工作间
        工作间
        620C0F6C960245448B85DB5AB36BD451
        3
        B7DDDC74CADE4CD39A5D892D66DBE0E5
        文印中心
    
    
        8AA681BF8AA681BF856212458EB2D29F
        218
        接待室
        0500007
        2
        0500001
        办公楼A座
    
    
        8a8137684bcff8fb014c1100b44e3046
        3207
        主任
        0500303
        32
        0500001
        办公楼A座
    





你可能感兴趣的:(WebService)