一、简介:
Axis2 基于新的体系结构进行了全新编写,具有更强的灵活性并可扩展到新的体系结构,灵活的应用Web 服务标准和协议(如 WS-Security等)
是新一代的SOAP引擎
二、准备
axis2所需包下载:http://axis.apache.org/axis2/ ,可用最新版本1.6.2
使用eclipse开发,版本 eclipse-jee-indigo-win32
Tomcat版本:5.0 以上,本人用的6.0
三、配置axis2
1、Eclipse-->点击菜单windows-->Preferences-->WebServices--> Axis2 Preferences -->设置 Axis2 runtime location为Axis2下载后并解压的核心包的位置:
后Eclipse会自动检测包是否正确。如果successfully提示表示设置正确。
四、搭建eclipe的服务器service环境
1、创建server项目
2、选择Tomcat6.0
3、完成,这个时候我们就可以在eclipse中创建web项目了
五、创建dynamic web project
eclipse本身的dynamic web project类似MyEclipse的web project,如果在MyEclipse里创建dynamic web project的话,需要在创建新项目时,选中Show All Wizards:
和创建其他项目类似,还是从file->new->other->web->dynamic web project,
在Eclipse创建一个 WebProject时, 点击这个WebProject名字-->右键Properties-->Project Facets中可以设置Web Module。
六、服务器端webservice开发
1、eclipse发布WebService
OK,我们现在已经创建了一个WEB工程websercom,现在我们创建一个包com.test.webservice和一个用于测试的java类TestWebSer.java,代码如下
发布webservice
a、 选中WsPerformenceTest.java文件,点击右键,新建一个Web Service,然后Next。
b、上下分别有个滑块,把上面的滑块滑至最上端(为Test service)。把下方滑块滑至第二格(Develop client)表示生成当前服务的客户端代码(完成后会在Eclipse中会自动生成一个名字为:[当前工程名+Client]的工程)。点击下一步直至完成。步骤如图:
这里的Web Service runtime需要选择Apache Axis2。
C、 启动Server,然后下一步。
D、.这些选项一直保持默认值到完成。我们发现Eclipse已经自动生成了一个新的客户端Web工程,还可以看到Web Service Explorer中显示我们刚刚对外公开的test服务,如下图:
当前列出了当前公开服务的方法及参数。当前的唯一方法test有一个InputBean类型的input参数。点击 Add,转到下图:
点击Go按钮。此时下面的 Status(状态窗口)中会显示调用该方法后的结果。点击Source可以浏览到已经被SOAP分装好该服务的XML文件。
显示生成webserviceClient
部署启动Tomcat后客户端显示
产生wsdl 地址 http://localhost:8080/websercon/services/TestWebSer?wsdl
七、webservice客户端开发
在六模块中已经介绍,在生成服务端webservice时直接用eclipse生成webservice客户端。
但是,我们一把在开发的时候,不会用到这种方式,很多时候,我们能够拿到的只是wsdl地址,我们应该怎样做,OK,下面说一下,怎么webservice的客户端的开发,用一个接单的DEMO说明
1、新建一个web工程
建立web工程做法如上:webClientTest工程
2、使用wsdl地址生成客户端代理等。
我们使用刚才建立的wsdl地址的服务器端
3、编辑客户端代码
package com.test.main;
import java.rmi.RemoteException;
import org.junit.Test;
import com.test.webservice.TestWebSerProxy;
public class TestService {
@Test
public void testAddService(){
TestWebSerProxy proxy = new TestWebSerProxy();
String str = null;
try {
str = proxy.add("1","2");
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("test axis webservice method add:" + str);
}
}
3、部署测试就OK了。