Axis2框架实现WebService

43 篇文章 0 订阅

Axis2快速入门:http://axis.apache.org/axis2/java/core/docs/quickstartguide.html

一、Eclipse axis2插件安装

Axis2主页上有关于插件的安装方法;见http://axis.apache.org/axis2/java/core/tools/eclipse/wsdl2java-plugin.html#Installation

Axis2下载:http://axis.apache.org/axis2/java/core/download.cgi


这两个压缩包解压后放到eclipse安装目录下的plugins目录,重启eclipse服务器,File new ->other,可以看到下面的这两个选项,表示插件安装成功


二、Axis2服务端开发

1、在tomcat中部署axis2(为了接下来发布webservice服务)

下载axis2-1.7.6-war.zip,解压到tomcat的webapps目录下,启动tomcat服务器,会发现webapps目录下多了axis2文件夹,在浏览器里输入http://localhost:8080/axis2,会发现对应的网页,说明已经成功了

2、建立要发布的WebService 

   2.1、new java project:AxisService

2.2、编写需要发布的WebService,在src目录下建包samples.quickstart.service.pojo,new class StockQuoteService如下

package samples.quickstart.service.pojo;

import java.util.HashMap;
import java.util.Map.Entry;

public class StockQuoteService {
	private HashMap<String, Double> map = new HashMap<String, Double>();

	public double getPrice(String symbol) {
		Double price = (Double) map.get(symbol);
		if (price != null) {
			return price.doubleValue();
		}
		return 42.00;
	}

	public String list() {
		String result = "{";
		for (Entry<String, Double> entry : map.entrySet()) {
			result += entry.getKey() + ":" + entry.getValue() + ",";
		}
		result += "}";
		return result;
	}

	public void update(String symbol, double price) {
		map.put(symbol, new Double(price));
	}

	public String sayHello(String name) {
		return "hello" + name + "axis2";
	}
}


3、发布WebService

3.1、打包要发布的Service, 点击Eclipse中New -> File -> Other -> Axis2 wizards -> Axis2 Services Archiver

3.2、按上图填写,class File Location为工作目录对应项目的bin文件夹,并勾上Include .class files only,点击next

3.3、默认选择Skip WSDL,点击next

3.4、默认,继续next

3.5、默认,继续next

3.6、如上图所示,选择正确的Class Name,否则load不到class

3.7 、如上图所示,output file location填写tomcat目录的axis2\web-inf\services下,点击Finish后,可以发现:F:\apache-tomcat-6.0.45\webapps\axis2\WEB-INF\services目录下增加了StockQuoteService.aar

3.8、测试发布的WebService

 打开http://localhost:8080/axis2/services/listServices页面,可以看到所发布的服务:

点击StockQuoteService链接查看wsdl

webservice发布成功。

三、Axis2客户端开发

1、File-new 选择Axis2 Code Generator 点击next

2、选择从wsdl生成java文件,点击next

3、选择生成好的wsdl文件

4、Codegen option选择default,点击next

5、选择将生成的java代码保存到工作空间的特定工程里面

生成的客户端代码如下

添加axis2需要的jar包到工程里面。不然会报错,具体需要的jar从axis2-1.7.6-bin.zip这个下载包里面的lib目录去取。

新建包test,然后new class StockQuoteServiceTest,代码如下:

package test;

import java.rmi.RemoteException;

import samples.quickstart.service.pojo.GetPrice;
import samples.quickstart.service.pojo.GetPriceResponse;
import samples.quickstart.service.pojo.ListResponse;
import samples.quickstart.service.pojo.SayHello;
import samples.quickstart.service.pojo.StockQuoteServiceStub;
import samples.quickstart.service.pojo.Update;

public class StockQuoteServiceTest {
    public static void main(java.lang.String args[]){
        try{
            StockQuoteServiceStub stub =
                new StockQuoteServiceStub
                ("http://localhost:8080/axis2/services/StockQuoteService?wsdl");

            getPrice(stub);
            update(stub);
            list(stub);
            getPrice(stub);
            sayHello(stub);
        } catch(Exception e){
            e.printStackTrace();
            System.err.println("\n\n\n");
        }
    }

    /* fire and forget */
    public static void update(StockQuoteServiceStub stub){
        try{
        	Update update = new Update();
        	update.setSymbol("ABC");
        	update.setPrice(43.35);
            stub.update(update);
            
        	update.setSymbol("CDE");
        	update.setPrice(12.00);
            stub.update(update);
            
            
            System.err.println("price updated");
        } catch(Exception e){
            e.printStackTrace();
            System.err.println("\n\n\n");
        }
    }

    /* two way call/receive */
    public static void getPrice(StockQuoteServiceStub stub){
        try{
        	GetPrice price = new GetPrice();
        	price.setSymbol("ABC");
        	GetPriceResponse response = stub.getPrice(price);
            System.err.println(response.get_return());
        } catch(Exception e){
            e.printStackTrace();
            System.err.println("\n\n\n");
        }
    }
    
    public static void list(StockQuoteServiceStub stub){
    	try {
			ListResponse listResponse = stub.list();
			System.out.println(listResponse.get_return());
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    
    public static void sayHello(StockQuoteServiceStub stub){
    	SayHello sayHello = new SayHello();
    	sayHello.setName("weir");
    	try {
			System.out.println(stub.sayHello(sayHello).get_return());
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
 
}
运行代码结果如下:


update 方法执行无效,价格没设置进去,这个问题还得查资料。

使用Axis2框架实现webservice就先写到这边了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Axis2Java实现Web服务接口,可以按照以下步骤进行: 1. 下载和安装Axis2:首先,你需要下载并安装Axis2框架。你可以从Apache官方网站(https://axis.apache.org/axis2/java/core/download.cgi)上下载最新版本的Axis2。 2. 创建Java项目:使用你喜欢的Java开发工具(如Eclipse、IntelliJ IDEA等),创建一个新的Java项目。 3. 导入Axis2库:将Axis2库导入到你的项目中。你可以将下载的Axis2库文件添加到项目的构建路径中,或者使用构建工具(如Maven、Gradle等)来管理依赖项。 4. 创建Web服务接口:在项目中创建一个Java接口,定义你的Web服务接口。这个接口将包含你希望暴露给客户端的操作。 ```java public interface MyWebService { public String processRequest(String request); } ``` 5. 实现Web服务接口:创建一个Java类来实现你的Web服务接口。 ```java public class MyWebServiceImpl implements MyWebService { public String processRequest(String request) { // 处理Web服务请求并返回响应 return "Hello, " + request + "! This is a response from the web service."; } } ``` 6. 创建服务端:使用Axis2创建一个服务端来发布你的Web服务。 ```java import org.apache.axis2.transport.http.server.HttpServiceProcessor; public class WebServiceServer { public static void main(String[] args) { try { // 创建服务端配置 ConfigurationContext configContext = ConfigurationContextFactory.createDefaultConfigurationContext(); // 创建服务端 Axis2Server server = new Axis2Server(configContext); // 注册Web服务实现类 server.addService(MyWebService.class.getName(), new MyWebServiceImpl()); // 启动服务端 server.start(); System.out.println("Web service is running."); } catch (AxisFault e) { e.printStackTrace(); } } } ``` 7. 构建和运行:构建并运行你的Java项目。服务端将会启动,并在默认端口(一般为8080)上监听来自客户端的请求。 8. 创建客户端:使用Axis2创建一个客户端来调用你的Web服务。 ```java import org.apache.axis2.client.ServiceClient; import org.apache.axis2.client.Options; import org.apache.axis2.addressing.EndpointReference; public class WebServiceClient { public static void main(String[] args) { try { // 创建服务客户端 ServiceClient client = new ServiceClient(); // 创建服务端点引用 EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/MyWebService"); // 设置服务端点地址 Options options = new Options(); options.setTo(targetEPR); client.setOptions(options); // 创建请求操作 QName operationName = new QName("http://example.com/MyWebService", "processRequest"); Object[] operationParams = new Object[] { "John" }; Class[] operationReturnTypes = new Class[] { String.class }; // 调用Web服务操作 Object[] response = client.invokeBlocking(operationName, operationParams, operationReturnTypes); String result = (String) response[0]; System.out.println("Response from web service: " + result); } catch (AxisFault e) { e.printStackTrace(); } } } ``` 9. 构建和运行:构建并运行你的Java客户端项目。客户端将会调用服务端的Web服务,并接收并打印响应。 通过以上步骤,你可以使用Axis2Java实现和调用Web服务接口。请注意,根据你的实际需求,可能需要配置和调整Axis2的一些参数和设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值