1- 环境搭建和测试
将 TOMCAT 和JDK配置好,然后下载apache上的axis1.4 这里有两个版本axis1.4和axis2,我们使用axis1.4
http://www.ip97.com/apache.org/ws/axis/1_4/axis-bin-1_4.zip
解压后将 webapps/axis 这个目录复制到 %tomcathome%/webapps/ 下
然后启动tomcat, 打开URL: http://localhost:8080/axis/
配置成功后将有如下信息,打开 validataion 然后,页面上的信息会告诉你已经有的包和还要差的包,然后根据提示将必须的包 下载全.复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录下
重起tomat ,直到必须的包都装齐.
2- 以上步骤执行成功,可以开发webservice例子了
我使用的ECLIPSE,当然其实在eclipse下并没有用axis的开发插件,只是用来写代码而已
创建一个普通的web工程
将 %tomcathome%/webapps/axis/WEB-INF/web.xml 文件复制到工程中 WEB-INF/下,替换原来的
将 %tomcathome%/webapps/axis/WEB-INF/lib 下的jar包复制到工程下 WEB-INF/lib 下, 要包括 activation.jar 包
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
一、编写DII(Dynamic Invocation Interface )方式web服务
1、编写服务器端程序
public class TestHello {
public String name(String name)
{
return "hello"+name;
}
}
2、将源代码保存到%TOMCAT_HOME%\webapps\axis下,重命名为TestHello.jws
3、访问连接http://localhost:8080/axis/TestHello.jws.jws?wsdl,页面显示Axis自动生成的wsdl
4、编写访问服务的客户端 TestClient.java
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class TestClient {
public static void main(String[] args) {
try {
// 提定service的url
String endpoint = "http://localhost:7000/axis/TestHello.jws";
// 创建一个服务(service)调用call
Service service = new Service();
// 通过service创建一个call
Call call = (Call) service.createCall();
// 设置service所在URL
call.setTargetEndpointAddress(new java.net.URL(endpoint));
// 方法名(processService)与MyService.java方法名保持一致
call.setOperationName("name");
// Object 数组封装了参数,参数为"This is Test!",调用processService(String arg)
String result = (String) call.invoke(new Object[] { "许中友" });
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
二、编写Dynamic Proxy方式访问服务
1、编写部署服务端程序,同上边DII方式,本次仍使用上边部署的TestHello.jws
2、编写代理接口
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface HelloInterface extends Remote {
public String getName(String name) throws RemoteException;
}
3、编写访问客户端的程序
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import java.net.URL;
import javax.xml.namespace.QName;
public class TestHelloInterface {
public static void main(String[] args) {
try {
String wsdlUrl = "http://localhost:7000/axis/TestHello.jws?wsdl";
String nameSpaceUri = "http://localhost:7000/axis/TestHello.jws";
//注意名字要和类名一样
String seviceName = "TestHelloService";
String portName = "TestHello";
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(new URL(wsdlUrl),new QName(nameSpaceUri, seviceName));
HelloInterface proxy = (HelloInterface) service.getPort(new QName(nameSpaceUri, portName),HelloInterface.class);
System.out.println(proxy.name("许中友"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
三、编写wsdd发布web服务,编写stub client访问web服务
这个太复杂,不懂,有懂的教我一下咯!