webservie的标签详解
1:@WebService(name=“Example”, targetNamespace=“http://www.jsoso.com/wstest”, serviceName=“Example”)
@WebService标签主要将类暴露为WebService,其中targetNamespace属性定义了自己的命名空间,serviceName则定义了< definitions >标签和标签的name属性。
2:@SOAPBinding(style=SOAPBinding.Style.RPC)
@SOAPBinding标签定义了WSDL文档中SOAP的消息协议,其中style属性对应SOAP的文档类型,可选的有RPC和DOCUMENT
3:@WebMethod(operationName=“toSayHello”,action=“sayHello”,exclude=false)
@WebMethod定义Web Service运作的方法,
属性action 对应操作的活动 ,如<soap:operation soapAction=“sayHello” />
属性operationName匹配的wsdl:operation 的名称,如
属性exclude 用于阻止将某一继承方法公开为web服务,默认为false
4:@WebResult(name=“returnWord”)
@ WebResult定义方法返回值得名称,如
5:@WebParam(partName=“person”, mode=Mode.IN
@WebParam定义方法的参数名称,如,其中mode属性表示参数的流向,可选值有IN / OUT / INOUT
- 下面是server端的代码
接口:
package com.jbzhang.ws.jdkserver_tag;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
/**
* @WebMethod:
* 只要你在某接口上添加了@WebService,name在所有的方法上面都会加上@WebMethod
* operationName="sayHello" 改暴露的方法名
* exclude=true 排除方法
* @WebParam(name="name") 改参数名称
* @WebResult(name="ret") 改返回值名称
* @author Administratora
*
*/
@WebService(targetNamespace="http://jbzhang.org")
@SOAPBinding(style=Style.RPC)//默认是document,rpc少了一些类型
public interface HiMyFirstService {
@WebMethod
//String sayHi(String name);
@WebResult(name="ret")String sayHi(@WebParam(name="name")String name);
@WebMethod(operationName="sayHello",exclude=true)
String sayHi1(String name);
}
接口实现类
package com.jbzhang.ws.jdkserver_tag;
import javax.jws.WebService;
/**
* @WebService标识是一个远程服务类
* endpointInterface接口,配置了该属性接口上面也要配置webService
* ,serviceName="helloService", 服务名
portName="helloServicePort", 端口名
targetNamespace="http://yaohuaipeng.org" 限定名,实现类改了接口也要跟着改
* @author Administrator
*
*/
@WebService(
endpointInterface="com.jbzhang.ws.jdkserver_tag.HiMyFirstService"
,serviceName="hiService",
portName="hiServicePort",
targetNamespace="http://jbzhang.org"
)
public class HiMyFirstServiceImpl implements HiMyFirstService {
@Override
public String sayHi(String name) {
// TODO Auto-generated method stub
return name+" Hi My second service!";
}
@Override
public String sayHi1(String name) {
// TODO Auto-generated method stub
return null;
}
}
启动类:
package com.jbzhang.ws.jdkserver_tag;
import javax.xml.ws.Endpoint;
import com.jbzhang.ws.jdkserver.HelloMyFirstServiceImpl;
public class StartServer {
public static void main(String[] args) {
// TODO Auto-generated method stub
String address = "http://192.168.1.11:8888/hi";//发布地址
Object implementor = new HiMyFirstServiceImpl();//发布服务
Endpoint.publish(address, implementor);//异步执行
System.out.println("服务发布成功!");
}
}