学习Axis——即时发布

来源:互联网 发布:k60单片机百度百科 编辑:程序博客网 时间:2024/05/01 19:40

今天开始学习webservice,webservice主要有axis(或axis2)、XFire和CXF这三种框架。现在开始学习axis。

即时发布的手段:

先下载axis1.4.rar,地址为:http://pan.baidu.com/share/link?shareid=669784307&uk=2365951750

把这个压缩包解压到tomcat的webapps目录中,启动tomcat,就可以在浏览器里面输入地址:http://localhost:8089/axis/  端口号根据自己的来修改

显示为:

编写一段简单的java代码:Hello.java

public class Hello{

       //定制一个服务:方法

       publicString test(String a,String b){

              Stringresult = "a=" + a + "b= " + b ;

              return"server response ok,you send " + result ;

       }

}

直接把Hello.java的后缀名改为jws,也就是Hello.jws,把这个文件放到axis目录中。

重启tomcat。刷新页面,输入地址:http://localhost:8089/axis/Hello.jws,也就是在后面加上Hello.jws而已。出现如下画面:


也就是这个方法的wsdl文件了

现在可以编辑客户端代码引用这个方法了。

在myeclipse里面新建一个java项目,导入axis相关jar包(在\axis\WEB-INF\lib)里面有。建一个包,在包里新建一个java类:ClientJWS.java

代码如下:

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

 

publicclassClientJWS {

 

   publicstaticvoid main(String[] args) {

     try{

        //定义字符串,描述要访问服务的地址

        Stringurl ="http://localhost:8089/axis/Hello.jws" ;

        //创建一个Web Service服务

        Serviceservice =newService() ;

        //创建一个调用

        Callcall = (Call) service.createCall() ;

        //指定服务的来源

        call.setTargetEndpointAddress(url);

        //指明调用的具体方法名

        call.setOperationName(new QName(url,"test")) ;

        //执行远端的调用

        Stringresult = (String) call.invoke(new Object[]{"Student","Teacher"});

        System.out.println(result);

     }catch(Exception e){

        e.printStackTrace();

     }

   }

}

 

包里新执行这个程序,就会在控制台上打印如下语句:

- Unable to find requiredclasses (javax.activation.DataHandler and javax.mail.internet.MimeMultipart).Attachment support is disabled.

server response ok,you send a=Studentb=Teacher

 

总结:

即时发布

       1、编写java代码:定制服务(编写类--方法)

       2、修改文件的后缀为jws

       3、发布web service服务

       4、编写客户端

注意(缺点):如果没有java源码(只有class/jar/程序存在package结构)--不能使用