gpt4 book ai didi

java - 如何将 JAXBElement 作为 SOAPBody 的子级附加到 SOAP 消息

转载 作者:行者123 更新时间:2023-12-04 20:50:36 29 4
gpt4 key购买 nike

如何将 JAXBElement 附加为 SOAP 消息的 SOAPBody 的子项。我在我的网络服务端点方法中尝试做的是:

    SaajSoapMessage soapRequest = (SaajSoapMessage) messageContext.getRequest();
SOAPBody soapBody=soapRequest.getSaajMessage().getSOAPBody();
ObjectFactory of=new ObjectFactory();
SplsTID tid=new SplsTID();
JAXBElement<SplsTID> element=of.createSplsTID(tid);
element.soapBody.appendChild(element);

然后我得到了 java.lang.ClassCastException: javax.xml.bind.JAXBElement cannot be cast to org.w3c.dom.Element .

我正在使用 spring-WS 并使用 jaxb marshaller。我们应该怎么做?

最佳答案

我想我想出了一个更优雅的解决方案:

// Having a SOAPMessage message and a JAXBContext context...
// Marshall the JAXB object request into to a DOM document
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
final Marshaller marshaller = context.createMarshaller();
marshaller.marshal(request,document);

// Finally attach the document to the message and save. Done!
soapBody.addDocument(document);
message.saveChanges();

关于java - 如何将 JAXBElement 作为 SOAPBody 的子级附加到 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644341/

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