1下载AXIS(
http://ws.apache.org/axis/)
这边使用axis-bin-1_4.zip
2安装
Web服务器,这边使用tomcat(%TOMCAT_HOME%为tomcat安装目录)
%AXIS_HOME%指axis-bin-1_4.zip将解压后的目录
将%AXIS_HOME%/webapps目录下的axis目录拷贝到%TOMCAT_HOME%webapps目录下然后可以重启tomcat,地址栏输入http://127.0.0.1:8080/axis/访问AXIS引擎,检验安装是否正确
3 第一个webservice(HelloService)
3.1 建立工程目录
HelloService
-src
-test
-java
-lib
-build.xml
拷贝%AXIS_HOME%/lib目录下的所有文件到当前工程的lib目录下
build.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloSerivce" default="all" basedir=".">
<property name="source.level" value="1.4"/>
<property name="src.dir" location="${basedir}/src"/>
<property name="axis.lib" location="${basedir}/lib"/>
<property name="build.dir" location="${basedir}/build"/>
<property name="client.dir" location="${basedir}/client"/>
<property name="generated.dir" location="${client.dir}/generated"/>
<property name="generated.java.dir" location="${generated.dir}/java"/>
<property name="generated.wsdl.dir" location="${generated.dir}/wsdl"/>
<property name="build.classes.dir" location="${build.dir}/classes"/>
<property name="ws.build.classes.dir" location="${client.dir}/classes"/>
<property name="test.dir" location="${basedir}/test"/>
<property name="test.src.dir" location="${test.dir}/java"/>
<property name="test.classes.dir" location="${test.dir}/classes"/>
<property name="tomcat.dir" location="D:/tomcat/jakarta-tomcat-5.0.28"/>
<path id="classpath">
<pathelement location="${build.classes.dir}" />
<fileset dir="${axis.lib}">
<include name="**/*.jar"/>
</fileset>
</path>
<path id="ws.classpath">
<pathelement location="${ws.build.classes.dir}" />
<fileset dir="${axis.lib}">
<include name="**/*.jar"/>
</fileset>
</path>
<path id="test.classpath">
<pathelement location="${test.classes.dir}" />
<pathelement location="${ws.build.classes.dir}" />
<fileset dir="${axis.lib}">
<include name="**/*.jar"/>
</fileset>
</path>
<taskdef name="axis-admin" classname="org.apache.axis.tools.ant.axis.AdminClientTask">
<classpath refid="classpath"/>
</taskdef>
<taskdef name="wsdl2java" classname="org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask">
<classpath refid="classpath"/>
</taskdef>
<taskdef name="java2wsdl" classname="org.apache.axis.tools.ant.wsdl.Java2WsdlAntTask">
<classpath refid="classpath"/>
</taskdef>
<target name="-init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes.dir}"/>
</target>
<target name="-generated-init">
<mkdir dir="${client.dir}"/>
<mkdir dir="${generated.dir}"/>
</target>
<target name="compile" depends="-init">
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" source="${source.level}" compiler="javac${source.level}" debug="on">
<classpath>
<path refid="classpath"/>
<!-- <pathelement location="${ws.build.classes.dir}" />-->
</classpath>
<!-- <exclude name="**/*Test.java" />-->
</javac>
</target>
<target name="ws.compile" depends="w2j">
<mkdir dir="${ws.build.classes.dir}"/>
<javac srcdir="${generated.java.dir}" destdir="${ws.build.classes.dir}" source="${source.level}" compiler="javac${source.level}" debug="on">
<classpath>
<path refid="ws.classpath"/>
</classpath>
<!-- <exclude name="**/*Test.java" />-->
</javac>
</target>
<target name="test.compile" depends="ws.compile">
<mkdir dir="${test.classes.dir}"/>
<javac srcdir="${test.src.dir}" destdir="${test.classes.dir}" source="${source.level}" compiler="javac${source.level}" debug="on">
<classpath>
<path refid="test.classpath"/>
</classpath>
</javac>
</target>
<target name="deploy" depends="compile">
<copy todir="${tomcat.dir}/webapps/axis/WEB-INF/classes">
<fileset dir="${build.classes.dir}">
<exclude name="**/client/**" />
<exclude name="**/*Test.*" />
</fileset>
</copy>
<axis-admin url="http://localhost:8080/axis/servlet/AxisServlet"
xmlfile="${generated.java.dir}/org/jceun/ws/deploy.wsdd"/>
</target>
<target name="undeploy">
<axis-admin url="http://localhost:8080/axis/servlet/AxisServlet"
xmlfile="${generated.java.dir}/org/jceun/ws/undeploy.wsdd"/>
<delete dir="${tomcat.dir}/webapps/axis/WEB-INF/classes" includes="org/jceun/**"/>
</target>
<!--wsdl-->
<target name="j2w" depends="compile,-generated-init">
<echo message="generate the wsdl file from the java file"/>
<mkdir dir="${generated.wsdl.dir}"/>
<java2wsdl classname="org.jceun.ws.HelloSerivce"
porttypename="HelloSVC"
location="http://localhost:8080/axis/services/HelloSVC"
namespace="http://ws.jceun.org"
output="${generated.wsdl.dir}/HelloSVC.wsdl"
style="RPC">
<classpath refid="classpath"/>
<!-- extraclasses="org.jceun.ws.Exception">-->
</java2wsdl>
</target>
<!---->
<target name="w2j" depends="-init,-generated-init">
<echo message="generate the java files from the wsdl file"/>
<mkdir dir="${generated.java.dir}"/>
<wsdl2java url="${generated.wsdl.dir}/HelloSVC.wsdl"
implementationClassName="org.jceun.ws.HelloSerivce"
output="${generated.java.dir}"
deployscope="session"
serverSide="yes"
skeletonDeploy="no"
noimports="no"
verbose="no"
typeMappingVersion="1.1"
testcase="yes">
<!--set the package name, namespace equals targetNamespace of the wsdl files
<mapping namespace="http://127.0.0.1:8080/axis/services/webservice-test" package="samples"/>-->
</wsdl2java>
</target>
<target name="run" depends="test.compile">
<java classname="org.jceun.ws.HelloSVCTest">
<classpath>
<path refid="test.classpath"/>
</classpath>
</java>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${client.dir}"/>
<delete dir="${test.classes.dir}"/>
</target>
</project>
|
3.2 编写服务实现类(HelloService.java)
HelloService.java内容如下
package org.jceun.ws;
public class HelloSerivce
{
public String sayHello(String name){
return "Hello "+name+"! "+new java.util.Date();
}
}
|
3.3 由HelloService.java生成HelloSVC.wsdl
命令行进入到当前工程目录,执行以下命令
>ant j2w
|
3.3 由HelloSVC.wsdl生成客户端文件及部署描述文件(deploy.wsdd,undeploy.wsdd)
命令行进入到当前工程目录,执行以下命令
>ant w2j
|
3.4 部署HelloService
命令行进入到当前工程目录,执行以下命令
>ant deploy
|
3.5 编写测试类
在test/java/org/jceun/ws下新建一HelloSVCTest.java文件
HelloSVCTest.java内容如下:
package org.jceun.ws;
public class HelloSVCTest
{
public static void main(String[] args)
{
try{
HelloSVCService s=new HelloSVCServiceLocator();
HelloSVC hello=s.getHelloSVC();
System.out.println(hello.sayHello("ceun!"));
}catch(Exception e){
System.out.println("fail"+e);
}
}
}
|
3.6 运行测试
命令行进入到当前工程目录,执行以下命令
>ant run
|