Axis试用小记(-)

    技术2022-05-11  130

    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定义的方法。(篇幅有限。。。)


    最新回复(0)