import java.io.FileOutputStream; import java.text.SimpleDateFormat; import java.util.Date; /** * @说明 这个是作为服务端的方法类,不能带有命名空间,方法必须为public */ public class MyAxis2Service { /** * @说明 请求的方法,输出接收到的参数,返回时间戳字符串 */ public String getServiceInit(String name) { System.out.println("you name is :" + name); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return format.format(new Date()); } /** * @说明 下载图像 */ public byte[] dowImageWithByte() { byte[] imageByte = null; try { // 下面的代码调用uploadImageWithByte方法上传图像文件 // 打开图像文件,确定图像文件的大小 java.io.File file = new java.io.File("c:\\test.jpg"); java.io.FileInputStream fis = new java.io.FileInputStream( "c:\\test.jpg"); // 创建保存要上传的图像文件内容的字节数组 imageByte = new byte[(int) file.length()]; fis.read(imageByte); } catch (Exception e) { return null; } finally { } return imageByte; } /** * @说明 上传图像,imageByte参数表示上传图像文件的字节,length参数表示图像文件的字节长度(该参数值可能小于imageByte的数组长度) */ public boolean uploadImageWithByte(byte[] imageByte, int length) { FileOutputStream fos = null; try { // 将上传的图像保存在D盘的test1.jpg文件中 fos = new FileOutputStream("d:\\test1.jpg"); // 开始写入图像文件的字节 fos.write(imageByte, 0, length); fos.close(); } catch (Exception e) { return false; } finally { if (fos != null) { try { fos.close(); } catch (Exception e) { } } } return true; } }
昨天做了使用axis2做客户端的示例,今天来做使用axis2发布自己的服务。首先到官方下载axis2-1.6.1-war.zip,解压后会得到能够在tomcat上部署的war文件,部署后可以在基于该工程的情况下进行我们的服务发布。我的附件中给的工程可以直接部署到tocmat下,由于上传限制,我删除了lib下的所有包,大家可以将下载的包中的jar拷贝到该工程里面,另外还需要拷贝spring.jar。
如果是做接口测试想快速做一个接口以供调用,可以在WEB-INF下创建一个pojo文件夹,然后将自己的类放到该文件夹下面即可完成发布。示例工程里面的MyAxis2Service.class源码是:
其实就是昨天的那个类。访问http://localhost:8080/axis2/,可以看到axis2后台管理页面,点击services进入服务列表。其中version是默认的一个接口。
以上方法固然方便,不过不能定义自己的包路径。下面来做一下包含包路径的pojo发布。
首先定义类:
package service; public class MyService { /** * @说明 接收参数,有返回值 */ public String getGreeting(String name) { return "您好 " + name; } /** * @说明 接收参数,无返回值 */ public void update(String data) { System.out.println("<" + data + ">已经更新"); } }
再定义一个类,为了演示不同的配置方法:
package service; public class MyServiceForGroup { /** * @说明 接收参数,有返回值 */ public String getGreeting2(String name) { return "你真好 " + name; } /** * @说明 接收参数,无返回值 */ public void update2(String data) { System.out.println("<" + data + ">真的已经更新"); } }
下面再定义一个XML配置文件,定义一个services.xml,在里面增加内容:
<serviceGroup><!-- name 属性就是发布 webservice 的访问名称,一个service代表一个服务,每个服务内可包含多个方法 --> <service name="myService"><!-- 描述 --> <description>Web Service</description><!-- 指定服务类 --> <parameter name="ServiceClass">service.MyService</parameter> <!-- 用 operation 指定每一个方法的服务处理器 --><!-- 服务端使用什么样的方式发布WebService,对客户端并没有影响 --> <operation name="getGreeting"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="update"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </operation> </service><!-- 演示多个接口的配置方法 --> <service name="MyServiceForGroup"> <description>Web Service2</description> <parameter name="ServiceClass"> service.MyServiceForGroup </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </messageReceivers> </service> </serviceGroup>
下面在C盘或自己看着办创建一个aws文件夹,里面再创建META-INF和service文件夹,其中service就是你的包路径。将services.xml放到META-INF下,将class文件放到service内。在控制台进入aws文件夹,记住了是文件夹内,然后执行 “jar cvf aws.aar .”,会在该文件夹内生成一个aws.aar文件,将该文件拷贝到apache-tomcat-6.0.16\webapps\axis2\WEB-INF\services文件夹内即可完成发布。命令中的aws.aar是要生成的问价的名称,.是生成路径。
因为大部分项目都是使用Spring的,如果将自己的接口和spring结合,那会是多么的美好呀。下面就来做这样的例子。
提示做该示例时别忘了增加spring.jar包。
首先定义要发布的类:
package service; public class SpringService { public String getGreeting(String name) { return "spring定制,欢迎你: " + name; } }
其次在项目的web.xml中增加spring配置:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
在web.xml同级目录定义自己的spring配置文件applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="springService" class="service.SpringService"></bean> </beans>
同样要定义services.xml,在里面增加内容:
<serviceGroup> <!-- Spring的配置方法 对于Spring的aar打包,WEB-INF\services目录中的.aar包中不需要包含.class --> <service name="springService"> <description>Spring aware</description> <parameter name="ServiceObjectSupplier"> org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier </parameter> <parameter name="SpringBeanName">springService</parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </messageReceivers> </service> </serviceGroup>
下面打包,刚才打包时我们必须把class文件打包在内,使用spring后就不用了。
建立文件夹aws,在里面创建META-INF文件夹,把services.xml拷贝到该文件夹。执行命令打包:“jar cvf aws.aar .”。
但是别忘了,spring使用的类的class文件要拷贝到apache-tomcat-6.0.16\webapps\axis2\WEB-INF\classes\service下面。
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
总结起来,使用Axis2发布Web服务和生成客户端代码调用服务是一个标准化的过程,涉及到服务的编写、打包、部署以及客户端的代码生成和调用。了解并熟练掌握这一过程,对进行Java Web服务开发至关重要。在实际开发中,...
webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例
本文将深入探讨如何使用Axis2发布Web服务以及进行客户端调用,这包括新手教程、详细的说明文档,以及实际操作的实例。 1. **Axis2简介** - Axis2是Apache软件基金会的项目,它是用于构建和部署Web服务的平台,支持...
标题中的“axis2webservice接口例子”指的是使用Apache Axis2框架创建的一个Web服务接口实例。Apache Axis2是Java平台上的一款强大的Web服务开发工具,它提供了高效、灵活且可扩展的环境来构建和部署Web服务。这个...
本教程将引导初学者通过实例了解如何使用 Axis2 开发 Web 服务。 1. **环境搭建** 首先,你需要准备以下工具: - JDK 1.6 或更高版本 - Tomcat 5.0 或更高版本 - MyEclipse 5.0 或其他支持的 IDE - 下载 Axis2...
【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...
eclipse+axis2学习webservice实例,亲测!
**基于Axis2的WebService实例详解** 在Web服务领域, Axis2是Apache软件基金会开发的一个用于构建和部署Web服务的开放源代码平台。它提供了一种高效、灵活且可扩展的框架,使得开发者能够轻松地创建和消费Web服务。...
WebService之Axis2实例是Web服务开发中的一个重要环节,它基于SOAP协议,允许不同平台和语言间的应用程序进行通信。本文将详细介绍Axis2实例的创建、配置和运行,以及如何利用Eclipse IDE、JDK 1.7和Tomcat 7.0进行...
使用axis2技术编写的webservice接口实例,直接放在应用服务器下便可使 用http://localhost:xxxx/axis2/service/来访问WSDL 业务源代码位于\WEB-INF\classes\HelloWorld.java
在描述 "在 Eclipse 上使用 Axis2 编辑 WebService 和发布 WebService" 中,我们可以理解到,开发者将通过 Eclipse 这个流行的 Java IDE 来实现 WebService 的开发工作。Eclipse 提供了 Axis2 插件,使得开发者可以...
为了更好地理解和实践这些步骤,可以参考给定的文档“Eclipse开发Axis_WebService实例总结_20100430.doc”。这个文档通常会包含详细的步骤、截图以及可能遇到的问题和解决方案,对于初学者非常有帮助。 总结,发布...
总而言之,Axis2_WebService_开发指南涵盖了从基础准备到实例演示,再到高级特性的使用,为开发者提供了一套完整的Axis2 WebService开发教程。通过这个指南,开发者可以快速上手Axis2的使用,以及深入理解和应用其在...
综上所述,这个压缩包提供了一整套的Axis2 Web服务解决方案,包括服务端的部署环境和客户端的实例工程,对于理解和实践Web服务技术,特别是Apache Axis2的使用,是非常宝贵的资源。开发者可以通过研究这些文件,深入...
** Axis 实现 WebService 完整实例** 在 IT 领域,Web 服务是一种用于应用程序之间进行通信的标准协议,而 Axis 是一个流行的开源 Java 框架,它允许开发者轻松地创建和部署 Web 服务。本实例将详细介绍如何使用 ...
【 Axis2 创建 Web Service 入门教程】 ...随着对 Axis2 框架的深入理解和实践,你可以构建更复杂的 Web Services,满足各种业务需求。记得保持对 Axis2 更新的关注,以便利用最新特性提高开发效率。
这样,Axis2将在处理请求时使用Spring容器来实例化服务类。 6. **测试Web服务**:通过Axis2提供的内置Web服务器或自定义的HTTP服务器,可以测试Web服务是否正确运行。可以使用WSDL(Web Services Description ...
本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注如何精简所需的jar包。 首先,了解Axis2客户端的基本概念是至关重要的。Axis2客户端是用于与远程Web服务交互的工具,它允许开发者通过SOAP...
AXIS2远程调用WebService是Java开发者在进行分布式服务交互时常用的一种技术。本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这...