前言:
近期研究webservice技术,各类文章很多,但对于第一次接触这个技术的人来讲,学习成本还是较高,记录下我学习的历程,希望对你有所帮助。
Apache官网的对于axis2的教程很详细,大家可以耐心读完。
Apache官网教程(点击这里)
一、什么是axis2
其实就是一种流行的开源webservice框架,现在流行的框架有Axis1,Axis2,Xfire,CXF,JWS等。
二、服务器、客户端
要么利用webservice技术写服务端,要么写客户端,当然一个项目也可以同时具备服务器端和客户端的功能(这个是我的猜测,正在验证);
三、如何发布服务端
官网教程中的发布服务器端,实际上是下载war包后,放到tomcat的webapp目录中(通过启动tomcat后解压出的项目),对该项目进行修改即可完成发布。
而我的需求是要将已经开发完成的项目发布为webservice服务端,所以只需把关键axis2项目的关键文件拷贝至自己的项目中即可(这是另一种偷懒方式)。
我们这里使用官网给的StockQuoteService这个类进行说明。
package samples.quickstart.service.pojo;
import java.util.HashMap;
public class StockQuoteService {
private HashMap map = new HashMap();
public double getPrice(String symbol) {
Double price = (Double) map.get(symbol);
if(price != null){
return price.doubleValue();
}
return 42.00;
}
public void update(String symbol, double price) {
map.put(symbol, new Double(price));
}
}
1.编译
首先将java文件编译成class文件
通过使用命令
javac StockQuoteService.java
2.使用java2wsdl命令,将class文件转为wsdl文件(需要注意的是,这里是进行服务器端的wsdl的生成)
具体命令为:
(Windows)
%AXIS2_HOME%\bin\java2wsdl -cp . -cn samples.quickstart.service.pojo.StockQuoteService -of StockQuoteService.wsdl
(Linux)
$AXIS2_HOME/bin/java2wsdl -cp . -cn samples.quickstart.service.pojo.StockQuoteService -of StockQuoteService.wsdl
命令的具体意思可以参照官网教程,理不理解都无所谓,我没看具体什么意思。
3.下一步是把从war包解压的axis2项目中的主要文件拷贝到自己的项目中
axis2项目的原结构为
这个项目中的src是没有java代码的