解决WebService中InputParameters的message传参问题

导读:本篇文章讲解 解决WebService中InputParameters的message传参问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

在实际公司开发中,经常会出现需要从不同数据调取接口或同步更新数据的情况(原因是不同系统的隔离问题,数据安全问题),当当前系统需要用到别的系统中的数据,就需要用WebService技术(不在本小节讲述)

实际使用场景

我们webService 的客户端与服务端创建完成后, 核心是通过一个叫XXXStub 的文件进行运行,其主要方法是一个process()
在这里插入图片描述
我们可以看到process 需要一个webService自带的 InputPararmeter参数
在这里插入图片描述
InputParameters 有两个参数,commonParameters 用于保存一些用户名密码,message 则保存我们需要传递个服务端的参数,而这message 是字符串类型,这是就需要我们将JavaBean对象解析成message能够接收的参数,(支持 XML形式或者JSON形式)。
在这里插入图片描述
否侧就报错 在这里插入图片描述
这是可以用JAXB框架使得通过JAVA访问xml变得非常简单, 然后运用下方工具类方法beanToXml()将JavaBean换成XMl, 然后转变成String 类型, 就可以用于InputParameters的message 进行接收。
在这里插入图片描述
如果你底子够好懂的上述的一堆知识过程, 就可以跳到这一步 上述只是说其中的一个应用场景
在这里插入图片描述

package com.epoch.xygf.paymentFund.service.Util;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
import java.io.StringWriter;

public class util {

    public static String beanToXml(Object obj, Class<?> load) throws JAXBException {
        JAXBContext context = JAXBContext.newInstance(load);
        Marshaller marshaller = context.createMarshaller();
//        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
//        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
//        marshaller.setProperty("com.sun.push.bind.xmlDeclaration", Boolean.FALSE);
        marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
        StringWriter writer = new StringWriter();
        marshaller.marshal(obj, writer);
        return writer.toString();
    }

    public static <T> T xmlToJson(String xml, Class<T> classType) throws JAXBException {
        JAXBContext jaxbContext = JAXBContext.newInstance(classType);
        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
        return (T) unmarshaller.unmarshal(new StringReader(xml));
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/4837.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!