一、服务端
1、下载axis1.4的jar包
2、创建WebProject
3、将下载的axis1.4下的所有jar导入到项目中
4、修改web.xml文件,这个跟servlet有很多相似的地方,对比着看就行了
<?xml version="1.0" encoding= "UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >
<display-name ></display-name>
<welcome-file-list >
<welcome-file >index.jsp</ welcome-file>
</welcome-file-list >
<servlet >
<display-name>
Apache-Axis Servlet </display-name>
<servlet-name> AxisServlet</servlet-name >
<servlet-class>
org.apache.axis.transport.http.AxisServlet </servlet-class>
</servlet>
<servlet>
<display-name>
Axis Admin Servlet </display-name>
<servlet-name> AdminServlet</servlet-name >
<servlet-class>
org.apache.axis.transport.http.AdminServlet </servlet-class>
<load-on-startup> 100</load-on-startup >
</servlet>
<servlet-mapping>
<servlet-name> AxisServlet</servlet-name >
<url-pattern> /servlet/AxisServlet </url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name> AxisServlet</servlet-name >
<url-pattern> *.jws</url-pattern >
</servlet-mapping>
<servlet-mapping>
<servlet-name> AxisServlet</servlet-name >
<url-pattern> /services/*</url-pattern >
</servlet-mapping>
<servlet-mapping>
<servlet-name> AdminServlet</servlet-name >
<url-pattern> /servlet/AdminServlet </url-pattern>
</servlet-mapping>
</web-app>
5、在src下新建包server并在包下新建类SayHello
package server;
public class SayHello {
public String getName(String name)
{
return "hello " +name;
}
}
6、右键选择项目=》Run As=》Run Configurations...
在左上角选择新建,填写Name,在Main选项卡里会有项目名,Main class里填写org.apache.axis.wsdl.Java2WSDL(Search里也有)
在Arguments选项卡里面,Program arguments里写入
-d -l"http://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello" -o "sayHello.wsdl" server.SayHello
说明一下
-d 这个选项是要生成 deploy.wsdd 和 undeploy.wsdd
-l 这个选项是要生成webService将来要访问的地址,我做了个假设:http://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello
-o 这个选项是要生成wsdl文件,我假设了一个文件名:sayHello.wsdl
server.SayHello 这个就是我们要发布的类,可以更换成你的发布类
-l 这个选项是要生成webService将来要访问的地址,我做了个假设:http://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello
-o 这个选项是要生成wsdl文件,我假设了一个文件名:sayHello.wsdl
server.SayHello 这个就是我们要发布的类,可以更换成你的发布类
Run一下,再刷新你的项目,可以看到多出了server文件夹和sayHello.wsdl文件(一定记着刷新,我测试好几次没成功,最后才发现是没刷新项目)
到此为止,就完成wsdl和deploy.wsdd等文件的自生成
7、下面就要创建server-config.wsdd了,先将系统部署到tomcat里,启动tomcat,把deploy.wsdd文件放到根目录下,这一点我试了很多次,不拿出来,后面操作可能会有问题
8、然后跟上面步骤6一样,右键选择项目,Run As啊啥的,就不一一说了,重点是这次要在Main class里填写org.apache.axis.client.AdminClient
在Arguments选项卡里面,Program arguments里写入
-lhttp://127.0.0.1:8885/Axis1.4_Service_003/services/SayHello deploy.wsdd
再一次Run一下,到tomcat的webapps=》Axis1.4_Service_003=》WEB-INF里看看吧,多了一个server-config.wsdd
你可以将server-config.wsdd拷到你项目的根目录下,重新部署tomcat,再一次启动,在浏览器地址栏里面输入http://localhost:8885/Axis1.4_Service_003/services,其中SayHello就是咱们的webservice了
二、Axis客户端
再试试生成客户端吧,客户端就比那个服务端简单多了
1、新建web Project项目Axis1.4_Client_003(和前面服务端一样的手法)
2、将axis1.4的所有jar导入(也和上面一样)
3、在你的服务端启动的前提下,右键项目,Run As(还是和上面操作一样)
4、这次要在Main class里填写org.apache.axis.wsdl.WSDL2Java(服务器是写的java2wsdl,别混了)
在Arguments选项卡里面,Program arguments里写入
-u http://localhost:8885/Axis1.4_Service_003/services/SayHello?wsdl -o e:/WS003/source
现在,你的E盘下多了WS003文件夹,文件夹里source有了server文件夹
5、将server文件夹整个拷到项目的src文件夹下
6、写个测试吧,导入junit的jar
新建类TestWSClient
package test;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import server.SayHello;
import server.SayHelloService;
import server.SayHelloServiceLocator;
public class TestWSClient extends TestCase {
public TestWSClient(String string) {
super(string);
}
public void SayHelloClient() throws Exception {
SayHelloService service = new SayHelloServiceLocator();
SayHello client = service.getSayHello() ;
String retValue = client.getName("clientname");
System.out.println(retValue);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestWSClient("SayHelloClient"));
return suite;
}
}
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import server.SayHello;
import server.SayHelloService;
import server.SayHelloServiceLocator;
public class TestWSClient extends TestCase {
public TestWSClient(String string) {
super(string);
}
public void SayHelloClient() throws Exception {
SayHelloService service = new SayHelloServiceLocator();
SayHello client = service.getSayHello() ;
String retValue = client.getName("clientname");
System.out.println(retValue);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new TestWSClient("SayHelloClient"));
return suite;
}
}
运行一下,green bar通过!控制台输出hello clientname