`
Aga
  • 浏览: 217719 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

利用axis2、eclipse plugin生成webservice

阅读更多
这两天闲来无事,工作比较轻松,于是就学习了下axis2数据绑定端采用了XMLBean,因为工作量太大,所以采用了eclipse插件。关于插件的使用步骤详见http://wso2.org/library/1719
我的客户端采用了xmlbean方法实现,服务器端采用了最简单的pojo其实具体采用pojo xmlbean axiom我觉得不是重点,关键是如何使用工具生成的stub类。我的服务类如下:
package com.cxz.webservice;

public class AsynGreeting {
	public String greetings(String name) {
		try {
			//To show the Asynchronization influence
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return "Greetings to " + name;
	}
}

就是很简单的helloworld,唯一不同的就是加了一个sleep()用来在异步调用中显示作用。
然后利用plugin生成其他部分。
如果客户端采取同步调用,其调用类如下:
package com.cxz.webservice.client;

import java.lang.Exception;
import com.cxz.webservice.GreetingsDocument;
import com.cxz.webservice.GreetingsResponseDocument;
import com.cxz.webservice.GreetingServiceStub;

public class SyncClient {
	public static void main(String[] args) {
		GreetingServiceStub stub = null;
		try {
			stub = new GreetingServiceStub();
			GreetingsDocument reqDoc = GreetingsDocument.Factory.newInstance();
			reqDoc.addNewGreetings();
			reqDoc.getGreetings().setName("Bernard");
			GreetingsResponseDocument respDoc = stub.greetings(reqDoc);
			System.out.println(respDoc.getGreetingsResponse().getReturn());
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

当然,客户端的数据绑定采用了xmlbean方式。

在实现一部调用之前,要实现一些回雕接口,让axis2框架在完成调用之后自动去调用,该回调类如下:
package com.cxz.webservice.impl;

import com.cxz.webservice.GreetingServiceCallbackHandler;

public class CallbackHandlerImpl extends GreetingServiceCallbackHandler {
	public boolean isFinished = false;
	public void receiveResultgreetings(
			com.cxz.webservice.GreetingsResponseDocument result) {
		System.out.println(result.getGreetingsResponse().getReturn());
		isFinished = true;
	}
	public void receiveErrorgreetings(java.lang.Exception e) {
		e.printStackTrace();
	}
}




下面的部分就是采用异步方式调用的客户端
package com.cxz.webservice.client;

import com.cxz.webservice.GreetingServiceCallbackHandler;
import com.cxz.webservice.GreetingServiceStub;
import com.cxz.webservice.GreetingsDocument;
import com.cxz.webservice.impl.CallbackHandlerImpl;

public class AsynClient {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		GreetingServiceStub stub = null;
		try {
			CallbackHandlerImpl callback = new CallbackHandlerImpl();
			stub = new GreetingServiceStub();
			GreetingsDocument reqDoc = GreetingsDocument.Factory.newInstance();
			reqDoc.addNewGreetings();
			reqDoc.getGreetings().setName("Bernard");
			//GreetingsResponseDocument respDoc = stub.greetings(reqDoc);
			//System.out.println(respDoc.getGreetingsResponse().getReturn());
			stub.startgreetings(reqDoc, callback);
			synchronized(callback){
				while(!callback.isFinished){
					callback.wait(100l);
				}
				System.out.println("End");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}


异步调用中最重要的是:一定要让main线程保持活动状态,我曾经犯的一个让我很迷惑的错误是:支线程在在完成之前,main线程就结束了,导致非预期结果,让我感到很迷茫,看了网上的一些例子才明白。
还有一点就是那个回调类,一定要重写receiveErrorgreetings()方法,否则不会报任何异常。
  • Hello.jar (413.7 KB)
  • 描述: 源代码,除了lib
  • 下载次数: 81
5
0
分享到:
评论
1 楼 Aga 2008-06-11  
文件提取地址http://pickup.mofile.com/1275485956247476

相关推荐

    WebService axis2-eclipse-codegen-plugin

    WebService Axis2 Eclipse Codegen Plugin是基于Eclipse IDE的插件,专门用于生成Axis2 Web服务的客户端和服务器端代码。这个工具极大地简化了开发者在基于Axis2框架开发Web服务时的工作流程,允许他们通过简单的...

    axis2-eclipse-codegen-plugin-1.5.6.zip

    标题中的"axis2-eclipse-codegen-plugin-1.5.6.zip"是一个Axis2 Eclipse Codegen Plugin的版本1.5.6的压缩包文件。这个插件是专门为Eclipse集成开发环境(IDE)设计的,用于帮助Java开发者在构建Web服务时自动生成...

    axis2开发webservice(二)

    资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-codegen-plugin-1.7.4.zip、axis2-eclipse-service-plugin-1.7.4.zip。 myeclipse安装axis2.txt文件:详细说明了myeclipse如何安装axis2插件...

    axis2方式开发webservice

    资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-codegen-plugin-1.7.4.zip、axis2-eclipse-service-plugin-1.7.4.zip。 myeclipse安装axis2.txt文件:详细说明了myeclipse如何安装axis2插件...

    axis2支持webservice 自动生成代码客户端服务端代码插件

    标题提及的“axis2支持webservice 自动生成代码客户端服务端代码插件”,是指Apache Axis2为Eclipse IDE提供的一套工具,旨在简化Web服务的开发流程。这个插件允许开发者通过WSDL(Web Services Description ...

    eclipse下开发axis2

    - `axis2-eclipse-codegen-wizard.zip`:用于生成 Web 服务客户端和服务器端代码。 - `axis2-eclipse-service-archiver-wizard.zip`:用于将 Axis2 Web 服务打包成 WAR 文件以便部署。 - `axis2-1.5.1-bin.zip`:...

    部署WebService(eclipse-axis2)

    ### 部署WebService(eclipse-axis2)的关键步骤与实践 #### 一、概述 部署WebService涉及使用Eclipse集成开发环境结合Axis2框架来搭建Web服务。本文将详细介绍如何使用Eclipse 3.5.0 和 Axis2-1.3 版本进行...

    axis2-eclipse-codegen-plugin-1.6.3.zip

    描述中的“开发webservice需要用到的axis2-eclipse-codegen-plugin-1.6.3.zip”暗示了这个插件的主要用途:帮助开发者在Eclipse中生成Web服务的客户端和服务器端代码。通过此插件,开发者可以快速地从WSDL(Web服务...

    axis2-eclipse-codegen-plugin-1.7.1

    eclipse 工具通过axis2插件,根据wsdl生成webservice客户端代码。将此文件解压缩,放到%eclipse_home%\eclipse\plugins中,重启eclipse。然后选中项目,新建-other-axis2 wizards 下的axis2 code generate ,然后...

    axis2开发webservice(三)

    资源包含了:axis2-1.7.4-bin.zip、axis2-1.7.4-war.zip、axis2-eclipse-codegen-plugin-1.7.4.zip、axis2-eclipse-service-plugin-1.7.4.zip。 myeclipse安装axis2.txt文件:详细说明了myeclipse如何安装axis2插件...

    AXIS2 Eclipse插件 WSDL

    AXIS2 最新版本1.7.3针对 eclipse插件,一方面可以根据java接口类生成WSDL文件,另一方面可以根据WSDL生成客户端或服务端代码,生成的WSDL文件和代码符合web server SOAP协议规范标准!解压后的jar复制到Eclipse的...

    Axis2调用SAP Webservice源码

    Axis2调用SAP Webservice源码 使用Axis2 org.apache.axis2.eclipse.codegen.plugin_1.6.2.jar插件生成本地Java Proxy同事生成同步和异步调用测试用例 更重要的是配备详细文档,实乃Java与SAP集成是宝典!

    myeclipse8.5使用axis2插件开发webservice服务并调用

    本文将详细介绍如何利用MyEclipse 8.5集成开发环境及其内置的Axis2插件来构建WebService服务,并演示如何通过客户端调用这些服务。 #### 二、准备工作 首先,确保您的开发环境中已经安装了以下软件: 1. Java ...

    axis2 Eclipse插件

    axis2实现webservice,在Eclipse中打包aar文件插件、新建web service client客户端插件。在Eclipse中新建选项会出现 Axis2 Wizards Axis2 Code Generator Axis2 Service Archiver Web Service Client 等。 资源包括...

Global site tag (gtag.js) - Google Analytics