`
longgangbai
  • 浏览: 7338855 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Eclipse 根据ASP.NET WSDL自动生成Axis的WS客户端

阅读更多

      最近研究一下相关的开发的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();
		}
 

 

分享到:
评论

相关推荐

    Eclipse根据wsdl文件逆向生成webservice客户端项目源码

    在Eclipse集成开发环境中,我们可以使用"Web Service Explorer"或"New Web Service Client"向导来根据WSDL文件生成客户端代码。以下是步骤: 1. **导入WSDL文件**:在Eclipse中,选择“File” &gt; “Import” &gt; “Web...

    使用cxf wsdl2java生成webservice客户端

    使用cxf wsdl2java生成webservice客户端命令

    axis2根据wsdl生成java客户端代码

    axis2根据wsdl生成java客户端代码 D:\Software\axis2-1.6.2\bin&gt;wsdl2java.bat -uri http://10.33.30.216:9099/facs/services/ResourceSynchroWebService?wsdl -o E:\wsdloutput -p com.util wsdl2java.bat -uri ...

    Eclipse中用wsdl生成java客户端

    Eclipse中用wsdl生成java客户端 Eclipse是一款功能强大、功能丰富的集成开发环境(IDE),广泛应用于Java开发领域。随着WebService技术的普及,Eclipse也提供了相应的支持,允许开发者通过wsdl文件生成Java客户端...

    wsdl生成服务的客户端调用代码

    总结来说,"wsdl生成服务的客户端调用代码"涉及到利用WSDL文件自动生成与Web服务交互所需的客户端代码,这样开发者就可以在自己的应用中方便地调用这些服务,而无需手动编写复杂的网络通信逻辑。不同的编程语言和...

    Eclipse根据wsdl文件自动生成webservice client图解

    本文将详细讲解如何在Eclipse环境中,根据WSDL文件自动生成WebService客户端,并提供调用示例。 首先,我们需要理解WSDL文件的结构。WSDL文件包含了服务的端点(或地址)、操作(或服务方法)、输入和输出消息的...

    wsdl 客户端生成工具

    生成WSDL客户端可以大大简化开发工作,因为它自动生成了与服务接口对应的客户端代码。这使得开发者无需手动编写调用服务的方法,减少了错误的可能性,提高了开发效率。 三、WSDL客户端生成工具的特性 1. 操作简便:...

    axis根据服务端wsdl生成客户端工具

    3. **生成客户端工具**:在 Axis 中,通过 WSDL2Java 工具,我们可以根据服务端的 WSDL 文件自动生成客户端 stub 类。这些 stub 类包含了调用服务所需的所有方法,使得客户端开发人员无需手动编写与服务交互的代码,...

    .net web服务wsdl生成工具.zip

    .NET Web服务WSDL生成工具是开发.NET应用程序时非常重要的辅助工具,它可以帮助开发者自动生成Web服务的接口定义文件——WSDL(Web Service Description Language)。WSDL文件是一种XML格式的文档,用于描述Web服务...

    eclipse根据wsdl文件生成webservice客户端-图例.pdf

    eclipse 根据 wsdl 文件生成 webservice 客户端 eclipse 是一个功能强大且灵活的集成开发环境(IDE),它提供了许多插件和工具来帮助开发者快速开发和测试应用程序。其中一个重要的应用场景是使用 wsdl 文件生成 ...

    根据WSDL文件生成客户端代码与创建客户端工程

    根据WSDL文件生成客户端代码与创建客户端工程 注意小细节:在根据对方提供的webservice地址,先将对方webservice的wsdl文件描述文件保存到本地时,格式先保存为xml,后将其后缀名为.wsdl的文件 否则报:...

    根据wsdl生成axis的服务端和客户端__工具.rar

    本压缩包文件“根据wsdl生成axis的服务端和客户端__工具.rar”提供了一种基于Apache Axis工具生成服务端和客户端代码的方法,以简化基于WSDL的Web服务开发。 首先,我们需要理解Apache Axis。Axis是一个开源的Java...

    根据wsdl使用gsoap生成的服务器和客户端

    本文将深入探讨如何利用gSOAP工具根据WSDL文件生成C或C++语言的服务器和客户端代码,以实现Web服务的开发。 1. **WSDL简介**: WSDL文件描述了Web服务的接口,包括服务的位置、提供的操作以及如何调用这些操作。它...

    使MyEclipse调用Axis的wsdl2java 通过wsdl生成客户端

    MyEclipse会根据WSDL内容自动生成相应的Java客户端代码,包括服务代理类和服务接口。 5. 编译和运行客户端:生成的代码通常位于`src`目录下的一个新包内。现在可以编写客户端程序来调用Web服务。例如,你可以找到...

    axis2生成客户端服务端代码

    ### Axis2生成客户端与服务端代码详解 #### 一、Axis2简介 Axis2是Apache组织下的一个开源项目,它是一种高性能、轻量级的Web服务框架,支持SOAP和REST等协议,能够帮助开发者轻松地构建和部署Web服务。Axis2提供了...

    根据wsdl文件生成webservice客户端工具(java)

    根据对方提供的webservice地址,你先将对方webservice的wsdl文件描述文件保存到本地为后缀名为.wsdl的文件,然后保存到Tools的这个文件夹下,编辑WSDL2AxisClient.bat这个文件,将%Java_Cmd% org.apache.axis.wsdl....

    Eclipse中用wsdl生成java客户端.pdf

    以下是使用Eclipse从WSDL生成Java客户端的详细步骤,以及相关知识点的解释: 1. **创建Java项目**: 首先,打开Eclipse,创建一个新的Java项目。在"File"菜单中选择"New" -&gt; "Java Project",输入项目名称,例如...

    axis2 1.6.2 生产wsdl客户端代码

    在 Axis2 中,我们可以使用WSDL2Java工具从一个给定的WSDL文件自动生成Java客户端代码。这个过程包括以下步骤: 1. **下载与安装**: 首先,你需要下载Axis2 1.6.2的发行版,这里提供的是"axis2-1.6.2"的压缩包。...

    webService接口用eclipse工具WSDL生成服务端和客户端

    webService接口用eclipse工具WSDL生成服务端和客户端(http协议,xml构造传输),本人研究了好几天已成功,希望大家参考帖子少走弯路

    axis1.4生成客户端

    - **步骤2:启动Axis** - 运行Axis1.4的wsdl2java工具,输入WSDL文件的URL或本地路径,该工具会自动生成Java客户端代码。 - **步骤3:构建客户端代码** - 编译生成的Java源代码,然后在你的项目中引入这些类,这些...

Global site tag (gtag.js) - Google Analytics