WEBSERVICE入门02:创建web服务

本文主要讲的事基于JWS的web服务的构建

在构建web服务时,必须要声明表明SEI(Service EndPoint Interface,服务提供的接口)和SIB(Service Implementation Bean,服务实现类)

服务端代码的编写:


步骤一:创建服务的接口
package com.wyj.service;

import javax.jws.WebService;

@WebService   //表明是服务发布的接口
public interface IMyservice {
	
	public int add(int a,int b);   
	
	public String sayHi(String name);  
}
步骤二:创建实现类:
package com.wyj.service;

import javax.jws.WebService;

//表明是服务实现类
@WebService(endpointInterface="com.wyj.service.IMyservice")   
public class MyServiceImpl implements IMyservice {

	@Override
	public int add(int a, int b) {
		//完成2个数的加法
		System.out.println("Server: "+a+"+"+b+"="+(a+b));
		return a+b;
	}

	@Override
	public String sayHi(String name) {
		System.out.println("Server: Hi,"+name);
		return "Hi,"+name;
	}

}
步骤三:发布服务:
package com.wyj.service;

import javax.xml.ws.Endpoint;

public class MyServer {

	public static void main(String[] args) {
		String address ="http://localhost:6789/ns";
		Endpoint.publish(address, new MyServiceImpl());
	}

}

其中address表示是服务发布的地址,即服务的URL;
运行MyServer后,在浏览器中输入http://localhost:6789/ns?wsdl就可以访问web服务。返回的结果就是一个xml文档。

客户端代码的编写:


步骤一:生成Web服务客户端的代码
生成WEB服务的客户端的代码,主要用到的是wsimport这个命令。在命令提示符中输入:
wsimport  -d c:/webservice -keep  -verbose http://localhost:6789/ns?wsdl即可在C盘的webservice中得到客户端的代码(前提是在C盘下存在webservice的目录)
wsimport的命令说明:
-d:是指定生成代码的目录
-keep:表示要生成.java的源文件
-verbose:表示要显示生成的详细过程
http://localhost:6789/ns?wsdl:是服务端发布的地址
步骤二:通过客户端调用webservice服务
1.将所有生成的代码导入到新建的一个java项目中
2.创建客户端应用程序
方法一:
package com.wyj.service;

public class MyClient {
	
	public static void main(String[] args) {
		MyServiceImplService myservice = new MyServiceImplService();
		IMyservice service = myservice.getMyServiceImplPort();
		System.out.println(service.add(22, 13));
		System.out.println(service.sayHi("monkey"));
	}
}
方法二:
package com.wyj.service;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class MyClient {
	
	public static void main(String[] args) {
		try {
			//创建访问web服务地址的url
			URL url = new URL("http://localhost:6789/ns?wsdl");
			//通过QName指明服务的具体信息
			QName qname = new QName("http://service.wyj.com/","MyServiceImplService");
			//创建服务
			Service service = Service.create(url,qname);
			IMyservice ms = service.getPort(IMyservice.class);
			System.out.println(ms.add(22, 13));
			System.out.println(ms.sayHi("wyj"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
以上2中方法都可以完成对服务端的调用,但是一般使用第一种,第二种使用太繁琐了。
以上的方法在客户端都会输出:
35
Hi,monkey
在服务端的输出为:
Server: 22+13=35
Server: Hi,monkey
到这里,就完成了客户端调用服务端完成对应操作的过程。

以上就是一个基于jax-ws服务的服务端和客户端的一个简单的编写过程。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值