`
samsongbest
  • 浏览: 163722 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

axis2集成到自己的项目中demo

 
阅读更多

axis2集成到自己的项目中demo   

2009-06-10 11:50:33 |  分类: java | 字号   订阅

axis2之前只用过jws方式的即时部 署,最近一个项目要搞web service,一搜搜出一堆,发现自己已经太落后了,axis2怎么怎么好,XFire怎么性能高,绑定的方式有adb,xmlbeans,jibx等 等好几种,简直眼花缭乱,废话少说了,折腾了一个星期,总结了一点小经验,给大家少走弯路。一般网上的教程都是下载axis2的war包放到 webapps下,很少有说把axis2集成到自己的web项目中的。经过测试,按以下几步即可:

第一步:下载axis2的war, 放到tomcat下的webapps目录下,启动tomcat,自动解包出 axis2目录。

第 二步:将axis2目录下的关键文件和目录拷贝到自己的项目中。拷贝axis2/web-inf下的所有目录到你自己的web目录的web-inf下面, 除了modules目录(这个没用)。lib下的jar包还是单独拷吧,别覆盖了你的jar包。另外关键的是要修改conf目录下的axis2.xml, 注释掉关于module方面的代码就是addressing的那一行一定要注释掉。

第三步:修改你的web.xml,增加axis2的servelet

<servlet> 
      <display-name>Apache-Axis Servlet</display-name> 
      <servlet-name>AxisServlet</servlet-name> 
      <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> 
      <load-on-startup>1</load-on-startup> 
 </servlet> 
 <servlet-mapping> 
      <servlet-name>AxisServlet</servlet-name> 
      <url-pattern>/services/ *</url-pattern> 
 </servlet-mapping>

第四步:写服务端代码并编译:

package axis2test;

public class AddService {
    public int add(int a,int b)
    {
        return a+b;
    }
}

第 五步:进入web-inf/services目录下,可以看见原来axis2自带的一个version.*.aar, aar其实就是一个jar,改名了而已,用winrar打开他,清空里面的东西,然后把你的class带着目录拷贝进来,再建立一个META-INF目 录,里面放一个services.xml, 这样tomcat启动时候就可以自动部署它了。下面看看services.xml怎么写:

<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
 <service name="NBIService">
  <description>This is the service for revoking certificate.</description>
  <parameter name="ServiceClass" locked="false">oma.nbi.NBIServer</parameter>
  <operation name="sayHello">
   <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
   <actionMapping>urn:sayHelloRequest</actionMapping>
  </operation>
 </service>
</serviceGroup>

这是一种RawXMLINOutMessageReceiver模式的,适用于axiom绑定的架构,我们不用它,用RPC方式:

<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
 <service name="AddService">
  <description>This is the service for revoking certificate.</description>
  <parameter name="ServiceClass" locked="false">axis2test.AddService</parameter>
  <operation name="add">
   <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
  </operation>
 </service>
</serviceGroup>

好了,server端就部署好了,现在启动tomcat,用ie查看wsdl,顺利的话,应该可以看到

http://localhost:8080/你web项目的名字/services/AddService?wsdl 来查看

第六步:

下面写客户端代码:

import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;


public class TestClient {

    public static void main(String[] args) throws AxisFault {
        EndpointReference targetEPR = new EndpointReference(
                "http://localhost/ext2/services/AddService.AddServiceHttpSoap11Endpoint/ ");
        RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getOptions();
        options.setTo(targetEPR);
        String ns = "http://axis2test";// 这里axis2test应该是你的package路径,否则会报错找不到
        QName opAdd = new QName(ns, "add");
        Class[] returnTypes = new Class[]{Integer.class};
        Object[] opAddArgs = new Object[]{"199", "6"};
        Object[] response = serviceClient.invokeBlocking(opAdd,opAddArgs, returnTypes);
        Integer result = (Integer) response[0];
        if (result == null) {
            System.out.println("hello didn't initialize!");
            return;
        }
        System.out.println(result);
       
    }
}

http://localhost:8080/你web项目名字/services/AddService/add?a=5&b=17

,结果得到 :

<ns:return>22</ns:return>

分享到:
评论

相关推荐

    axis2集成到项目

    包含升级所需所有代码与jar包,以及完整的升级说明及测试类,可直接升级到现有项目中,此代码已成功用于现有项目,请放心使用

    axis2和已有web项目集成

    axis2和已有web项目集成方法,axis2和已有web项目集成 axis2.war中的内容作为Web Project的基础, 来进行开发.

    axis2集成到已有项目操作实例(含源代码)

    由于博客不允许上传附件,所以我将源代码分享到这里了,希望初学者能够从中获益,有不明白的可以到此博客进行查看:

    Springboot集成axis1.4的demo

    Spring boot 集成Axis1.4 ,使用wsdd文件发布webservice

    springboot集成axis2-1.7.9实例

    springboot集成axis2-1.7.9部署和调用实例

    Eclipse Axis2 集成插件

    Eclipse 集成apache Axis2 插件,进行webService 开发,

    axis2-demo

    axis2学习demo,一些零散的demo工程,请参照相关文档(博客)进行学习

    axis2_demo

    简单的axis2小应用,为与外部系统通过axis2接口交互的应用测试时提供临时的挡板。

    axis2客户端调用webService的DEMO

    用AXIS2作为客户端调用webService的demo:亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。

    AXIS2作为客户端调用webService的demo

    用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。

    AXIS2 demo 源代码

    花了一个星期搞了AXIS2 发现网上的资料少之胜少, 更有一些人把一篇文章转得支离破碎的,.... 无奈 现在把我写的 service 和client 发上来 ,一个简单的demo 应该可以满足初学者的需求... 项目没有jar 自己去找... ...

    Axis2集成SSH搭建WebService支持事务(图文详解含核心代码)

    今天特意将项目中用Axis2集成SSH实现WebService的过程记录下来,一方面做一下笔记,另一方面,方便广大码农朋友,希望能跟大家交流学习。 本文介绍用Axis2集成SSH搭建WebService。会达到的效果: 1.按照传统我们用...

    myeclipse集成axis2

    myeclipse6.5集成axis2 以及axis2_WebService_开发指南 内含2个jar。。初学者必备!!

    java axis2框架搭建和demo

    java axis2框架搭建和demo,可以直接运行

    Axis2例子Demo

    从网上找了好多DEMO,但是还是跑不起来,偶调试放上来,供大家参考。偶保证可以运行,偶把工程,说明文档,注意事项目都放上了。

    axis2与spring集成

    axis2与spring的集成,在application中配置要发布的Java类,然后配置aar文件,在aar打包文件中的services.xml要嵌入 &lt;parameter name="ServiceObjectSupplier"&gt;org.apache.axis2.extensions.spring.receivers....

    Axis2搭建WebService服务端demo

    Spring+Axis2+Maven搭建WebService服务端demo测试用例

    Axis2集成SSH搭建WebService支持事务

    Axis2集成SSH搭建WebService支持事务,WebService服务还是挺多人用的

    axis2 1.7.4war及已经集成了axis2的web工程

    包含了 axis2 1.7.4版本的war包 也可以自行去 apache官网下载 ,另外还包含一个已经集成了axis2的web工程源码 使用的jdk1.6开发,可以直接把web工程导入到myeclipse,部署到tomcat可运行后,浏览器输入 ...

Global site tag (gtag.js) - Google Analytics