学习Axis——即时发布
今天开始学习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包(在axisWEB-INFlib)里面有。建一个包,在包里新建一个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结构)--不能使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |