webservice入门实例

发布一个'a+b'与'a-b'的服务。

服务部分:

package com.ljfbest.service;
import javax.jws.WebService;
@WebService
public interface IMyService {
	public int  add(int a,int b);
	public int minus(int a,int b);
}

package com.ljfbest.service;
/* 服务接口的实现  */
import javax.jws.WebService;
@WebService(endpointInterface="com.ljfbest.service.IMyService")
public class MyServiceImpl implements IMyService {
	@Override
	public int add(int a, int b) {
		System.out.println(a+"+"+b+"="+(a+b));
		return a+b;
	}
	@Override
	public int minus(int a, int b) {
		System.out.println(a+"-"+b+"="+(a-b));
		return a-b;
	}
}

发布服务:

import javax.xml.ws.Endpoint;
public class MyServer {
	public static void main(String[] args) {
		String address="http://localhost:8089/na";
		Endpoint.publish(address, new MyServiceImpl());//这样就可以发布了,很简单吧
	}
}

简单的测试一下该服务:

URL url=new URL("http://localhost:8089/na?wsdl");
QName sname=new QName("http://service.ljfbest.com/", "MyServiceImplService");
Service service=Service.create( url, sname);
IMyService ms=service.getPort(IMyService.class);
System.out.println(ms.add(2, 3));

服务发布后,在地址栏输入http://localhost:8089/na?wsdl,就可以查看此服务的详细信息,不要忘了在address后还有“?wsdl”,而有了此wsdl客户端就可以调用此服务了。

以上是服务端的项目,接下来客户端的项目,注意下面是另起一个项目。需要用到wsimport

wsimport也是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责 与Web Service 服务器通信,并再将其封装成实例,客户端可以直接使用就像使用本地实例一样。对Java而言,wsimport帮助程序员生成调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。
在写客户端时,需要用到wsimport,在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用Web Service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端。执行下面命令:
wsimport -d e:/ws -keep -verbose http://localhost:8089/na?wsdl
-d: 生成客户端执行类的文件的存放目录
-verbose:  查看生成的详细信息
-keep:生成源代码

把e:/ws下的com文件夹拷到项目中就可以使用服务了,就可直接调用服务的方法了,下图是在客户端生成的代码结构图:

wsimport

MyServiceImplService msis=new MyServiceImplService();

IMyService service=msis.getMyServiceImplPort();
service.add(4, 1);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值