- 下载axis2,地址:http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-war.zip
- 解压,将war部署到tomcat中,启动tomcat。访问地址:http://127.0.0.1:8080/axis2,查看是否安装成功。
- 写服务程序。
例子:
在eclipse中,创建一个web工程。添加服务类。
package server;
import com.common.User;
public class MyServer {
?public String getName(String name){
??return name;
?}
?
?public User getUser(User user)
?{
??User u = new User();
??u.setUserName(user.getUserName() + " gilbert wang");
??
??return u;
?}
}
?
在META-INF文件夹下,添加文件,services.xml
<service name="MyService" scope="application">
??? <description>
??????? this is a test
??? </description>
??? <messageReceivers>
??????? <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
???????????????????????? class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
??????? <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
???????????????????????? class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
??? </messageReceivers>
??? <parameter name="ServiceClass">server.MyServer</parameter>
</service>
?
export为jar,重命名为*.aar文件。
?
- 部署服务,打开管理界面,用admin/axis登录。upload*.aar文件,重启tomcat。
- 访问地址:http://127.0.0.1:8080/axis2/,看看我们的服务是否部署好了,里面也可以看到wsdl文件。
- 写客户段程序。下载jar包,http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-bin.zip
例子:
package client;
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
import com.common.User;
public class TestClient {
?@SuppressWarnings("rawtypes")
?public static void main(String[] args) {
??String urlString = "http://127.0.0.1:8080/axis2/services/MyService";
??
??try{
???
???QName qname=new QName("http://server","getUser");
???RPCServiceClient client=new RPCServiceClient();
???Options options = client.getOptions();
???options.setTo(new EndpointReference(urlString));
???
???User u = new User();
???u.setUserName("wanhan!!!");
???Object[] objects = new Object[]{u};
???Class[] clazz = new Class[]{User.class};
???User user = (User)client.invokeBlocking(qname,objects,clazz)[0];
???System.out.println(user.getUserName());
??}catch (Exception e) {
???e.printStackTrace();
??}
?}
}
?
输出:
wanhan!!! gilbert wang
?
?
【注】当然也可以通过axis自动生成客户端程序。
eclipse 插件生成webservice
参考:
http://wenku.baidu.com/view/d2dd75176edb6f1aff001ff1.html
http://wenku.baidu.com/view/a0d47b3fee06eff9aef8071f.html
http://www.cnblogs.com/skyme/archive/2010/10/26/1861110.html