Axis试用小记(-)

1)首先将下载的Axis开发包解压。这将得到axis/webapps/axis目录的整体复制到Tomcat下的Webapps目录下。

2)拷贝activation.jarmail.jaraxis/webappx/axis/WEB-INF/lib目录下。(xmlsec.jar不需要也可以运行)

3)启动Tomcat。访问http://localhost:8080/axis/。单击Validate链接,以测试Axis系统是否遗漏jar文件包。如果一切正常,将显示正确的happyaxis页面。

4)配置CLASSPATH:将axis/webappx/axis/WEB-INF/lib下的所有jar文件加入到你的CLASSPATH中。当然,EclipseIDE中只要配置好工程的类路径就好了。

5)编写用作服务的类。

public class Hello{

    public String sayHello(String name){

        return “Axis say hello to ”+name;

}

}

然后复制Hello.javatomcat/webapps/axis 目录下,更改Hello.javaHello.jws

6)编写客户端程序代码

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;

public class HelloClient {

 

public static void main(String[] args) throws MalformedURLException,
   ServiceException, RemoteException {
  try {
   String endpoint = "
http://localhost:8080/axis/Hello.jws";

   Service service = new Service();
   Call call = null;

   call = (Call) service.createCall();

   call.setOperationName(new QName(endpoint, "sayHello"));
   call.setTargetEndpointAddress(new java.net.URL(endpoint));

   String ret = (String) call.invoke(new Object[] { "jay" });
   System.out.println("return value is: " + ret);
  } catch (Exception ex) {
   ex.printStackTrace();
  }

 }

}

PS

相应文件的下载地址:

Activation.jar

http://java.sun.com/products/javabeans/glasgow/jaf.html

mail.jar

http://java.sun.com/products/javamail/javamail-1_1_3.html

xmlsec.jar

http://apache.linuxforum.net/dist/xml/security/java-library

Axis

http://www.apache.org/dist/ws/axis/1_1/

Tomcat

http://www.apache.org/

调试感觉:

(1)调试好服务器端程序,然后考虑把预将发布的服务变成public(当然,可以通过部署

     文件选择性的部属所提供的服务),最后将服务器端程序拷贝到

     tomcat/webapps/axis下,改名jws。

(2)调试客户端程序:最好的方法是做Stub,这样可以方便的调试客户端

(3)最好将客户端连接的部分单独提炼出来作为一个工具类Utility.java,然后由真正的

     客户端代码负责调用。

(4)当出现服务器端程序调用另外的一个类的时候,将这个类的class文件直接拷贝到Tomcat/webapps/axis/WEB-INF/classes中。

(5)服务器端程序访问数据库时候,需将相应的数据库驱动jar文件拷贝到 Tomcat/webapps/axis/WEB-INF/lib中。(例如将oracle的classes12.jar文件拷贝到lib中,服务器程序才可以正常的访问数据库)。

(6)由于服务器到客户端中间传递的是xml,所以在提供服务的过程中,中间发送的的数据类型非常有限int, boolean, String, double, Date, Hashtable, Vector, byte[]。对于负责数据结构需要自定义<struct>来进行传递。当然解决问题的可以利用xml定义的方法。(篇幅有限。。。)

阅读更多
个人分类: J2EE
上一篇开场白
下一篇由String得到XML中Document对象的一种方法代码
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭