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

WEBSERVICE入门04:异常处理

发布时间:2020-12-16 23:55:25 所属栏目:安全 来源:网络整理
导读:本文主要讲的是soap的简单的异常处理 说明:本次文章会在前面所讲的实例上来扩充,来详细的说明soap的异常处理。 服务端代码: 1.接口类: package com.wyj.service;import javax.jws.WebService;@WebServicepublic interface IMyService {public int add(in

本文主要讲的是soap的简单的异常处理

说明:本次文章会在前面所讲的实例上来扩充,来详细的说明soap的异常处理。

服务端代码:

1.接口类:

package com.wyj.service;

import javax.jws.WebService;

@WebService
public interface IMyService {
	
	public int add(int a,int b);
	
	public String sayHi(String name);
	
	public User addUser(User user);

	public User login(String username,String password) throws UserException;
}
相比之前的服务,本次添加了adduser和login方法

2.实现类:

package com.wyj.service;

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

import javax.jws.WebService;

@WebService(endpointInterface="com.wyj.service.IMyService")
public class MyServiceImpl implements IMyService {
	
	private static List<User> users = new ArrayList<User>();
	
	@Override
	public int add(int a,int b) {
		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;
	}

	@Override
	public User addUser(User user) {
		users.add(user);
		return user;
	}

	@Override
	public User login(String username,String password) throws UserException {
		for(User user:users) {
			if(username.equals(user.getUsername())&&password.equals(user.getPassword()))
				return user;
		}
		throw new UserException("用户不存在!");
	}

}

在login方法中可以看到,当用户不存在是,会抛出UserException的异常,说明用户不存在。在接下来的客户端代码中,我将会进行验证。

3.其他辅助类(User类和UserException类)

User类:
package com.wyj.service;

public class User {
	private int id;
	private String username;
	private String password;

	public User() {
		super();
	}

	public User(int id,String username,String password) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}

UserExcption只需要继承Exception类即可,由于比较简单这里就显示代码。

2.客户端:

客户端的生成方法在入门(二)这里就不在详细说明。

下面主要来说明客户端应用程序的编写

客户端MyClient类的代码如下:

package com.wyj.service;

import javax.xml.soap.SOAPException;
import javax.xml.ws.soap.SOAPFaultException;

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("monkey2"));
		User user = new User();
		user.setId(1);
		user.setUsername("zhansan");
		user.setPassword("123456");
		service.addUser(user);
		try {
			service.login("zhansan","12346");
			
		} catch (UserException_Exception e) {
			System.out.println(e.getMessage());
		}
	}
}


客户端首先添加了一个名为zhansan,密码为123456的用户,然后登陆。登陆时,使用用户名为zhansan,密码为12346.。本文中是故意错误,来验证soap的错误的消息处理是否执行。

客户端的输出结果为:

35
Himonkey2
用户不存在!

在服务端输出结果为:

Server:22+13=35
Server:Hi,monkey2

说明soap消息的异常处理成功。


总体说来,soap消息的异常处理比较的简单,没有什么难度,而本文也只是粗略地罗列出代码来展示了soap消息中异常的处理方法。在下一篇文章中,将会介绍soap的hander的处理方式,这才是在web服务中应用的比较多的处理方式。


最后,在平安夜,祝大家节日快乐,也希望在接下来的时间里,我在技术方面有所进步。

(编辑:李大同)

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

    推荐文章
      热点阅读