WebService的开发模版(Axis2 1.5环境)
2009-08-04 18:49
260 查看
[align=center]WebService的开发模版(Axis2 1.5环境)[/align]
今天在做apache-cxf-2.2.2整合Spring时候,出现了包版本与JDK1.5包冲突的问题,折腾了不少时间,还是没解决。于是改为Axis2开发,暂时绕过问题,完成任务要紧。
Axis2已经升级到1.5了,下载地址:
http://apache.etoak.com/ws/axis2/1_5/axis2-1.5-bin.zip
http://apache.etoak.com/ws/axis2/1_5/axis2-1.5-war.zip
两个包,bin是开发包,war是部署包,实际上,如果只用jar包,两个里面的jar都一样用。
在IDEA环境下,Axis2的开发环境稍微麻烦些,毕竟没CXF或XFire方便。每次写build.xml脚本也挺麻烦的。这次写个项目模版,方便以后使用。
环境:
axis2-1.5
jdk1.5
idea-8.13
apache-tomcat-6.0.20
ant-1.6以上即可
一、创建项目
使用idea向导创建一个Java项目,项目结构如下图:
testaxis2
├─lib
├─resources
│ └─META-INF
└─src
└─mytest
二、导入axis2的包
解压缩axis2-1.5-bin.zip到一个目录下,然后直接在idea中引入axis2的包即可。也可以讲axis2的包复制到lib下。
三、创建服务
axis2服务的创建过程就是写Java类,不要求有接口,有也不会错。
这里创建一个最简单的Service,作为发布对象。
package mytest;
/**
* 测试Service
*
* @author leizhimin 2009-8-4 15:46:39
*/
public interface MyService {
String doSomething(String taskname);
}
package mytest;
/**
* 测试Service
*
* @author leizhimin 2009-8-4 15:48:13
*/
public class MyServiceImpl implements MyService {
public String doSomething(String taskname) {
System.out.println("MyServiceImpl is calling doSomething with " + taskname + "!");
return taskname + "is finished!";
}
}
四、描述服务
在项目的resources\META-INF文件夹下面,创建services.xml,内容如下:
<service name="myws" scope="application" targetNamespace="http://lavasoft.blog.51cto.com/">
<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://lavasoft.blog.51cto.com/xsd"/>
<parameter name="ServiceClass">mytest.MyServiceImpl</parameter>
</service>
服务名:myws
命名空间:http://lavasoft.blog.51cto.com
服务实现类:mytest.MyServiceImpl
五、编写构建脚本
用Ant编写build.xml,放到项目根文件夹下。
<?xml version="1.0" encoding="UTF-8"?>
<project name="ccmws" basedir="." default="generate.service">
<property environment="env"/>
<property name="AXIS2_HOME" value="F:/axis2-1.5"/>
<property name="wsdl.uri" value="./build/myws.wsdl"/>
<property name="build.dir" value="build"/>
<path id="axis2.classpath">
<fileset dir="${AXIS2_HOME}/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="compile.service">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir}/classes"/>
<javac debug="on"
fork="true"
encoding="UTF-8"
destdir="${build.dir}/classes"
srcdir="${basedir}/src"
extdirs="**/test/**"
classpathref="axis2.classpath">
</javac>
</target>
<target name="generate.wsdl" depends="compile.service">
<taskdef name="java2wsdl"
classname="org.apache.ws.java2wsdl.Java2WSDLTask"
classpathref="axis2.classpath"/>
<java2wsdl className="mytest.MyServiceImpl"
outputLocation="${build.dir}"
targetNamespace="http://lavasoft.blog.51cto.com/"
schemaTargetNamespace="http://lavasoft.blog.51cto.com/xsd">
<classpath>
<pathelement path="${axis2.classpath}"/>
<pathelement location="${build.dir}/classes"/>
</classpath>
</java2wsdl>
</target>
<target name="generate.service" depends="compile.service">
<copy toDir="${build.dir}/classes" failonerror="false">
<fileset dir="${basedir}/resources">
<include name="**/*.xml"/>
</fileset>
</copy>
<jar destfile="${build.dir}/myws.aar">
<fileset excludes="**/Test.class" dir="${build.dir}/classes"/>
<fileset includes="lib/*.jar" dir="${basedir}"/>
</jar>
</target>
<target name="clean">
<delete dir="${build.dir}" />
</target>
</project>
注意设定一些环境参数,Axis2的目录、发布服务的aar包名字,生成wsdl时候所用的服务实现类,以及命名空间等等。
六、运行build脚本打包
运行后:
七、部署服务
将下载的axis2-1.5-war.zip解开,得到一个axis2.war,将其解压缩到tomcat的默认的web发布目录webapp下面,比如,在我机器上会产生C:\apache-tomcat-6.0.20\webapps\axis2的目录,目录下面就是axis2.war里面的内容。
然后,将生成的my.aar复制到C:\apache-tomcat-6.0.20\webapps\axis2\WEB-INF\services下面。
八、启动tomcat,查看发布服务
浏览axis2的服务
点Services,查看所有的服务
在点击服务连接,就可以查看wsdl了:
经过这样的测试后,服务发布算成功了。
本文出自 “熔 岩” 博客,谢绝转载!
今天在做apache-cxf-2.2.2整合Spring时候,出现了包版本与JDK1.5包冲突的问题,折腾了不少时间,还是没解决。于是改为Axis2开发,暂时绕过问题,完成任务要紧。
Axis2已经升级到1.5了,下载地址:
http://apache.etoak.com/ws/axis2/1_5/axis2-1.5-bin.zip
http://apache.etoak.com/ws/axis2/1_5/axis2-1.5-war.zip
两个包,bin是开发包,war是部署包,实际上,如果只用jar包,两个里面的jar都一样用。
在IDEA环境下,Axis2的开发环境稍微麻烦些,毕竟没CXF或XFire方便。每次写build.xml脚本也挺麻烦的。这次写个项目模版,方便以后使用。
环境:
axis2-1.5
jdk1.5
idea-8.13
apache-tomcat-6.0.20
ant-1.6以上即可
一、创建项目
使用idea向导创建一个Java项目,项目结构如下图:
testaxis2
├─lib
├─resources
│ └─META-INF
└─src
└─mytest
二、导入axis2的包
解压缩axis2-1.5-bin.zip到一个目录下,然后直接在idea中引入axis2的包即可。也可以讲axis2的包复制到lib下。
三、创建服务
axis2服务的创建过程就是写Java类,不要求有接口,有也不会错。
这里创建一个最简单的Service,作为发布对象。
package mytest;
/**
* 测试Service
*
* @author leizhimin 2009-8-4 15:46:39
*/
public interface MyService {
String doSomething(String taskname);
}
package mytest;
/**
* 测试Service
*
* @author leizhimin 2009-8-4 15:48:13
*/
public class MyServiceImpl implements MyService {
public String doSomething(String taskname) {
System.out.println("MyServiceImpl is calling doSomething with " + taskname + "!");
return taskname + "is finished!";
}
}
四、描述服务
在项目的resources\META-INF文件夹下面,创建services.xml,内容如下:
<service name="myws" scope="application" targetNamespace="http://lavasoft.blog.51cto.com/">
<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://lavasoft.blog.51cto.com/xsd"/>
<parameter name="ServiceClass">mytest.MyServiceImpl</parameter>
</service>
服务名:myws
命名空间:http://lavasoft.blog.51cto.com
服务实现类:mytest.MyServiceImpl
五、编写构建脚本
用Ant编写build.xml,放到项目根文件夹下。
<?xml version="1.0" encoding="UTF-8"?>
<project name="ccmws" basedir="." default="generate.service">
<property environment="env"/>
<property name="AXIS2_HOME" value="F:/axis2-1.5"/>
<property name="wsdl.uri" value="./build/myws.wsdl"/>
<property name="build.dir" value="build"/>
<path id="axis2.classpath">
<fileset dir="${AXIS2_HOME}/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="./lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="compile.service">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir}/classes"/>
<javac debug="on"
fork="true"
encoding="UTF-8"
destdir="${build.dir}/classes"
srcdir="${basedir}/src"
extdirs="**/test/**"
classpathref="axis2.classpath">
</javac>
</target>
<target name="generate.wsdl" depends="compile.service">
<taskdef name="java2wsdl"
classname="org.apache.ws.java2wsdl.Java2WSDLTask"
classpathref="axis2.classpath"/>
<java2wsdl className="mytest.MyServiceImpl"
outputLocation="${build.dir}"
targetNamespace="http://lavasoft.blog.51cto.com/"
schemaTargetNamespace="http://lavasoft.blog.51cto.com/xsd">
<classpath>
<pathelement path="${axis2.classpath}"/>
<pathelement location="${build.dir}/classes"/>
</classpath>
</java2wsdl>
</target>
<target name="generate.service" depends="compile.service">
<copy toDir="${build.dir}/classes" failonerror="false">
<fileset dir="${basedir}/resources">
<include name="**/*.xml"/>
</fileset>
</copy>
<jar destfile="${build.dir}/myws.aar">
<fileset excludes="**/Test.class" dir="${build.dir}/classes"/>
<fileset includes="lib/*.jar" dir="${basedir}"/>
</jar>
</target>
<target name="clean">
<delete dir="${build.dir}" />
</target>
</project>
注意设定一些环境参数,Axis2的目录、发布服务的aar包名字,生成wsdl时候所用的服务实现类,以及命名空间等等。
六、运行build脚本打包
运行后:
七、部署服务
将下载的axis2-1.5-war.zip解开,得到一个axis2.war,将其解压缩到tomcat的默认的web发布目录webapp下面,比如,在我机器上会产生C:\apache-tomcat-6.0.20\webapps\axis2的目录,目录下面就是axis2.war里面的内容。
然后,将生成的my.aar复制到C:\apache-tomcat-6.0.20\webapps\axis2\WEB-INF\services下面。
八、启动tomcat,查看发布服务
浏览axis2的服务
点Services,查看所有的服务
在点击服务连接,就可以查看wsdl了:
经过这样的测试后,服务发布算成功了。
本文出自 “熔 岩” 博客,谢绝转载!
相关文章推荐
- WebService的开发模版(Axis2 1.5环境)
- eclipse+webservice开发实例【开发环境jdk1.7.0_67+eclipse-jee-luna+tomcat6.0.30+axis2-1.6.1(此为webservice的jar包)】
- WebService客户端开发(Axis2 1.5)
- Axis2 webservice入门--开发环境搭建,概念理解
- Axis2开发webservice详解
- 不使用VS.NET集成开发环境,调用微软的WebService注册服务
- 【转】基于Axis2开发WebService
- 【整合】JDK6 + ECLIPSE3.4.2 + TOMCAT6.0.24 + AXIS2_1.4.1 开发环境的搭建
- iphone开发笔记四 webservice环境配置cxf使用
- Axis2开发webservice的方式
- axis2 webService开发
- axis2开发webservice之编写Axis2模块(Module)
- AXIS2 开发WebService
- myeclipse开发webservice的时候,加载axis2失败的解决方法
- 使用Axis2开发webservice服务端接口+axis开发的客户端调用
- 【整合】JDK6 + Eclipse3.4.2 + Tomcat6.0.24 + Axis2_1.4.1 开发环境的搭建
- Axis2开发webservice详解
- 使用Axis2开发WebService
- 利用Axis2开发WebService(2)---编写和发布WebService
- 利用Axis2开发WebService(7)---使用Axis2开发总结