`

Axis2创建webservice

    博客分类:
  • WEB
阅读更多
最近要提供一个搜索的服务 那天老师就说是用axis 之后我就是一顿百度 gogole 各种陌生英文单词扑面而来 搞了一个多星期终于弄出了点东西

第一次做 之前听说过SOA 不过不是很了解 这次算是有一定认识了

使用的是Axis2作为Web Service开发框架

下载了axis2.war直接放到tomcat的webapp目录下

下载axis2-1.4.rar axis2-std-1.0-bin.zip
配置环境变量(有点多 可能也有很多多余的东西)

引用

%CATALINA_HOME% E:\Tomcat 6.0

AXIS_HOME =%CATALINA_HOME%\webapps\axis2\WEB-INF

AXIS_CLASSPATH %AXIS_LIB%\axis2-ant-plugin-1.4.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.1.1.jar;%AXIS_LIB%\axis2-kernel-1.4.jar

AXIS_LIB %AXIS_HOME%\lib

在classpath中加入%AXIS_HOME%;%AXIS_CLASSPATH%
path中加入%AXIS_HOME%\bin



下面开始做服务端开发 我的步骤有点麻烦 看了看官方文档也没大明白 应该是面向接口开发
然后生成skeleton 在这里写实现代码

我直接写的实现类
BaseOperation.java
DBConnection.java
Fileinfo.java
FileSearchServiceImpl.java
IFileSearchService.java
五个文件 用的数据库是Mysql


META-INF目录下的services.xml内容为
<service name="FileSearch" scope="application" targetNamespace="http://filesearch.hpdfs/">
    <description>
        FileSearchManage Service
    </description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
                         class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
                         class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <schema schemaNamespace="http://filesearch.hpdfs/xsd"/>
    <parameter name="ServiceClass">hpdfs.FileSearchServiceImpl</parameter>
</service>

包结构为FileSerch\hpdfs
                  \META-INF\services.xml

将FileSearch文件夹复制到E:\Tomcat 6.0\webapps\axis2\WEB-INF\services下 或者将文件夹打包成.aar文件

启动tomcat 在浏览器中输入http://localhost:8080/axis2/services/FileSearch?wsdl如果看到有内容则说明此服务部署成功
在地址栏中调用服务中的方法就可以返回相应的xml数据结果

现在来实现客户端

进入E:\axis2-1.4\bin目录 运行
wsdl2java.bat -uri http://localhost:8080/axis2/services/*?wsdl -o F:\ -p Stub
这样就可以将相应地址的wsdl文件生成java文件 不同的参数会生成不同的文件
上述参数设置是生成的FileSearchCallbackHandler.java和FileSearchStub.java两个文件

注意生成的包名为Stub

在客户端工程中建立一个包 Stub 将上述生成的两个文件拷入 编写测试代码

public static void main(String[] args)
	{
		try {
			FileSearchStub stub=new FileSearchStub("http://localhost:8080/axis2/services/FileSearch");
			FileSearchStub.SearchFilebyanyattr request=new FileSearchStub.SearchFilebyanyattr();
			request.setAttrvalue("1");
		
			FileSearchStub.SearchFilebyanyattrResponse response=stub.searchFilebyanyattr(request);
			
			FileSearchStub.Fileinfo[] obj=response.get_return();
			
				for(int i=0;i<obj.length;i++)
					System.out.println(obj[i].getDir());

		} catch (AxisFault e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}

这样就实现了一个提供搜索功能的webservice

实现这个一直挺顺利 传递单个对象也很顺利 不过传递list对象的时候就出问题了 客户端无法解析
在地址栏中输入相应的方法和参数是可以查询出多个对象结果的
问题可能是处在wsdl文件上 不过这个是自动生成的 我试着改了一下 然后用
引用
wsdl2java.bat -uri *?wsdl

的方法来生成客户端 不过还是不行

查了很多资料也不得其解 试了Arraylist还有axis2中的Array都不行
后来更改了服务端代码 不用返回List<>的方式 而是用Fileinfo[]数组的类型
这样在客户端才终于获取到了 终于实现了 吸口气~

客户端的代码做了改变 数组的大小是通过下面方法设置
		int rowcount=0;
		try {
			rs.last();//让游标指向最后
			rowcount=rs.getRow();//获取rs长度
			rs.beforeFirst();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

然后Fileinfo[] fileinfolist=new Fileinfo[rowcount];//初始化数组大小

总之是实现了 webservice算是稍微入了点门了 革命尚未成功 同志仍需努力啊~

ps:axis2中文学习文档http://tech.surfcareer.com/axis2/ug_installtestclient.html




分享到:
评论

相关推荐

    Axis2创建WebService

    Axis2创建WebService

    经典入门:Axis2创建webservice.pdf

    【 Axis2 创建 Web Service 入门教程】 Apache Axis2 是一个功能强大的 Web Service 开发框架,它提供了简单、高效的方法来构建和部署 Web Services。本教程将详细介绍如何使用 Axis2 创建 Web Services,从基础...

    axis2创建webservice

    压缩包中的"axis2创建webservice操作手册.doc"文件,通常会详细讲解上述步骤,并可能包含一些额外的注意事项、最佳实践和常见问题解答。对于初学者来说,这是一个非常有价值的资源,可以帮助理解Axis2的工作原理并...

    使用axis2创建webservice步骤以及客户端调用service服务代码

    使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等

    axis2创建webservice操作手册.doc

    ### axis2创建webservice操作手册知识点详述 #### 1. 引言 ##### 1.1 目的 本文档旨在为初次接触WebService技术的开发者提供一份详细的操作指南,帮助他们了解WebService的基本原理以及如何使用Axis2框架来构建...

    Axis2 创建 webservice 操作手册

    **Axis2创建Web服务操作手册** 在IT行业中,Web服务是一种常见的软件接口,它允许不同系统之间通过网络进行通信和数据交换。Apache Axis2是Java平台上一个强大的Web服务框架,用于构建和部署Web服务。本手册将深入...

    eclipse+tomcat+axis2创建webservice

    本文将介绍如何使用Eclipse集成开发环境、Apache Tomcat服务器和Apache Axis2框架来创建Web服务。Apache Axis2是Web服务的一个强大工具,它提供了更高效、更灵活的服务开发方式。 1. **Apache Axis2简介** Apache ...

    基于axis2实现的webservice简单实现(客户端+服务端)。

    【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...

    Axis2WebService与Spring的整合

    2. **配置Axis2 Configuration Context**: 创建一个配置上下文实例,它将用于加载Axis2的配置信息,如服务档案的位置。可以通过Spring的`AxisConfiguration` bean来完成: ```xml &lt;bean id="axisConfig" class=...

    axis cxf 创建webservice

    #### 使用Eclipse+Axis2创建WebService **步骤1**: 下载Axis2的jar包 - 访问Apache官方网站下载Axis2的jar包,本例使用的是`axis2-1.4.1`版本。 **步骤2**: 配置Eclipse支持Axis2 - 打开Eclipse,选择`Window &gt; ...

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

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

    Axis2创建webservice服务的方式之POJO方式

    Axis2是Apache软件基金会开发的一个高效且灵活的Web服务引擎,它允许开发者用多种方式来创建Web服务,其中一种就是通过POJO(Plain Old Java Object)方式。这篇博文主要探讨了如何使用Axis2通过POJO方式构建Web服务...

    Axis2创建webservice服务的方式 之 ADB 方式(二)

    Axis2是Apache软件基金会开发的一个Web服务引擎,它允许开发者以简单且高效的方式创建和部署Web服务。本篇将详细介绍使用Axis2通过ADB(Abstract Data Binding)方式创建Web服务的方法。 ADB,全称Abstract Data ...

    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(教程链接)

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

    2. **创建WebService**:在Spring中,可以通过定义一个实现了特定接口的类来创建Web服务。这个接口通常对应于服务的WSDL契约,而实现类则包含了实际的服务逻辑。 Axis2提供了`ServiceStub`类,可以帮助我们与服务...

    axis2实现webservice

    ### Axis2实现WebService知识点 #### 一、Axis2简介 - **定义**:Apache Axis2是基于Java的一个开源的WebService框架,它支持多种标准(包括SOAP1.1、SOAP1.2、WS-Addressing等),并且具有轻量级、模块化的特点。...

    axis2+spring webservice

    2. **Spring框架集成**:学习如何使用Spring的`Axis2ServiceBean`或`Axis2WebServiceProxyBean`来声明性地创建和消费Web服务。理解Spring配置文件中如何定义服务和客户端。 3. **服务部署**:熟悉如何在Spring的...

    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

Global site tag (gtag.js) - Google Analytics