WebService开发 - CXF(4) - 服务端返回Map类型数据

这篇博客介绍了在CXF中处理服务端返回Map类型数据的方法。通过添加@XmlJavaTypeAdapter注解和自定义的XmlAdapter类,实现了Map到XML的转换,解决了CXF无法识别Map返回类型的问题。在客户端,可以通过调用方法获取到转换后的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主个人教程地址

前言

之前说完了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值