- 浏览: 7354784 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
最近研究一下相关的开发的WebService,发现他们的服务均采用ASP.net开发的服务,于是乎研究一下。将成果告诉大家,并分享一下。
开发Java的童靴大多喜欢使用Myeclipse开发,因为他具备许多功能,可以自动生成。我更喜欢采用eclipse开发,简单快捷。
1.首先给eclipse安装一个Tomcat 的插件。
2.根据eclipse提示创建相关的WebService客户端。(eclipse支持的为axis1.4的)。如果想采用axis2.0可以自己配置忽略了。
在asp.net中有一种数据结构为dataset,转换为java 的webservice客户端时候,对应XXXXResult.里面一个
private org.apache.axis.message.MessageElement [] _any;
该数据分为两部分,第一个对象为消息头部。不用操作。
第二个对象为消息体,所有的信息包含消息体的xml中。
/** * 获得这国内飞机航班时刻表Web Services支持的全部城市中英文名称和缩写 DataSet * *输入参数:无;返回数据: *结构为 Item(enCityName)城市英文名称、 * Item(cnCityName)城市中文名称、 * Item(Abbreviation)缩写, * 按城市英文名称升序排列 * @return */ public EtripJSONResponse queryAllFlightCity() { EtripJSONResponse jsonRequest=new EtripJSONResponse(); try { DomesticAirlineSoap airlineSoap=flightLocator.getDomesticAirlineSoap(); GetDomesticCityResponseGetDomesticCityResult flightLineResult=airlineSoap.getDomesticCity(); //获取消息数据集合 MessageElement[] messageElements=flightLineResult.get_any(); //获取消息头信息 List flightHeader=messageElements[0].getChildren(); //获取消息体 List flightBody=messageElements[1].getChildren(); if(flightBody.size()<=0){ return null; } //获取消息体信息 String bodyMessage=flightBody.get(0).toString(); //转换消息内容为json格式 String json=parseQueryAllFlightCity(bodyMessage); jsonRequest.setFlag(EtripJSONResponse.SUCCESS); jsonRequest.setData(json); } catch (ServiceException e) { jsonRequest.setMessage("请求第三方服务异常:"+e.getMessage()); jsonRequest.setFlag(EtripJSONResponse.FAILURE); } catch (RemoteException e) { jsonRequest.setFlag(EtripJSONResponse.FAILURE); jsonRequest.setMessage("请求第三方服务异常:"+e.getMessage()); } catch (JDOMException e) { jsonRequest.setFlag(EtripJSONResponse.FAILURE); jsonRequest.setMessage("请求第三方服务时,xml的解析错误:"+e.getMessage()); } return jsonRequest; }
我们可以从客户端获取到消息体内容的字符串。我们需要解析相关的xml。
需要操作如下:
1.将xml字符串转换为相关的流对象。
2.将xml对象解析具体代码如下:
/** * 将xml字符串的解析 * @param bodyMessage * @return * @throws JDOMException */ private String parseQueryAllFlightCity(String bodyMessage) throws JDOMException { //创建字节流信息 InputStream file=new ByteArrayInputStream(bodyMessage.getBytes()); //读取xml的信息 SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(file); Element root = doc.getRootElement(); // 得到根元素 List flightListElement = root.getChildren(); Element flightElement = null; JSONObject flight=null; StringBuffer buffer=new StringBuffer(); if(CollectionUtils.isNotEmpty(flightListElement)){ for(int i=0; i<flightListElement.size(); i++) { flight=new JSONObject(); flightElement = (Element) flightListElement.get(i); buffer.append("{enCityName="); buffer.append(flightElement.getChild("enCityName").getText()); buffer.append(",cnCityName="); buffer.append(flightElement.getChild("cnCityName").getText()); buffer.append(",Abbreviation="); buffer.append(flightElement.getChild("Abbreviation").getText()); buffer.append("}"); if(i==flightListElement.size()-1){ buffer.append(","); } } } return buffer.toString(); }
发表评论
-
Spring 和Axis2整合相关那些事
2012-12-29 12:58 10428Axis2优劣: 现在用axis2开发一个webse ... -
【转】互联网常见Open API文档资源
2012-07-17 17:22 2434原文出处:http://www.williamlong.i ... -
互联网 免费的WebService接口
2012-07-08 17:25 5666股票行情数据 WEB 服务 ... -
Apache CXF REST WebService简单应用
2011-11-27 17:30 5633<p> 本文目的就项目中的Apache ... -
REST WebService简单应用(测试)
2011-11-27 16:11 4804在项目中许多同事采用Ajax调用REST Web服 ... -
REST WebService简单应用
2011-11-27 15:07 3644最近项目中WebService采用REST风格的WebS ... -
Brap的创建WebService
2011-07-26 10:33 1257通过Brap开发WebService,通过Brap的W ... -
CFX 和Spring 整合Ws Security 出现的问题?
2010-05-05 20:50 4722package com.easyway.cxf.securit ... -
Axis2 XFire CXF 比较
2010-05-03 21:35 4073CXF最新版本:2.2.2 开源服务框架,可以通过API,如 ... -
CXF应用程序开发 WS 多个服务动态访问
2010-05-03 17:37 4488官方网站: https://cwiki.apache. ... -
CXF应用程序开发 WS 采用Simple Frontend 方式简单方便
2010-05-03 16:24 3163关于CXF中的Simple Frontend 的官方网 ... -
CXF应用程序开发 中调用WSDL提供服务的WS (WS的迁移使用)
2010-05-03 15:16 33161。提供wsdl的源在需要的服务端生成客户端源代码 2。在C ... -
CXF和Axis的比较
2010-05-03 14:32 2007在SOA领域,我们认为Web Service是SOA体系的构建 ... -
CXF应用程序开发应用程序的安全性
2010-05-03 10:23 2354package com.easyway.cxf.service ... -
开发WebService 如何保证它的安全性
2010-05-03 10:16 12869摘要: 概述 Microsoft XML Web Servic ... -
使用CXF中的Aegis开发WS使用
2010-05-02 19:56 3213package com.easyway.cxf.service ... -
XFire容易配置出现的几个异常信息
2009-07-13 10:29 12091今天做一个Flex调用Web服务的程序创建一个WS,由于一 ... -
Web service 原理和 开发
2009-03-13 22:07 10510什么是Web Services ... -
xfire开发客户端密钥参数定制开发应用
2009-03-13 19:19 2744xfire在服务端验证,客户端必须使用相应的用户名称和密码设置 ... -
spring和xfire整合的应用开发的原理和客户端开发方式(一)
2009-03-10 17:01 3125使用xfire常用方式远程服务类访问 package cn. ...
相关推荐
- Java客户端通过Apache CXF或其他Java SOAP库(如Axis2)解析.NET服务的WSDL,生成客户端代码,然后调用服务。 开发环境中,使用的是JDK1.6和Eclipse3.6作为Java环境,Visual Studio 2010作为.NET环境。值得注意...
这将在VS.NET中生成一个代理类,供.NET客户端调用Java服务。通过设置事件处理程序,当按钮被点击时,调用Web服务的getName方法并显示结果。 **二、用Java做客户端调用.NET写的Web Services** 1. **创建.NET Web ...
- 创建服务代理类:使用Axis2的wsdl2java工具,根据C# Web服务提供的WSDL(Web Service Description Language)文件生成Java客户端代码。 - 实例化服务代理:在Java代码中创建服务代理类的实例,设置必要的配置如...
1. **生成客户端代理类**:使用`wsimport`工具,根据C# WebService的WSDL地址生成Java客户端代理类。 2. **实例化代理类**:在Java代码中,创建代理类的实例,并调用相应的方法。 ```java MyWebService ...
根据提供的文件信息,我们可以深入探讨如何使用 Apache Axis 开发 Web 服务,并且了解该书的主要内容、特点以及针对的目标读者。 ### 标题:“DevWebServicesWithApacheAxis” 该标题明确指出本书的主题是关于如何...