WebService(二)jdk发布webservice服务

3.jdk发布webservice服务
注意:用Jdk1.6.0_21以后的版本发布一个WebService服务.
说明: 在JDK1.6中JAX-WS规范定义了如何发布一个webService服务。
JAX-WS是指Java Api for XML – WebService.
与Web服务相关的类,都位于javax.xml.ws.*包中。
主要类有:
a)@WebService - 它是一个注解,用在类上指定将此类发布成一个webservice服务.
b)Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。Endpoint是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中。
static Endpoint.publish(String address, Object implementor) 在给定地址处针对指定的实现者对象创建并发布端点。stop方法用于停止服务。
其他注意事项:
1)给类添加上@WebService注解后,类中所有的非静态方法都将会对外公布。不支持静态方法,final方法。
2)如果希望某个方法(非static,非final)不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开。
3)如果一个类上,被添加了@WebService注解,则必须此类至少有一个可以公开的方法,否则将会启动失败。
4)服务类中不能没有方法
5)@WebMethod(exclude=true)屏蔽方法
使用myeclipse查看消息体

4.其他调用webservice的方式
1.使用ajax调用

var xhr;
function invoke(){
if(window.ActiveXObject){
xhr = new ActiveXObject(“Microsoft.XMLHTTP”);
}else{
xhr = new XMLHttpRequest();
}
//指定请求地址
var url = “http://127.0.0.1:7777/hello?wsdl“;
//定义请求类型和地址和异步
xhr.open(“POST”, url, true);
//设置Content-Type
xhr.setRequestHeader(“Content-Type”, “text/xml;charset=UTF-8”);
//指定回调方法
xhr.onreadystatechange = back;

var textVal = document.getElementById("mytext").value;
//组装消息体的数据
var data = ''
+''
+''
+''+textVal+''
+''
+''
+'';
xhr.send(data);

}
function back(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var doc = xhr.responseXML;
alert(doc);
alert(xhr.responseText);
var tag = doc.getElementsByTagName(“return”)[0];
alert(tag)

}

}

}
2.通过URLConnection调用

//创建url地址
URL url = new URL(“http://192.168.1.104:8080/hello“);
//打开连接
URLConnection conn = url.openConnection();
//转换成HttpURL
HttpURLConnection httpConn = (HttpURLConnection) conn;
//打开输入输出的开关
httpConn.setDoInput(true);
httpConn.setDoOutput(true);
//设置请求方式
httpConn.setRequestMethod(“POST”);
//设置请求的头信息
httpConn.setRequestProperty(“Content-type”, “text/xml;charset=UTF-8”);
//拼接请求消息
String data = “

你可能感兴趣的:(WebService)