前言
之前说完了JavaBean的传递 今天来说一下Map类型的传递
Map类型传递
其实主要的还是针对的服务端的类型转换 所以主要修改的代码时在服务端的 我们还是按照正常的思路在扩充方法 来看一下会出现什么错误吧
还是在我们的接口中新增一个方法 返回一个Map类型的结构
代码如下
/* 获取所有用户角色 */
Map<String,List<Role>> getAllUserRole();
然后在实现类实现对应的方法
@Override
public Map<String, List<Role>> getAllUserRole() {
// 声明Map存储用户角色信息
Map<String,List<Role>> myMap = new HashMap<>();
// 创建第一个用户角色列表
List<Role> list1 = new ArrayList<>();
list1.add(new Role(1,"root"));
list1.add(new Role(1,"guest"));
myMap.put("lwx",list1);
// 创建第二个用户角色列表
List<Role> list2 = new ArrayList<>();
list1.add(new Role(1,"guest"));
myMap.put("jack",list2);
return myMap;
}
然后呢 我们还是 开心的去发布我们的服务端代码
会发现报如下错误
Exception in thread "main" org.apache.cxf.service.factory.ServiceConstructionException
at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:354)
at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:469)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:693)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean