本文主要是介绍学习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包(在\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结构)--不能使用
这篇关于学习Axis——即时发布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!