使用jdk发布一个webService的服务

注意:用jdk_1.6.0_21以后的版本
在JDK1.6中JAX-WS规范定义了如何发布一个webService服务
JAX-WS是指Java Api for XML – WebService
与Web服务相关的类,都位于javax.xml.ws.*包中

主要类有:
(1)@WebService 
它是一个注解,用在类上指定将此类发布成一个webservice服务
 * 类添加上@WebService注解后,类中所有的非静态方法都将会对外公布。
 * 不支持静态方法,final方法。
 * 如果希望某个方法不对外公开,可以在方法上添加@WebMethod(exclude=true),阻止对外公开
 * 如果一个类上,添加了@WebService注解,此类中至少有一个公有的方法,否则将会启动失败
(2)Endpoint 
此类为端点服务类
方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上
Endpoint是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数,
一个是本地的服务地址,二是提供服务的类。它位于javax.xml.ws.*包中

idea中

步骤:第一步:创建一个java项目 wsjdk_client

第二步:新建服务类

@WebService
public class HelloServer {
	public String sayHello(String name){
		return "hello "+name;
	}
	
	//表示此方法不会发布
	@WebMethod(exclude=true)
	public String sayHaha(String name){
		return "哈哈"+ name;
	}
}

第三步:编写TestServer类,进行发布服务
 

public class TestServer {    
    public static void main(String[] args) {        
        //使用静态方法 publish        
        Endpoint.publish("http://localhost:888/hello", new HelloServer());    
    }
}

第四步:测试
打开浏览器,输入:http://localhost/hello?wsdl
查看发布的webservice的wsdl描述

 

附:wsdl文档元素名称修改
@WebService(
        serviceName="helloServers",//服务访问点集合名称
        portName="helloServerPort",//访问端口类型
        name="helloServer",//服务对应的类名
        targetNamespace="xr.hello.com"//名称空间        
)

//返回值的名称@WebResult(name="myResult")
    //@WebParam(name="name")传入的参数名称
    public @WebResult(name="myResult")String sayHello(@WebParam(name="name")String name){
        return "hello "+name;
    }

 

可以在浏览器上输入http://localhost/hello?wsdl查看wsdl描述
http://localhost/hello?xsd=1 查看发布的服务类中的方法描述

可以稍微做复杂一点的:

第一步:服务端
(1)新建Users类
 

public class Users {    
    private Integer id;    
    private String name;    
    //get set方法
}

第二步:服务类
 

@WebService
public class UsersServer {
	List<Users> userList = new ArrayList<Users>();
	public void addUser(Users user){
		userList.add(user);
	}
	public List<Users> getUserList(){
		return userList;
	}
	
}

第三步:发布


	public static void main(String[] args) {
		Endpoint.publish("http://127.0.0.1:808/users", new UsersServer());
	}

查看结果: http://127.0.0.1:8080/users?wsdl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值