Webservice_23_SOAP的基于契约优先开发用户管理_实现客户端

来源:互联网 发布:php点击按钮执行函数 编辑:程序博客网 时间:2024/04/29 12:59

非常感谢孙浩老师。

先添加UserDaoImpl.java

package cn.lichen.dao;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import cn.lichen.entity.User;public class UserDaoImpl {private static Map<String, User> users = new HashMap<String, User>();private static UserDaoImpl usedao;public UserDaoImpl() {users.put("admin", new User("admin", "管理员", "123"));}public static UserDaoImpl newInstance() {if (usedao == null)usedao = new UserDaoImpl();return usedao;}public void add(User user) {users.put(user.getUsername(), user);}public void delete(String username) {users.remove(username);}public User login(String username, String passwrod) {User user = users.get(username);return user;}public List<User> list() {Set<String> keys = users.keySet();List<User> list = new ArrayList<User>();for (String key : keys) {list.add(users.get(key));}return list;}}


修改接口实现类MyServiceImpl:

package cn.lichen.service;import java.util.List;@WebService(endpointInterface = "cn.lichen.service.IMyService", wsdlLocation = "META-INF/wsdl/user.wsdl", portName = "UserServicePort", serviceName = "UserService", targetNamespace = "http://service.lichen.cn")public class MyServiceImpl implements IMyService {private UserDaoImpl userdao = UserDaoImpl.newInstance();@Overridepublic void add(User user) {userdao.add(user);}@Overridepublic void delete(String username) {userdao.delete(username);}@Overridepublic User login(String username, String passwrod) {return userdao.login(username, passwrod);}@Overridepublic List<User> list() {return userdao.list();}}


客户端测试方法:

package cn.lichen.test;import java.util.List;import org.junit.Before;import org.junit.Test;import cn.lichen.service.IMyService;import cn.lichen.service.User;import cn.lichen.service.UserService;public class TestClient {private UserService userService = null;private IMyService service = null;@Beforepublic void init(){userService = new UserService();service = userService.getUserServicePort();}@Testpublic void testList(){List<User> users = service.list();for(User u:users){System.out.println(u.getNickname());}}@Testpublic void testAdd(){User user = new User();user.setUsername("lisi");user.setNickname("李四");user.setPasswrod("123");service.add(user);}@Testpublic void testLogin(){System.out.println(service.login("lisi", "123").getNickname());}@Testpublic void testDelete(){service.delete("lisi");}}


 

也许会报错,注意把客户端的IMyService.java拷贝替换服务端的IMyService.java。