`
fly_jj
  • 浏览: 3880 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类

学习axis2,简单随笔,看到哪实践到哪,笔记到哪 (pojo----stub)

阅读更多



 

  笑一个
一、环境安装(tomcat,本人5.5):
首先下载到官方网站下载axis2 war包。
将war包复制到webapps目录下边,启动tomcat,服务器加载了war包后会生成axis2目录,跟我们平时的应用目录没神马区别,唯一要注意的是axis的配置文件在WEB-INF\conf,
在开发过程中要修改一下这个的配置文件。

二、(改造配置文件):
配置axis2的文件,axis2支持热部署,意味着你可以再编译好的class文件,直接复制到pojo目录下(默认是pojo,等会有说明修改)。
在配置文件中找到<parameter name="hotdeployment">true</parameter>默认已经为热部署;
另外一个在开发过程中你常需要把热更新打开,默认是false 不打开,找到hotupdate
<parameter name="hotupdate">true</parameter>
发布pojo的目录只是默认的,如果需要使用其他的目录,需要添加配置元素,在axisconfig下面添加
<deployer extension=".class" directory="mymulu" class="org.apache.axis2.deployment.POJODeployer"/>
上面的配置文件只需要修改 directory的属性,改为目录名

二、(使用POJO方式发布webservice):
在pojo目录(此目录没有,在axis2\WEB-INF下面创建,其实细心的同学会发现,在配置文件axis就已经给我们定义了pojo目录,看前面添加发布pojo目录)下面的webservice可以通过重写url去访问(后面带一些参数,类似action),如果遇到数据类型则需要做转换,原因传输过程是以字符串形式传输,而且重写URL的参数名必须要与方法的参数名相同。感觉比较土的方法

好吧说了那么多,现在让我们来个helloworld吧~!!
首先我们先发布一个webservice,
编写一个MyTest类

public class MyTest {
	
	public String getString(String str){
		System.out.println("调用了getString()传入参数"+str);
		return str;
	}
	public void doNoThing(String str){
		System.out.println("调用了doNothing()传入参数:"+str);
	}

}


1.启动你的tomcat,访问这个url:http://127.0.0.1:8080/axis2/ (确保axis2是正常运行了),
2.神马,没改配置文件,好吧,就在%tomcat_home%\webapps\axis2\WEB-INF下面建立一个pojo文件夹。编写好的类编译成class文件后,直接复制到你所指定的目录下。
3.最后访问你的服务吧http://127.0.0.1:8080/axis2/services/MyTest?wsdl


现在开始客户端开发,这里省略了使用axis的API开发客户端,个人觉得这样的开发效率好低吖,新手上手(本人懒的去看那个API),应该快速掌握怎么使用,所以这里介绍stub方式,使用了axis自带的命令,可以根据wsdl生成客户端,在%AXIS2_HOME%\bin目录下有一个wsdl2java脚本(注意是wsdl to java)。
前提准备
下载了axis2 bin 文件,配置环境变量 例如:
变量名:AXIS2_HOME 
值:E:\study\webservice\axis2-1.5.4-bin\axis2-1.5.4

这里要用到前面的发布的webservice,保持你的服务器是启动的,你的服务正常。
打开CMD
输入下面的命令
%AXIS2_HOME%/bin/wsdl2java -uri http://localhost:8080/axis2/services/MyTest?wsdl -p com.lj.mywebservice  -s -o c:/mywebservice

这里说一下参数, -uri 当然是服务的wsdl文件地址,-p 报名 , -o 表示目录,这里写的是绝对路径,也可以写相对路径

回车,你会发现在C盘下多了一个文件目录,打开里边一层层进去后,有一个MyTestStub类,这个类实现非常复杂,不用管他,拿过来直接用。
新建一个工程,写个测试类,把刚才生成的类复制进去,当然别忘记了引入axis的jar包。

package com.lj.myswebservice;

import java.rmi.RemoteException;

import org.apache.axis2.AxisFault;

public class TestClass {
	public static void main(String[] args) {
		
		try {
			MyTestStub my=new MyTestStub();
			//在MYTestStub里边定义了三个静态嵌套类,分别作为参数对象,返回值对象。
			//这里定义了donothing方法的参数对象
			MyTestStub.DoNoThing donothing=new MyTestStub.DoNoThing();
			//这里定义了getstring方法的参数对象
			MyTestStub.GetString getstring=new MyTestStub.GetString();
			////这里定义了getString方法的返回值对象
			MyTestStub.GetStringResponse getstringresponse=new MyTestStub.GetStringResponse();
			//设置参数值
			donothing.setArgs0("神马也不做啊");
			//设置参数值
			getstring.setArgs0("我是帅锅");
			//调用donothing方法
			my.doNoThing(donothing);
			//调用getString发放,设置参数,并返回值
			getstringresponse=my.getString(getstring);
			//打印返回值
			System.out.println(getstringresponse.get_return());
		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}


运行结果如下。
<!--StartFragment -->

 
服务器结果如下。
<!--StartFragment -->



总结,使用axis2构建服务是非常快的,这个例子使用的是deploy pojo的方式发布服务,所谓pojo就是个普通的JAVA类,与javabean区别就是不一定有get set方法(是不是这样理解?)。在客户端调用服务的时候,采取stub方式(貌似现在很流行,这样编写客户端是灰常直观的),只要拿到wsdl文件,就可以使用 wsdl2java命令生成客户端,大大减少了开发量。

还差得远( ⊙ o ⊙ )啊!··明晚再看看别的方式发布鸟··

晚了睡觉了··明天早起上班( ⊙ o ⊙ )啊!···

 

  • 大小: 19.2 KB
  • 大小: 22.5 KB
1
4
分享到:
评论

相关推荐

    axis2c-bin-1.6.0 axis2c-src-1.6.0

    axis2c-bin-1.6.0-linux.tar.gz axis2c-bin-1.6.0-win32.zip axis2c-src-1.6.0.tar.gz axis2c-src-1.6.0.zip 加md5

    axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_

    标题中的"axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_"提到了几个关键元素,分别是"axis2"、"idea-plugin"和"idea导入axis2",这暗示了这个压缩包是用于在IntelliJ IDEA这款集成开发环境...

    axis2-1.5.1-bin.zip axis2-1.5.1-war.zip axis2部署使用

    4. 将AAR文件复制到`axis2-1.5.1-bin.zip`的`repository/services`目录,或在`axis2-1.5.1-war.zip`中将服务部署到Servlet容器。 5. 使用Axis2管理控制台或通过HTTP请求调用部署的服务。 标签中的“axis2-1.5.1-bin...

    axis2.eclipse.codengen.plugin-SNAPSHOT-axis2-eclipse-codege-plugin.zip

    标题中的"axis2.eclipse.codengen.plugin-SNAPSHOT-axis2-eclipse-codegen-plugin.zip"指出这是一个Axis2的Eclipse插件,主要用于代码生成工具。在 Axis2 的开发环境中,此插件扮演着至关重要的角色,它能帮助开发者...

    axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2

    标题中的"axis2-eclipse-codegen-plugin-1.6.2和axis2-eclipse-service-plugin-1.6.2"指的是两个与Apache Axis2相关的Eclipse插件:Axis2代码生成插件和Axis2服务插件,它们是版本1.6.2的。Apache Axis2是一个流行的...

    axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip

    标题中的"axis2-eclipse-codegen-plugin-1.6.2.zip"和"axis2-eclipse-service-plugin-1.6.2.zip"是两个与Apache Axis2相关的Eclipse插件,用于简化Web服务的开发过程。Apache Axis2是Java平台上一个成熟的Web服务...

    axis2-eclipse-service与axis2-eclipse-codegen插件

    目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功; 安装方法:右键解压到当前文件夹,Copy解压的文件到eclipse安装目录dropins下,重启...

    html5-3d-mult-axis-images

    axis-imageshtml5-3d-mult-axis-imageshtml5-3d-mult-axis-imageshtml5-3d-mult-axis-images

    axis2相关的jar包

    axis2-java2wsdl-1.5.4.jar axis2-jaxbri-1.5.4.jar axis2-jaxws-1.5.4.jar axis2-jibx-1.5.4.jar axis2-json-1.5.4.jar axis2-kernel-1.5.4.jar axis2-metadata-1.5.4.jar axis2-mtompolicy-1.5.4.jar axis2-saaj-...

    完整的axis2 jar包包含实例.zip

    axis2 webservice 服务端jar包: --&gt;axis2-kernel-1.6.1.jar --&gt;axis2-spring-1.6.1.jar --&gt;axis2-transport-http-1.6.1.jar --&gt;XmlSchema-1.4.7.jar --&gt;wsdl4j-1.6.2.jar --&gt;axiom-api-1.2.12.jar --&gt;axiom...

    axis2相关jar包~eclipse支持插件包

    1、axis2相关jar包如下: axiom-api-1.2.10.jar axiom-dom-1.2.10.jar axiom-impl-1.2.10.jar axis2-adb-1.5.4.jar axis2-adb-codegen-1.5.4.jar axis2-codegen-1.5.4.jar axis2-corba-1.5.4.jar axis2-fastinfoset-...

    axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...

    axis2-1.6.2

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    axis2-1.6.1

    标题“axis2-1.6.1”指的是Apache Axis2的1.6.1版本,这是一个流行的开源Web服务引擎,用于构建和部署Web服务。Apache Axis2是Axis1的下一代,设计为更灵活、可扩展且高效。在这个版本中,它提供了一系列改进和新...

    axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard

    共四个文件,都是最先版的,希望可以帮助大家。axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard和axis2-1.6.1-bin和axis2-1.6.1-war

    axis2-1.6.2.zip

    axis2-1.6.2.zip, windows axis2工具,根据 WSDL生成java文件。 1、axis2客户端下载地址:http://mirror.esocc.com/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip; 2、下载解压在D:\Work_Program_...

    axis2-1.6.0-bin和axis2-1.6.0-war

    标题中的"axis2-1.6.0-bin"和"axis2-1.6.0-war"指的是Apache Axis2的不同发布版本。Apache Axis2是基于Java的Web服务引擎,它是Apache SOAP项目的下一代产品,用于创建和部署Web服务及处理SOAP消息。 **Apache Axis...

    axis2-1.5.1 bin ,war ;axis2-1.8.2bin,jar

    在计算机技术领域中,Apache Axis2 是一个用于Web服务开发的开源引擎,它允许用户以一种高效且可扩展的方式来部署和管理Web服务。Axis2 是 Apache Software Foundation 的项目之一,是Axis的后继者。它支持SOAP和...

    axis2-1.4.1-bin.zip axis2-1.4.1-war.zip

    标题中的"axis2-1.4.1-bin.zip"和"axis2-1.4.1-war.zip"指的是Apache Axis2的两个不同版本的发行包,分别代表了Axis2的可执行二进制版本和Web应用程序版本。Apache Axis2是一个高度可扩展且功能强大的Web服务引擎,...

    axis-jaxrpc1.4

    标题“axis-jaxrpc1.4”所指的是一款名为Axis的Java XML Web服务框架中的一个组件,即JAX-RPC(Java API for XML-based Remote Procedure Calls)的1.4版本。Axis是Apache软件基金会开发的一个开源项目,主要用于...

Global site tag (gtag.js) - Google Analytics