加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

MyEclispe基于JAX-WS的WebService服务端客户端简单实现示例

发布时间:2020-12-17 00:25:37 所属栏目:安全 来源:网络整理
导读:??? 最近项目中需要用到WebService向其他开发人员提供接口,之前对WebService只是简单了解,没有具体实现过,在网上参考了许多示例,感觉不是特别详细,出了不少问题,因此感觉WebService实现起来挺麻烦的。刚好这两天不是太忙,抽空又研究了一下WebService

??? 最近项目中需要用到WebService向其他开发人员提供接口,之前对WebService只是简单了解,没有具体实现过,在网上参考了许多示例,感觉不是特别详细,出了不少问题,因此感觉WebService实现起来挺麻烦的。刚好这两天不是太忙,抽空又研究了一下WebService服务端与客户端的实现,现在总结一下,希望对初学者有所帮助。

??? 首先说明一下开发环境:Windows 7 Ultimate + JDK1.6.25 + Tomcat 6.0.18 + MyEclipse 6.5 Enterprise。

具体操作步骤:

1.新建工程ProjectWS,如图:

2.新建包:com.project.ws.client;com.project.ws.server;com.project.wsutil.iface;com.project.wsutil.imp;如图:

3.在iface包中创建接口IServer,代码如下:

package com.project.wsutil.iface;

public interface IServer {

	public String getMD5ForString(String str);//获取字符串MD5值
	public String caculateForInt(int iNum1,int iNum2,int iType);//两个整型数字运算
	
}

4.在imp包中创建类Server并实现接口IServer,代码如下:

package com.project.wsutil.imp;

import java.security.MessageDigest;

import com.project.wsutil.iface.IServer;

public class Server implements IServer {

	/**
	 * 两个整型数的四则运算
	 */
	public String caculateForInt(int num1,int num2,int type) {
		int result = 0;
		try{
			switch(type){
			case 1:
				result = num1 + num2;//加
				break;
			case 2:
				result = num1 - num2;//减
				break;
			case 3:
				result = num1 * num2;//乘
				break;
			case 4:
				if(num2==0){//除
					return "除数不能为0!";
				}else{
					result = num1 / num2;
					break;
				}
			default:
				return "请正确指定运算类型!";
		    }
		}catch(Exception e){
			return "运算发生异常:"+e.getMessage();
		}
		return String.valueOf(result);
	}

	/**
	 * 获取字符串MD5值
	 */
	public String getMD5ForString(String str) {
		char hexDigits[] = { '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };
		try {
			byte[] strByte = str.getBytes();
			MessageDigest digest = MessageDigest.getInstance("MD5");
			digest.update(strByte);
			byte[] digestByteArray = digest.digest();
			int length = digestByteArray.length;
			char array[] = new char[length * 2];
			int index = 0;
			for (int i = 0; i < length; i++) {
				byte _byte = digestByteArray[i];
				array[index++] = hexDigits[_byte >>> 4 & 0xf];
				array[index++] = hexDigits[_byte & 0xf];
			}
			return new String(array);
		} catch (Exception e) {
			return "获取字符串【"+str+"】MD5值异常:"+e.getMessage();
		}
	}

}

?

5.右键src,选择new — Other,然后选择WebService,如图:

6.单击下一步,如图:

7.指定接口实现类com.project.wsutil.Server.java,如图:

8.右键工程,选择Properties,左侧选择“Java Build Path”,然后选择“Libraries”选项卡,如图:

?

点击“Add Library”按钮,打开如图对话框,

?

选择“MyEclipse Libraries”,单击“Next”,如图,勾选JAX-WS两个选项,然后单击Finish,最后单击“OK”关闭对话框。

9.如图,展开项目,找到WEB-INF目录下的WSDL文件并打开:

10.将工程部署到Tomcat下,并启动Tomcat,访问地址:http://localhost:8080/ProjectWS/WSServerPort?wsdl,出现如下图界面,说明创建成功(此处为何访问WSServerPort而不是WSServerService有点疑惑,还望知道的朋友给点提示)。

11.右键Src,选择new — Other,然后选择WebService Client,如图:

12.单击下一步,如图,选择JAX-WS:

13.单击“Next”,如图,拷贝WSDL访问路径,并制定所生成客户端的包路径:

14.单击“Next”按钮,如图(注:如果出现警告或错误提示等,请忽略),最后单击Finish。

15.创建测试类com.project.test.Test.java,代码如下:

package com.project.test;

import com.project.ws.client.WSServerService;

public class Test {

	public static void main(String[] args){
		WSServerService service = new WSServerService();
		String md5 = service.getWSServerPort().getMD5ForString("WebService");
		String result = service.getWSServerPort().caculateForInt(25,3,3);
		System.out.println("【WebService】MD5值为:"+md5);
		System.out.println("计算结果:25 × 3 = "+result);
	}
}

16.最后运行Test.java,控制台输出如下信息:

?

?

PS:由于本人水平有限,还望各位多提出宝贵意见。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读