gpt4 book ai didi

java - 如何将 JAX-WS header 转换为字符串?

转载 作者:行者123 更新时间:2023-12-01 05:48:44 24 4
gpt4 key购买 nike

我需要从 SOAP 消息的 header 中获取一个值,并且我正在使用 JAX-WS。从 header 中获取数据并不容易,这是我到目前为止所得到的:

    @Resource
private WebServiceContext context;
...

HeaderList headerList = (HeaderList) context.getMessageContext().get(JAXWSProperties.INBOUND_HEADER_LIST_PROPERTY);
Header header = headerList.get(0);

我想将此 header 转换为其 xml 表示形式,但 header API 看起来并不容易。我想我应该说 header.readHeader();它返回一个 XMLStreamReader(既不是 Stream 也不是 Reader),从那里开始就像使用类似于 Iterator、Enumeration 或 DOM api 的接口(interface)。

将此 header 转换为其 xml 表示形式的最简单方法是什么?

最佳答案

    public static String prettyPrintXML(XMLStreamReader xmlStreamReader) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();

try {
Transformer serializer = TransformerFactory.newInstance().newTransformer();
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
serializer.transform(new StAXSource(xmlStreamReader), new StreamResult(baos));
} catch (Exception e) {
throw new RuntimeException(e);
}

String result = baos.toString();
try {
baos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}

关于java - 如何将 JAX-WS header 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com