这些天稍微玩了一下
Axis,以前做WebServices都使用JBuilder,感觉做WebServices如此简单,现在自己手动做,原来也是如此简单。高兴之余写一个简单的初学手册,就算是学习成果吧。当然对Axis理解的还不很深,所以错误之处望指点。
Axis是一个实现WebService的Framework,Apache Web Services Project(http://ws.apache.org )的一个之项目,现在这个项目有很多之项目 Axis(http://ws.apache.org/axis/ )是其中一员,还有XML-RPC(这个也是我比较喜欢的东东J)。
现在Axis主要由两个版本一个是Axis一个是Axis2。两个好象有比较多的不同,我这里说的是Axis,过几天演技一下Axis2,然后再写一篇吧。
好了现在开始做个WebService 吧:
第一步当然是先去Axis主页下载一个来啦。下Release就行,最新的是1.2.1,source好象没有打包的只有CVS的。下来以后解压缩,主要有以下文件夹
Docs 顾名思义,这里放的是文档,其实Axis的文档作的很好,我就是按照它的User Guide一步步做下来的。
Lib 运行Axis时要用到的jar包,要完全正常运行还缺两个mail.jar activation.jar 这两个是javaMail包,到处都能弄到。
Samples Axis自带的例子包括很多种应用
Webapps Axis是发布到Servlet Container中的,要把Axis集成到你的项目中,就把这个文件夹里的内容合并到你的项目中就行了。
还有一个xmls文件夹,放得是一些可能用到的xml例子。
第二步,建一个项目,Web项目,用Eclipse或者Idea都可以啊。如果你非要用记事本类的东西,我也不拦着你。
把Axis中的Webapps\axis文件夹下的东西统统Copy到你的Web文件夹下。其实有些东西是没用的,比如classes文件夹里的东西都可以去掉了,还有那几个jws文件也没有用。虽然axis最方便的发布WebServices的方法是把你的.java改成.jws的放到Web发布文件夹下的根目录下,但是这种方法没有什么适用价值。然后运行以下Tomcat(或者其他的Application Server)。然后浏览一下你的刚刚发布的这个项目,如果正常的话就可以看到Axis的默认画面,
这个页面不是必须的,在真正项目开发中可以把它去掉或换个名字。点击List连接进入已经发布的WebServices列表。
开始时应该只有AdminService和Version。后面两个就是我们在下面要做的WebServices。
第三步,如果上面的一切正常,就可以正式开始做WebServices了。首先做一个Services实现类。Calc.java有两个方法plus和subtract。这个Service所用到的数据类型都是基本类型。
然后在WEB-INF目录下加入一个server-config.wsdd。这是WebServices的发布描述文件,作用类似于web.xml。它有自己的格式,但是具体的标记是什么样子的,在Axis的文档中没有详细的一一列出,只是提到了常用的一些。在axis的源码中有一些wsdd的XSD文件,如果你用的是IDEA可以把这些XSD映射到uri,这样编辑器就有提示了。
下面这我们本文中的server-config.wsdd的样子:
这个文件比Axis自带的那些deploy.wsdd要多很多东西,在Axis的文档中它使用命令来把对deploy.wsdd进行发布的。在我的例子中是直接把server-config.wsdd写好放到WEB-INF下。所以要把Service上面那些东西加上,否则系统不能正常运行。
是Calc的发布描述。其中scope属性默认是request所以不写也可以。其他parameter看名字就知道干什么的了。这样你在List页面中就可以查看CalcService的WSDL了。
未完待续.......
<service name="CalcService" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="org.mstar.ws.Calc"/>
<parameter name="scope" value="request"/>
</service>
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler" xmlns="http://xml.apache.org/axis/wsdd/">
<globalConfiguration name="defaultClientConfig">
<requestFlow name="RequestFlow1">
<handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<transport name="http">
<requestFlow name="RequestFlow1">
<handler name="Handler1" type="URLMapper"/>
<handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>
<transport name="local">
<responseFlow name="ResponseFlow1">
<handler name="Handler1" type="LocalResponder"/>
</responseFlow>
</transport>
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<service name="CalcService" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="org.mstar.ws.Calc"/>
<parameter name="scope" value="request"/>
</service>
<service name="FooService" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="org.mstar.ws.FooService"/>
<parameter name="scope" value="session"/>
<typeMapping encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://ws.mstar.org"
qname="ns1:FooBean"
languageSpecificType="java:org.mstar.ws.FooBean"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
name="FooBean"/>
<requestFlow name="requestFlow1">
<handler name="Handler1" type="java:org.mstar.ws.FooHandler"/>
</requestFlow>
<responseFlow>
<handler name="Handler1" type="java:org.mstar.ws.FooHandler"/>
</responseFlow>
</service>
</deployment>
public class Calc {
public int plus(int a,int b){
return a+b;
}
public int substract(int a,int b){
return a-b;
}
}
分享到:
相关推荐
axis-jaxrpc-1.4.jar jaxrpc.jar webservice java工具类jar包。
axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,解压即可使用
axis2-idea-plugin-1.7.9
目前axis2最高版本是2.0以上的版本,但是eclipse和myeclipse都不支持,无奈只能使用低版本的插件1.6.3;经实验,可以安装成功; 安装方法:右键解压到当前文件夹,Copy解压的文件到eclipse安装目录dropins下,重启...
共四个文件,都是最先版的,希望可以帮助大家。axis2-eclipse-service-archiver-wizard和axis2-eclipse-codegen-wizard和axis2-1.6.1-bin和axis2-1.6.1-war
axis-bin-1_4.zip axis最新版本
axis2-kernel-1.3.jar axis2-kernel-1.3.jar
webservice 所需的jar包,包括axis.jar axis-saaj-1.4.jar,解压后导入即可
axis-bin-1_4,可用于webservice开发,解析wsdl文件。
axis-1.2.1-7.2.el6.noarch.rpm是centos工具包。
从 axis-src-1_4\axis-1_4\lib 中拷贝 activation.jar 到tomcat\common\lib 下 从 jdk_home(例如:"C:\Program Files\Java\jdk1.5.0")\lib下拷贝 tools.jar 到 tomcat\common\lib下
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
axis1 压缩包axis-bin-1_4.zip, activation.jar已添加到工程的lib目录
axis2-1.6.0-bin和axis2-1.6.0-war相关资源
绝对可以用,里面配有myeclipse10安装AXIS2插件的步骤,希望大家工作愉快,谢谢,给好评哦
axis2-1.6.2-war、axis2-1.6.1-war、axis2-1.6.2-bin
axis2-std-1.0-bin.zip与axis2.war axis2-std-1.0-bin.zip与axis2.war
Axis2-1.6.2-bin和Axis2-1.6.2-war