`
林凡鹤
  • 浏览: 19004 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

项目中集成 axis2 发布webservice(转)

    博客分类:
  • java
阅读更多

在网上找了很多例子,发觉很多都是脱离项目,单独使用axis2包发布webservice接口 
实际开发中,一般都是跟随项目启动之后,自动发布接口 
接下来简单讲解一下 在项目中集成发布axis2  webservice接口 

1.打开axis2.war包,将conf,lib,modules三个文件夹复制到项目的WEB-INF文件夹下 
2.新建一个services文件夹,然后在services文件下新建一个文件夹(任意取名),再新建META-INF文件夹,最后再新增services.xml,接口信息就写在这里面。 
具体路径:WEB-INF/services/myservice/META-INF/services.xml 

3.开发java类 

Java代码  收藏代码
  1. package Axis2Service.service;  
  2. /** 
  3.  * desc:计算俩个数和值的  webservice接口 
  4.  *  
  5.  * @version SVN $Revision: 1.1 $ $Date: 2011/07/12 02:06:49 $ 
  6.  */  
  7. public class Calculate {  
  8.     public Integer sum(Integer num1, Integer num2) {  
  9.         return num1 + num2;  
  10.     }  
  11. }  


4.现在编写services.xml文件 

Java代码  收藏代码
  1. <service name="AxisService">  
  2.     <description>AxisService</description>  
  3.     <parameter name="ServiceClass">  
  4.         Axis2Service.service.Calculate  
  5.     </parameter>  
  6.     <operation name="sum">  
  7.         <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />  
  8.     </operation>  
  9. </service>  



5.修改web.xml 

Java代码  收藏代码
  1. <servlet>  
  2.         <servlet-name>AxisServlet</servlet-name>  
  3.         <servlet-class>  
  4.             org.apache.axis2.transport.http.AxisServlet  
  5.         </servlet-class>  
  6.         <load-on-startup>1</load-on-startup>  
  7.     </servlet>  
  8.     <servlet-mapping>  
  9.         <servlet-name>AxisServlet</servlet-name>  
  10.         <url-pattern>/services/*</url-pattern>  
  11.     </servlet-mapping>  



5.发布项目,然后在地址栏上输入http://localhost:8080/MyAxis/services/AxisService?wsdl,就能看到发布的项目了哦!! 

已上传附件(去除所有jar包),相关axis2的jar包从axis2.war中获得,复制到项目的lib下即可

 

警告:services文件夹和services.xml文件 名字必须为services

 

多个服务  service.xml 的配置内容:

<serviceGroup>

<service name="AxisService">

<description>AxisService</description>

<parameter name="ServiceClass">

Axis2Service.service.Calculate

</parameter>

<operation name="sum">

<messageReceiver

class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />

</operation>

 

 

</service>

 

<service name="AxisService2">

 

<description>AxisService</description>

<parameter name="ServiceClass">

Axis2Service.service.Cc

</parameter>

<operation name="ss">

<messageReceiver

class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />

</operation>

 

</service>

 

 

 

 

</serviceGroup>

 

附调用方式代码:

package Axis2Service.service;

 

import javax.xml.namespace.QName;

import javax.xml.rpc.Call;

 

import org.apache.axiom.om.OMAbstractFactory;

import org.apache.axiom.om.OMElement;

import org.apache.axiom.om.OMFactory;

import org.apache.axiom.om.OMNamespace;

import org.apache.axis2.AxisFault;

import org.apache.axis2.Constants;

import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;

import org.apache.axis2.client.ServiceClient;

import org.apache.axis2.rpc.client.RPCServiceClient;

 

public class Cc {

 

public String ss(String s){

System.out.println(s);

return s;

}

 

 

private static  RPCServiceClient serviceClient;

    /**

     * RPC调用AXIS2 webservice

     * @param endpoint 服务地址 如:http://192.168.0.1:2597/aixs2/services/jqservice?wsdl

     * @param localPart 方法名 如<xs:element name="Receive">

     * @param opArgs 方法参数 如Object[] opArgs = new Object[] { param }; 

     * @param namespaceURI 命名空间 如 :targetNamespace="http://server.test.com.cn">

     * @param opReturnType 返回类型 如字符串:Class[] opReturnType = new Class[] { String[].class };

     */

    public static String axis2RPCInvoke(String endpoint,String localPart,Object[] opArgs,String namespaceURI,Class[] opReturnType)

    {

        Object[] ret = null;

        try

        {

            serviceClient = new RPCServiceClient();

            Options options = serviceClient.getOptions();

            EndpointReference targetEPR = new EndpointReference(endpoint);

            options.setTo(targetEPR);

            QName opQName = new QName(namespaceURI, localPart);

            ret = serviceClient.invokeBlocking(opQName, opArgs, opReturnType);

            System.out.println(((String[]) ret[0])[0]);

        }

        catch (AxisFault e)

        {

            e.printStackTrace();

        }

        return ((String[]) ret[0])[0];

    }

        

        

public static void main(String[] args){

 

String s=axis2RPCInvoke("http://localhost:8080/wt/services/AxisService2?wsdl", "ss", new Object[] {"122"}, "http://service.Axis2Service",  new Class[] { String[].class });

    System.out.println(s);

}

 

 

}

 

 

分享到:
评论

相关推荐

    axis2发布webservice和调用axis2服务接口

    1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...

    Spring集成axis2实现webservice所用到的包

    4. **部署和发布服务**:如果我们要在Spring中发布一个Web服务,可以使用Axis2的`SpringServiceDeployer`。这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试...

    spring集成axis发布webservice源码

    spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码 spring集成axis发布webservice源码

    Eclipse + Axis2发布WebService

    【Eclipse + Axis2 发布 WebService】是一个关于在Eclipse集成开发环境中使用Apache Axis2框架创建并发布Web服务的教程。Apache Axis2是用于构建Web服务和Web服务客户端的高性能、灵活且可扩展的开源框架。以下是...

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

    【描述】:本文将详细介绍如何在项目中集成Axis2和SSH框架,以构建支持事务的WebService。通过本教程,你将了解到如何按照传统的SSH方式编写代码,如何利用Axis2发布WebService,以及如何在一个项目中配置多个...

    axis2实现webservice

    ### Axis2实现WebService知识...通过以上步骤,可以实现一个完整的基于Axis2的WebService应用,包括服务端的发布和客户端的调用。这为开发者提供了一个清晰的指南,帮助他们更好地理解和使用Axis2进行WebService开发。

    axis2+spring webservice

    在集成Axis2和Spring时,通常会使用Spring的ApplicationContext来加载Axis2配置,并将服务组件作为Spring Bean管理。这样,我们可以在Web服务的生命周期中利用Spring的依赖注入(DI)和面向切面编程(AOP)特性。...

    Axis2WebService与Spring的整合

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方式,而Axis2是Apache软件基金会开发的一个流行的Java Web服务框架。Spring框架则是Java企业级应用的事实标准,提供了强大的依赖注入、AOP(面向切面编程)等...

    Java-tomcat-axis2开发webservice返回json数据

    标题“Java-tomcat-axis2开发webservice返回json数据”涉及的是使用Java、Tomcat服务器以及Axis2框架来创建Web服务,并返回JSON格式的数据。这是一个常见的技术组合,用于构建RESTful API或者提供服务化接口。下面...

    Axis2与Spring整合发布多个WebService

    通过以上步骤和最佳实践,开发者可以有效地利用Axis2和Spring框架整合发布多个WebService,同时借助Maven进行项目管理,提高开发效率和代码质量。这为构建复杂、可扩展的企业级Web服务解决方案提供了坚实的基础。

    axis2发布webservice各种方式实例

    1. **XML配置方式**:在Axis2中,你可以通过编写一个服务描述文件(如services.xml)来定义服务。这个文件包含了服务的接口、实现类以及其他相关信息。一旦服务描述文件准备就绪,可以通过 Axis2的命令行工具或者API...

    SpringBoot开发WebService之Axis示例

    2. **添加Axis依赖**:在`pom.xml`文件中,我们需要添加Axis的相关依赖。这包括`axis`, `axis-saaj`, 和 `axis-wsdl4j`等。 3. **创建Web服务接口**:定义一个Java接口,这个接口代表我们的Web服务。接口中定义了将...

    Axis2搭建WebService服务端demo

    在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...

    AXIS2远程调用WebService示例(Eclipse+AXIS2)工具和所用包.rar

    本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这是一个强大的Java开发平台,支持多种开发任务,包括Web服务的开发和调试。 2. ...

    axis 发布webservice的步骤

    标题中的“axis发布webservice的步骤”涉及到的是在Java环境中使用Apache Axis库创建并部署Web服务的过程。Apache Axis是开源的Web服务工具包,它允许开发者通过简单的API将Java类暴露为Web服务,或者调用远程Web...

    axis2开发webservice

    标题 "Axis2 开发 WebService" 指的是使用 Apache Axis2 框架在 Eclipse 集成开发环境中创建和部署 WebService 的过程。Apache Axis2 是一个强大的 WebService 引擎,它提供了高性能、灵活且可扩展的架构,支持多种...

    axis2调用webservice接口jar包

    将"axis2Libs"压缩包中的所有文件导入到项目的类路径中,确保运行时能找到所需的库。 2. **创建Stub**:调用WebService接口通常需要通过Stub(代理类)进行,这可以通过Axis2的wsdl2java工具生成。该工具会根据...

    利用Axis2实现WebService开发与部署

    【描述】:“利用Axis2实现WebService开发与部署-3中方法进行开发” 【标签】:“WebService” 本文将详细讲解如何使用Apache Axis2框架来开发和部署Web Services。Apache Axis2是Java环境中一个功能强大的Web ...

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

Global site tag (gtag.js) - Google Analytics