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 是一个基于 Java 的开源 Web 服务框架,由 Apache 软件基金会开发和维护。Axis2 提供了一个灵活的框架来开发、部署和管理 Web 服务,支持多种协议和数据格式,包括 SOAP、REST、JSON ...
总结起来,使用Axis2发布Web服务和生成客户端代码调用服务是一个标准化的过程,涉及到服务的编写、打包、部署以及客户端的代码生成和调用。了解并熟练掌握这一过程,对进行Java Web服务开发至关重要。在实际开发中,...
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集成开发环境中使用Apache Axis2框架创建并发布Web服务的教程。Apache Axis2是用于构建Web服务和Web服务客户端的高性能、灵活且可扩展的开源框架。以下是...
本篇文章将深入探讨AXIS2发布Web服务的过程以及相关知识点。 首先,理解AXIS2的基础架构是至关重要的。AXIS2采用了模块化设计,允许开发者根据需求选择不同的模块进行组合。这些模块包括消息引擎、传输层、编码器、...
4. **部署和发布服务**:如果我们要在Spring中发布一个Web服务,可以使用Axis2的`SpringServiceDeployer`。这需要将服务类和相关的配置文件打包成一个Axis2模块(.aar文件),然后部署到Axis2服务器上。 5. **测试...
标题“Java-tomcat-axis2开发webservice返回json数据”涉及的是使用Java、Tomcat服务器以及Axis2框架来创建Web服务,并返回JSON格式的数据。这是一个常见的技术组合,用于构建RESTful API或者提供服务化接口。下面...
本篇文章将深入探讨如何使用Axis2发布Web服务,并特别关注其中的Spring发布方式。 首先,让我们了解基本的Axis2发布Web服务的流程。Axis2提供了两种主要的发布方法:通过XML配置和通过编程方式。XML配置方式通常...
本文将深入探讨如何使用Axis2发布Web服务以及进行客户端调用,这包括新手教程、详细的说明文档,以及实际操作的实例。 1. **Axis2简介** - Axis2是Apache软件基金会的项目,它是用于构建和部署Web服务的平台,支持...
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发布一个简单的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发布Web服务包的过程,以及相关的技术要点。 首先,我们要理解什么是Web服务。Web服务是一种基于互联网的软件应用,允许不同系统间的交互和数据交换。它们通过标准的协议(如SOAP、REST)和...
本教程将详细讲解如何使用Axis2发布Web服务,并基于提供的"LoginTest"项目进行说明。 首先,让我们理解Web服务的基本概念。Web服务是一种通过互联网进行通信的应用程序,它允许不同的系统之间交换数据。Axis2是...
### Axis2 下发布 WebService 方法详解 #### 一、WebService 概述 WebService 是一种用于在不同系统之间进行通信的技术,它可以将一个类中的某些方法公开出去,供网络上的任何客户端进行调用。WebService 主要基于...
### Axis2实现WebService知识...通过以上步骤,可以实现一个完整的基于Axis2的WebService应用,包括服务端的发布和客户端的调用。这为开发者提供了一个清晰的指南,帮助他们更好地理解和使用Axis2进行WebService开发。
1. **Apache Axis2**: Axis2是Apache SOAP(Simple Object Access Protocol)项目的第二代实现,用于处理SOAP消息和创建Web服务。它提供了高性能、可扩展性和灵活性,支持多种协议,如HTTP、SMTP、JMS等,并可以处理...