axis入门

 

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服务

  这个太复杂,不懂,有懂的教我一下咯!

 

你可能感兴趣的:(apache,eclipse,tomcat,Web,webservice)