WEBSERVICE入门04:异常处理
本文主要讲的是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 在服务端输出结果为: Server:22+13=35 说明soap消息的异常处理成功。 总体说来,soap消息的异常处理比较的简单,没有什么难度,而本文也只是粗略地罗列出代码来展示了soap消息中异常的处理方法。在下一篇文章中,将会介绍soap的hander的处理方式,这才是在web服务中应用的比较多的处理方式。 最后,在平安夜,祝大家节日快乐,也希望在接下来的时间里,我在技术方面有所进步。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |