1、服务器端代码:
public class HelloWorld {
public String getHello(String name) {
return "welcome," + name;
}
}
2、编写services.xml文件:
3、创建文件夹命名为META-INF并把第2步的services.xml文件放在META-INF文件夹中
4、第1步HelloWorld类的路径为:com/yangyb/HelloWorld.class并把META-INF文件夹和com文件夹放在同一目录下ws
5、Dos进入ws并写 jar cvf HelloWorld.arr ./* 之后在ws目录下自动生成HelloWorld.arr文件
6、下载Axis2并把其axis2.war放在Tomcat下的webapps文件夹,启动Tomcat,在其下自动生成axis2文件夹,在浏览器中访问http://localhost:8080/axis2出现成功页面
7、点击成功页面的Services链接,此时页面有Version和HelloWorld,HelloWorld即为新建WebService,点击它转向http://localhost:8080/axis2/services/HelloWorld?wsdl
8、接下来是把wsdl生成客户端jar包,下载ant并配置好ant_home和path环境变量
9、编写build.xml文件
<property environment="env" />
<property name="AXIS2_HOME" value="${env.AXIS2_HOME}"/>
<property name="build.dir" value="build" />
<property name="wsdl.uri.dir" value="${basedir}/wsdl"/>
<property name="service.target" value="build/service"/>
<property name="client.target" value="build/client"/>
<property name="client.src" value="build/client/src"/>
<property name="client.classes" value="build/client/classes"/>
<property name="client.resources" value="build/client/resources"/>
<property name="client.lib" value="build/client/lib"/>
<property name="client.packaged.jar.name" value="hello.jar"/>
<property name="service.target" value="build/service" />
<property name="service.bak" value="build/service/bak" />
<property name="service.src" value="build/service/src" />
<property name="service.classes" value="build/service/classes" />
<property name="service.resources" value="build/service/resources" />
<property name="service.lib" value="build/service/lib" />
<property name="service.packaged.jar.name" value="ws-system-service.jar" />
<property name="service.packaged.aar.name" value="HelloWorld.aar" />
<path id="axis2.classpath">
<fileset dir="${AXIS2_HOME}/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<delete dir="${client.target}" />
<delete dir="${service.target}" />
<mkdir dir="${build.dir}" />
<mkdir dir="${client.target}" />
<mkdir dir="${client.src}" />
<mkdir dir="${client.classes}" />
<mkdir dir="${client.resources}" />
<mkdir dir="${client.lib}" />
<mkdir dir="${service.bak}" />
<mkdir dir="${service.src}" />
<mkdir dir="${service.classes}" />
<mkdir dir="${service.resources}" />
<mkdir dir="${service.lib}" />
</target>
<target name="generate.client" depends="init">
<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true" classpathref="axis2.classpath">
<arg line="-uri http://192.168.77.72:8080/axis2/services/HelloWorld?wsdl" />
<arg line="-s" />
<arg line="-l java" />
<arg line="-p com.yangyb" />
<arg line="-d xmlbeans" />
<arg line="-o ${client.target}" />
</java>
</target>
<target name="compile.client.src" depends="generate.client">
<javac debug="false" memoryMaximumSize="256m" memoryInitialSize="256m" fork="true" destdir="${client.classes}">
<src path="${client.src}"/>
<classpath refid="axis2.classpath"/>
</javac>
</target>
<target name="jar.client" depends="compile.client.src">
<jar destfile="${client.lib}/${client.packaged.jar.name}">
<fileset dir="${client.classes}"/>
<fileset dir="${client.resources}"/>
</jar>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
</project>
10、在build.xml同文件夹中新建bat文件并输入cmd,打开此bat文件输入ant,稍后在同一目录下生成build文件夹,build/client/lib文件夹下的hello.jar即是WebService的客户端Stub
11、把hello.jar加入要引用的项目的lib文件夹中并对其方法访问,访问方式为
public class GG {
public static void main(String[] args) throws RemoteException {
HelloWorldStub hs = new HelloWorldStub();
GetHelloDocument gd = GetHelloDocument.Factory.newInstance();
GetHello gh = gd.addNewGetHello();
gh.setName("yangyb");
GetHelloResponseDocument grd = hs.getHello(gd);
GetHelloResponse gr = grd.getGetHelloResponse();
System.out.println(gr.getReturn());
}
}
在控件台中输出welcome,yangyb
12、至此,成功!