利用JDK快速发布一个webservice

    最近在做的一个java后台批处理项目中,需要对外部发布服务接口供报表应用等项目调用,最初拿到任务时考虑使用JMX的方式,因为报表系统使用的也是java,但是后来考虑到异构项目所以最后决定使用webservice。

    

package com.think.wade.service;

import java.util.ArrayList;
import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

/**
 * @WebService 定义在类之上,表示将该类发布成一个webservice
 *
*/
@WebService
public class HelloWorld {
	
	//@WebMethod 表示该方法发布访问
	@WebMethod
	public List<String> refreshAccountInfo(){
		List<String> list = new ArrayList<String>();
		list.add("aaaa");
		list.add("bbbb");
		list.add("cccc");
		return list;
	}
	
	//@WebMethod 表示该方法发布访问, exclude为true表示排除该方法
	@WebMethod(exclude=true)
	public String test(){
		return "test";
	}
	
	public static void main(String[] args){
	    //发布webservice的方法,提供服务的地址和端口、提供服务的类实例
	    Endpoint.publish("http://127.0.0.1:11234/helloWord", new HelloWorld());
	}
}

启动运行该类main方法,进行webservice的发布。

启动后在浏览器中输入刚才发布的地址: http://127.0.0.1:11234/helloWord,如果出现以下内容表示发布成功。

095045_FswO_1983430.png

在jdk的bin目录下有个 wsimport.exe 的运行命令,它可以解析webservice服务的描述文件(见浏览器内容),并自动生成响应的java代码,因为wsdl描述文档是标准的,即使是非java语言发布的webservice服务,这里也可以解析并生成java代码。具体命令不做解释。

095742_hTf4_1983430.png

生成之后的结构:

095853_rBF7_1983430.png

其中 HelloWorldService 是调用的客户端入口,该类包含了注解 @WebServiceClient(name = "HelloWorldService") ,

package com.think.wade.client;

import java.util.List;

public class Client {
	public static void main(String[] args){
		//实例化
		HelloWorldService hws = new HelloWorldService();
		
		HelloWorld hw = hws.getHelloWorldPort();
		
		List<String> list = hw.refreshAccountInfo();
		
		System.out.println(list);
	}
}

运行结果:

101254_DiyG_1983430.png

转载于:https://my.oschina.net/u/1983430/blog/550270

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值