准备工作
1、下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址:http://axis.apache.org/axis2/java/core/
2、环境变量设置
AXIS2_HOME E:\research\axis2-1.5.4-bin\axis2-1.5.4
JAVA_HOME C:\Program Files\Java\jdk1.6.0_21
3、axis2-1.5.4-war.zip解压,将压缩包内的axis2.war部署到%TOMCAT-HOME%/webapps下,启动tomcat,访问http://localhost:8085/axis2/看是否正常。
点击Service会进入Service列表页面,当前只有一个Version服务。http://localhost:8085/axis2/services/Version?wsdl
4、下载 axis2-eclipse-codegen-plugin-1.5.4.zip,axis2-eclipse-service-plugin-1.5.4.zip 解压后将plugins 复制到 %ECLIPSE_HOME%\plugins。
http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.5.4/axis2-eclipse-codegen-plugin-1.5.4.zip
http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.5.4/axis2-eclipse-service-plugin-1.5.4.zip
安装完插件后,IDE中选择new->other会看到下面界面
如果安装Axis2插件之后,在eclipse中没有出现界面,就换一个eclipse版本
在版本比较新的eclipse中,安装Axis插件,是把jar复制到%ECLIPSE_HOME%\dropins目录下,而不是plugins目录
AXIS2发布Web Services
一、工程文件
1、新建 Axis2Service1 java工程。
2、新建 \Axis2Service1\src\ws\TestWs.java
package ws; public class TestWs { public String showName(String name) {return name; } public String getName() {return "Axis2Service Sample"; } }
二、arr部署方式
1、手动打包
新建\Axis2Service1\deploy文件夹 ,将\Axis2Service1\bin下的class文件复制过来。
新建\Axis2Service1\deploy\META-INF\services.xml文件
<service name="AxisService"> <description>AxisService</description> <parameter name="ServiceClass">ws.TestWs</parameter> <operation name="showName"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="getName"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </operation> </service>
生成aar包 \Axis2Service1\deploy>jar cvf AxisService.aar . (注意带.号)
2、插件打包
IDE中选择New->other->Axis2 Service Archiver,点击Next;
Class File Location:选择Axis2Service1\bin目录,点击Next;
勾选Skip WSDL,点击Next;
Service Archiver 选择jar位置,如果没有jar包就直接点击Next;
勾选Generate the service xml automatically 自动生成XML file文件,点击Next
service name,输入:AxisService,然后在class name 中填写要发布的类(全路径),点击load。勾选 Search declared methods only。点击next
output File location,输入:D:\ ; output File Name,输入artiver文件的名称 AxisService。点击finish。
提示 Service Archvie generated successfully! 注册表明,生成成功。
3、发布AxisService
AxisService.aar复制到%TOMCAT-HOME%/webapps/axis2/WEB-INF/services下。(不打aar包,\Axis2Service1\deploy下面复制过去也是可以)
打开http://localhost:8085/axis2/services/listServices 看到
三、独立部署
1、新建java web project工程。
2、文件复制
%TOMCAT-HOME%\webapps\axis2\WEB-INF\lib 复制到 \Axis2Service2\WebRoot\WEB-INF\lib 下,并加入工程引用。
%TOMCAT-HOME%\webapps\axis2\WEB-INF\conf 复制到 \Axis2Service2\WebRoot\WEB-INF\conf
%TOMCAT-HOME%\webapps\axis2\WEB-INF\modules 复制到 \Axis2Service2\WebRoot\WEB-INF\modules
3、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>
2、新建 \Axis2Service2\src\ws\TestWs.java
package ws; public class TestWs { public String showName(String name) {return name; } public String getName() {return "Axis2Service Sample"; } }
3、新建\Axis2Service2\WebRoot\WEB-INF\services目录。
4、新建一个AxisService服务
AxisService\META-INF\services.xml
<service name="AxisService"> <description>AxisService</description> <parameter name="ServiceClass">ws.TestWs</parameter> <operation name="showName"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="getName"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </operation> </service>
启动tomcat后,访问http://localhost:8085/Axis2Service2/services/AxisService?wsdl看是否正常。
上面的文章转载:http://www.lifeba.org/arch/java_axis2_webservice.html
Axis2客户端调用:
以上面的例子为例,调用代码如下:
package ws; import java.rmi.RemoteException; 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; /** * @Description: TODO * @author luickystar2008 * @date 2013-10-14 下午8:01:17 */ public class TestWs { /** * */ public static void main(String[] args) { try { RPCServiceClient rpcServiceClient = new RPCServiceClient(); Options options = rpcServiceClient.getOptions(); EndpointReference targetEPR = new EndpointReference("http://localhost:8080/Axis2Service2/services/AxisService"); options.setTo(targetEPR); // 1.有参数,有返回值的调用 String callback = (String) rpcServiceClient.invokeBlocking(new QName("http://ws","showName"), new Object[]{"Hello!"},new Class[]{String.class})[0]; System.out.println(callback); // 2.无参数,有返回值的方法调用 Object[] obj = rpcServiceClient.invokeBlocking(new QName("http://ws","getName"), new Object[]{},new Class[]{String.class}); System.out.println(obj[0]); // 3.无参数,无返回值的调用 rpcServiceClient.invokeRobust(new QName("http://ws","hello"), new Object[]{}); } catch (AxisFault e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
下面的文章转载:http://blog.163.com/germans@126/blog/static/2697237420138116318275/
在调用一个无参有返回值的方法时抛出如下异常:
1、
当方法体没有参数返回的时候,我们要采用RPCServiceClient.invokeRobust(QName, new Object[]{..});
当有返回参数的时候采用:RPCServiceClient.invokeBlocking(QName, new Object[]{..},new Class[]{..})
2、services.xml配置中,
<operation name="getHello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<!-- 有返回值 -->
</operation>
<operation name="hello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<!-- 无返回值 -->
</operation>
public String getHello(){return "hello world";}
public String getHello(String name ){return name+" Hello";}
public void hello(String a){ this.a = a;}
相关推荐
总结起来,使用Axis2发布Web服务和生成客户端代码调用服务是一个标准化的过程,涉及到服务的编写、打包、部署以及客户端的代码生成和调用。了解并熟练掌握这一过程,对进行Java Web服务开发至关重要。在实际开发中,...
标题中的“axis2webservice接口例子”指的是使用Apache Axis2框架创建的一个Web服务接口实例。Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个...
- 服务发布后,可以通过Axis2的wsdl2java工具,根据服务的WSDL(Web Service Description Language)文件生成客户端所需的Java类(stubs)。 - 这些类将封装调用Web Service的具体方法,简化了调用流程。 4. **...
AXIS2远程调用WebService是Java开发者在进行分布式服务交互时常用的一种技术。本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这...
标题中的“Axis和WebService配置使用之Hello”表明我们将探讨如何在Java环境中使用Axis库来创建和使用Web服务,实现一个简单的“Hello World”示例。 Axis是一个开源的Java SOAP(简单对象访问协议)工具包,它允许...
Axis2 WebService是一个开源的、基于Java的Web服务框架,由Apache软件基金会开发。它提供了构建和部署Web服务以及处理SOAP消息的强大工具。这个源码包可能是为了帮助开发者深入理解Axis2的工作原理,或者用于自定义...
总结来说,Spring集成Axis2实现Web服务涉及到Spring的IoC容器、服务的创建和发布、以及客户端的调用等多个环节。了解并掌握这些知识点,对于开发高质量的Web服务应用至关重要。在实际项目中,务必确保所有必要的库...
用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
axis2-java2wsdl-1.6.2.jar axis2-kernel-1.6.2.jar axis2-transport-http-1.6.2.jar axis2-transport-local-1.6.2.jar commons-codec-1.3.jar commons-httpclient-3.1.jar commons-logging-1.1.1.jar ...
本文将深入探讨如何使用Axis2发布Web服务以及进行客户端调用,这包括新手教程、详细的说明文档,以及实际操作的实例。 1. **Axis2简介** - Axis2是Apache软件基金会的项目,它是用于构建和部署Web服务的平台,支持...
axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例
axis调用第三方webservice接口所需的jar包,包括axis-1.4.jar,axis-jaxrpc-1.3.jar,axis-jaxrpc-1.4.jar,commons-discovery-0.5.jar,commons-logging-1.2.jar,cxf-rt-databinding-jaxb-3.3.1.jar,javax.mail-...
标题中的“axis发布webservice的步骤”涉及到的是在Java环境中使用Apache Axis库创建并部署Web服务的过程。Apache Axis是开源的Web服务工具包,它允许开发者通过简单的API将Java类暴露为Web服务,或者调用远程Web...
压缩包中包含详细代码以及所用到的jar,是完整可运行的project。当然,需要正确的路径支持才可以运行,本人没有把我所用到的路径贴出,改为本机地址。
标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...
描述了axis2如何发布webservice,如果是用MyEclipse来发布,需要安装插件,把你发布后的.aar文件放 入/web/WEB-INF/services/目录中就能被访问和调用,有点繁琐,但axis2功能十分强大,方法的返回类型不仅可 以用...
5. ** 调用服务**:学习如何使用 Axis2 的客户端API来调用已发布的Web服务,包括同步和异步调用,以及处理返回结果。 6. ** 错误处理和调试**:理解如何处理可能出现的错误,以及如何利用Axis2的调试功能进行问题...
本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注如何精简所需的jar包。 首先,了解Axis2客户端的基本概念是至关重要的。Axis2客户端是用于与远程Web服务交互的工具,它允许开发者通过SOAP...