一、需求
- 調用webService服務,把用戶名和密碼封裝為用戶對象作為參數,返回該用戶所用友的角色列表。
二、發布服務
2.1 編寫服務接口
@WebService public interface ILogin { @WebResult(name="getRoleByUserResult") public List<Role> getRoleByUser(@WebParam(name="user")User user); }
2.2 實現服務
package com.shyroke.service; import java.util.ArrayList; import java.util.List; import javax.jws.WebService; import com.shyroke.bean.Role; import com.shyroke.bean.User; @WebService(endpointInterface="com.shyroke.service.ILogin") public class Login implements ILogin { public List<Role> getRoleByUser(User user) { List<Role> roleList = new ArrayList<Role>(); if (user.getUserName().equals("admin") && user.getPassWord().equals("123")) { roleList.add(new Role(1, "管理員")); roleList.add(new Role(2, "普通用戶")); } else if (user.getUserName().equals("user") && user.getPassWord().equals("123")) { roleList.add(new Role(2, "普通用戶")); } else { return null; } return roleList; } }
2.3 發布服務
package com.shyroke.publish; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; import com.shyroke.service.ILogin; import com.shyroke.service.Login; public class PublishMain { public static void main(String[] args) { String address="http://localhost:3333/login"; JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean(); factoryBean.setAddress(address); factoryBean.setServiceClass(ILogin.class); factoryBean.setServiceBean(new Login()); factoryBean.create(); System.out.println("服務發布......."); } }
2.4 結果
三、客戶端調用
3.1 根據wsdl文件生成client

- 命令的含義請參考上一章節

3.2 測試
package com.shyroke.service; import java.util.List; public class Client { public static void main(String[] args) { User user=new User(); user.setId(1); user.setUserName("admin"); user.setPassWord("123"); ILogin login=new ILoginService().getILoginPort(); List<Role> roleList=login.getRoleByUser(user); for(Role role:roleList) { System.out.println(role.getId()+"\t"+role.getRoleName()); } } }
3.3 結果

