【webservice】向外提供服务

我们可以接受别人提供的服务,同时,我们也可以自己发送一条服务给别人使用:

首先我们引入webservice相关jar包

然后我们创建一个实体类Phone

package cn.qblank.ws;

public class Phone {
	private String name;//操作系统名
	private String owner;//拥有者 
	private int total;//市场占有率
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getOwner() {
		return owner;
	}
	public void setOwner(String owner) {
		this.owner = owner;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal(int total) {
		this.total = total;
	}
	
	
}

然后我们自己写一个服务类PhoneService,并测试运行

package cn.qblank.ws;

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

@WebService(serviceName = "PhoneManage",  //修改服务名
 targetNamespace = "http://ws.qblank.cn") //修改命名空间,默认包名取反  
public class PhoneService {
	/**
	 * @WebMethod(operationName="getMObileInfo"): 修改方法名
	 * @WebResult(name="phone"):修改返回参数名
	 * @WebParam(name="osName"):修改输入参数名
	 */
	@WebMethod(operationName = "getPhone")
	public @WebResult(name = "phone") Phone getPhone(@WebParam(name="osName") String osName){
		Phone phone=new Phone();
		if(osName.endsWith("android")){
			phone.setName("android");
			phone.setOwner("google");
			phone.setTotal(80);
		}else if(osName.endsWith("ios")){
			phone.setName("ios");
			phone.setOwner("apple");
			phone.setTotal(15);
		}else{
			phone.setName("windows phone");
			phone.setOwner("microsoft");
			phone.setTotal(5);
		}
		return phone;
	}
	
	@WebMethod(exclude=true)	//把该方法排除在外
	public void sayHello(String city){
		System.out.println("你好:"+city);
	}
	
	//测试
	public static void main(String[] args) {
		String address2="http://127.0.0.1:8888/ws/phoneManage";
		/**
		 * 发布webservice服务
		 * 1.address:服务地址
		 * 2.implementor
		 */
		Endpoint.publish(address2, new PhoneService());
		System.out.println("打印地址:" + address2 + "?WSDL");
	}
	
}

开启服务:



然后我们访问该路径即可看到我们提供的服务



然后我们可以测试一下,同样的通过wsimport工具,将xml解析成java文件

wsimport -s ./ -p cn.qblank.wsimport http://127.0.0.1:8888/ws/phoneManage?WSDL

然后我们将生成的java文件拷贝到项目中或者我们也可以打成jar包,以jar包的形式引入然后我们就来测试下我们自己提供的数据是否能被接受到

测试类:

package cn.qblank.client;

import cn.qblank.wsimport.Phone;
import cn.qblank.wsimport.PhoneManage;
import cn.qblank.wsimport.PhoneService;

public class Test {
	public static void main(String[] args) {
		//服务
		PhoneManage ws = new PhoneManage();
		//访问方式
		PhoneService phoneServicePort = ws.getPhoneServicePort();
		Phone phoneInfo = phoneServicePort.getPhone("android");
		System.out.println("手机信息:" + phoneInfo.getName());
		System.out.println("手机拥有者:" + phoneInfo.getOwner());
		System.out.println("手机信息:"+phoneInfo.getTotal());
	}
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值