`
yuan_bin1990
  • 浏览: 4424 次
社区版块
存档分类
最新评论

axis2 发布webservice

阅读更多

1.说明:Eclipse版本3.4.2、tomcat版本5.5.12、AXIS2版本1.6.1、 EclipseTomcatPlugin3.2.1准备工作:
下载WAR (Web Archive) Distribution(axis2-1.6.1-war.zip),bin(axis2-1.6.1-bin.zip)

2.下载完后解压至tomcat安装目录下的webapps文件夹下,启动tomcat后,在webapps目录下会生成axis2文件夹。
访问http://localhost:8080/axis2/能 看到以下页面表示axis2运行成功。



3.新建 java  web项目,如项目名为Axis2ServiceDemo,设置编译后的class存入路径为WebContnet/WEB-INF/classes下,在com.dn.service包下建类:HelloFriend,代码如下:
package com.dn.service;

public class HelloFriend {

public String sayHello(String name){
return "hello:"+name;
}

public String saySorry(String name){
return "sorry:"+name;
}
}

4.在WEB-INF下新建web.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="wmf" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <servlet> 
        <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> 
</web-app> 

5.将axis2-1.6.1-war.zip解压后的axis2-web文件夹拷到项目的WebContent下,将conf文件夹,lib文件夹,modules文件夹,services文件夹拷到WebContnet/WEB-INF 下,
6.修改version-1.6.1.arr文件里的services.xml文件,修改后并将原文件替换掉,修改内容如下:
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<serviceGroup>
<service name="Version">
    <description>
        This service is to get the running Axis version
    </description>
    <parameter name="ServiceClass">sample.axisversion.Version</parameter>
    <operation name="getVersion">
    <messageReceiver  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
</service>
<service name="HelloWorld">
    <description>
        This service is to say HelloFriend
    </description>
    <parameter name="ServiceClass">com.dn.service.HelloFriend</parameter>
    <operation name="sayHello">
    <messageReceiver  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="saySorry">
    <messageReceiver  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
</service>
</serviceGroup>


多个service放在serviceGroup标签里,<service name="HelloWorld">此处的name设置的service的名称,<parameter name="ServiceClass">设置要发布service的java类,此例是com.dn.service.HelloWorld ,<operation  name="sayHello"> 此处sayHello为提供给外界调用的方法名,<messageReceiver  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"> 表示有参有回值的方法, <messageReceiver class="org.apache.rpc.receivers.RPCInOnlyMessageReceiver">表示有参没有返回值的方法


7.启动Axis2ServiceDemo后访问http://localhost:8080/Axis2ServiceDemo/services/HelloWorld?wsdl 能看到服务信息 则发布成功

客户端调用webservice

1:解压axis-1.6.1-bin.zip,运行cmd,打开命令窗口,切换到bin目录下,运行 wsdl2java  -uri  http://localhost:8080/Axis2ServiceDemo/services/HelloWorld?wsdl  -p  client  -s  -o  stub  相关参数设置查看wsdl2java命令设置参数,
在项目下新建com.dn.client包,将生成的客户端拷入该包下
客户端测试代码如下:
HelloWorldStub stub=new HelloWorldStub();
HelloWorldStub.SayHello hello=new HelloWorldStub.SayHello();
hello.setName("洪七");
System.out.println(stub.sayHello(hello).get_return());
System.out.println("----------------------------------");
HelloWorldStub.SaySorry sorry=new HelloWorldStub.SaySorry();
sorry.setName("曾江");
System.out.println(stub.saySorry(sorry).get_return());

输出:hello:洪七
--------------------------
sorry:曾江

方式二调用Webservice:导入jar包:commons-discovery-0.2.jar,javaee.jar
String endpoint="http://localhost:8080/Axis2ServiceDemo/services/HelloWorld?wsdl";
Service service=new Service();
Call call=null;
call=(Call)service.createCall();
//new QName("http://service.dn.com","sayHello"),第一个参数为service的targetNamespace值,第二个参数为要调用的方法名
call.setOperationName(new QName("http://service.dn.com","sayHello"));
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.addParameter(new QName("http://service.dn.com", "name"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI(endpoint+"sayHello");
String str=(String)call.invoke(new Object[]{"老玩童"});
System.out.println(str);

注:由于文件大小受限,demo若需正常运行需要加入axis2-1.6.1-war.zip解压后的jar包

 

分享到:
评论

相关推荐

    axis2发布webservice

    Axis2 发布 WebService Axis2 是一个基于 Java 的开源 Web 服务框架,由 Apache 软件基金会开发和维护。Axis2 提供了一个灵活的框架来开发、部署和管理 Web 服务,支持多种协议和数据格式,包括 SOAP、REST、JSON ...

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

    总结起来,使用Axis2发布Web服务和生成客户端代码调用服务是一个标准化的过程,涉及到服务的编写、打包、部署以及客户端的代码生成和调用。了解并熟练掌握这一过程,对进行Java Web服务开发至关重要。在实际开发中,...

    Axis2发布Webservice教程+工具(改良版)

    axis2-1.4.1-war.zip axis2-eclipse-codegen-wizard-1.4.zip axis2-eclipse-service-archiver-wizard-1.4.zip axis2创建webservice.txt(教程链接)

    Eclipse + Axis2发布WebService

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

    AXIS2发布WebService

    本篇文章将深入探讨AXIS2发布Web服务的过程以及相关知识点。 首先,理解AXIS2的基础架构是至关重要的。AXIS2采用了模块化设计,允许开发者根据需求选择不同的模块进行组合。这些模块包括消息引擎、传输层、编码器、...

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

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

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

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

    axis2发布webservice各种方式实例

    本篇文章将深入探讨如何使用Axis2发布Web服务,并特别关注其中的Spring发布方式。 首先,让我们了解基本的Axis2发布Web服务的流程。Axis2提供了两种主要的发布方法:通过XML配置和通过编程方式。XML配置方式通常...

    axis2发布webservice和调用实例

    本文将深入探讨如何使用Axis2发布Web服务以及进行客户端调用,这包括新手教程、详细的说明文档,以及实际操作的实例。 1. **Axis2简介** - Axis2是Apache软件基金会的项目,它是用于构建和部署Web服务的平台,支持...

    Axis2发布Webservice工具+教程

    axis2-1.4.1-war.zip axis2-eclipse-codegen-wizard-1.4.zip axis2-eclipse-service-archiver-wizard-1.4.zip axis2创建webservice.txt

    使用axis2发布WebService简单示例

    本文将深入探讨如何使用Axis2发布一个简单的Web服务,并提供相关知识点。 1. **Web服务基础**: Web服务基于开放标准,如SOAP(Simple Object Access Protocol)和WSDL(Web Services Description Language),...

    axis2例子 webservice axis2 示例

    axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例

    Axis2发布webservice包

    本文将深入探讨使用Axis2发布Web服务包的过程,以及相关的技术要点。 首先,我们要理解什么是Web服务。Web服务是一种基于互联网的软件应用,允许不同系统间的交互和数据交换。它们通过标准的协议(如SOAP、REST)和...

    axis2发布webservice(java)

    本教程将详细讲解如何使用Axis2发布Web服务,并基于提供的"LoginTest"项目进行说明。 首先,让我们理解Web服务的基本概念。Web服务是一种通过互联网进行通信的应用程序,它允许不同的系统之间交换数据。Axis2是...

    Axis2下发布WebService方法

    ### Axis2 下发布 WebService 方法详解 #### 一、WebService 概述 WebService 是一种用于在不同系统之间进行通信的技术,它可以将一个类中的某些方法公开出去,供网络上的任何客户端进行调用。WebService 主要基于...

    axis2实现webservice

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

    webservice发布包axis2

    1. **Apache Axis2**: Axis2是Apache SOAP(Simple Object Access Protocol)项目的第二代实现,用于处理SOAP消息和创建Web服务。它提供了高性能、可扩展性和灵活性,支持多种协议,如HTTP、SMTP、JMS等,并可以处理...

Global site tag (gtag.js) - Google Analytics