加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

axis2 实现webservice

发布时间:2020-12-17 00:21:39 所属栏目:安全 来源:网络整理
导读:下载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工程。添加服务
  • 下载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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读