将SOAP消息解组到Java /或只是解析SOAP消息?

Bou*_*her 1 java soap jaxb unmarshalling saaj

我面对这个问题已经有一个多月了,因此,您的帮助让我感到非常满意,实际上,我在询问一种可以让我解析SOAP消息(请求)以检索所需信息的方法,例如安全信息(如果有)以及消息正文中的信息


感谢您回答我,但是知道我正在处理另一个问题,即WS-SecurityPolicy,我必须最终解析一个像这样的xml文件: <?xml version="1.0" encoding="UTF-8"?>

    <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
      <wsp:Policy>
        <sp:TransportToken>
          <wsp:Policy>
            <sp:HttpsToken RequireClientCertificate="false"/>
          </wsp:Policy>
        </sp:TransportToken>
        <sp:AlgorithmSuite>
          <wsp:Policy>
            <sp:Basic128/>
          </wsp:Policy>
        </sp:AlgorithmSuite>
        <sp:Layout>
          <wsp:Policy>
            <sp:Lax/>
          </wsp:Policy>
        </sp:Layout>
        <sp:IncludeTimestamp/>
      </wsp:Policy>
    </sp:TransportBinding>
    <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
            <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
      </wsp:Policy>
    </sp:SignedSupportingTokens>
Run Code Online (Sandbox Code Playgroud)

'

知道此XML文件名为Policy.xml,并且包含必须存在的WS-SecurityPolicy规则。

Osw*_*Osw 7

这取决于您的消息内容。您已标记了您的问题,jaxb这使我认为您在soap消息中具有xml序列化的数据。如果是这种情况,则可以使用JAXB解组器将消息转换为Java类的实例:

JAXBContext jbc = JAXBContext.newInstance("com.mypackage");
Unmarshaller um = jbc.createUnmarshaller();

JAXBElement<MyClass> element = um.unmarshal(parameterNode, MyClass.class);
MyClass data = element.getValue();
Run Code Online (Sandbox Code Playgroud)