使用Axis创建WebService
1.第一步创建一个web工程,把下载的axis中的lib全部放到myproject/WEB-INF/lib中,
搞一个server-config.wsdd的文件到myproject/WEB-INF/下(网上下载,论坛复制,怎么样都成),还需在myproject/WEB-INF/web.xml文件中配置哈axis,具体内容可以从down下来的axis的webapps中原样复制过来
2.编写deploy.wsdd文件,内容格式如:
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="sayhello" provider="java:RPC">
<!--服务的具体实现类-->
<parameter name="className" value="com.regal.services.SayHello"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3.在已经安装axis的前提下(最简单的方法就是把下载来的axis中lib目录下的所有jar放到%JAVA_HOME%\jre\lib\ext下,执行下面命令就不要那么耗事啦,不推荐使用设置classpath方式),把上述的deploy.wsdd文件存放在文件系统的任意目录下例如:D:\axistest\deploy.wsdd
打开命令行cd 到D:\axistest
1)执行如下命令
java org.apache.axis.client.AdminClient -lhttp://localhost:7070/myproject/services deploy.wsdd
参数说明:
-l url
此时表示在http://localhost:7070/myproject上发布SayHello服务,其实这一过程就是把deploy.wsdd中的内容复制到server-config.wsdd中,言下之意,手动执行复制,那么就可以省略执行这个命令(只是猜测,还没有测试)
2)执行如下命令
java org.apache.axis.wsdl.Java2WSDL -oSayHello.wsdl -lhttp://localhost:7070/myproject/services/sayhello -nhttp://www.showcup.com com.regal.services.SayHello
参数说明:
-o 输出文件
-l url
-n 命名空间(namespace)
紧接着具体的服务实现类
表示从Java文件生成wsdl描述文件
3)执行如下命令
java org.apache.axis.wsdl.WSDL2Java SayHello.wsdl -p com.regal.services.client
参数说明:
-p 指定生成源程序存放的包路径(package)
会在当前目录下生成存放在com.regal.services.client包下的四个客户端调用存根源程序分别是:
SayHello.java
SayHelloService.java
SayHelloServiceLocator.java
SayhelloSoapBindingStub.java
此时可以把这四个文件编译打包发布给客户端调用,当然在客户端调用时还是需要axis中一些jar,最小需要依赖哪些jar还未测试
调用示例代码如下:
SayHelloService service=new SayHelloServiceLocator();
SayHello client=service.getsayhello();
System.out.println(client);
String retVal=client.sayHello("刘德华");
System.out.println(retVal);
大功告成,睡觉先,完假之后就可以按照这个测试发布我人生中的第一个WebService啦!