2014-12-29 4 views
1

XML 파일에서 빌드 된 SoapMessage에서 특정 필드 값을 가져 오는 방법이 있습니까? 여기 org.apache.cxf.binding.soap.SoapMessage의 비누 본문에서 특정 필드 가져 오기

내가 어떻게 내가 볼 수있는 모든 대해 getHeaders(), getContextualProperty() 등이며, 그렇게 수행 "속성 1"파일을 얻으려면 지금 내 수신 SOAP 메시지,

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> 
<soap:Header> 
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.example.com</wsa:Action> 
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">8d6f49b9-22c6-41d9-a1fb-bc07c82pbhar</wsa:MessageID> 
<wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing"> 
<Address xmlns="http://www.w3.org/2005/08/addressing">http://bcd.com</Address> 
</wsa:From> 
<wsa:ReplyTo xmlns:wsa="http://www.w3.org/2005/08/addressing"> 
<Address xmlns="http://www.w3.org/2005/08/addressing">http://blah.com</Address> 
</wsa:ReplyTo> 
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">https://blah2.com</wsa:To> 
</soap:Header> 
<soap:Body wsu:Id="id-8" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
<ns2:abc xmlns:ns2="abc" xmlns:ns3="abc" xmlns:ns4="abc"> 
<ns2:FunctionCallIdentifier>https://bcd.com</ns2:FunctionCallIdentifier> 
<ns2:ValidityPeriod>120000</ns2:ValidityPeriod> 
<ns2:fieldOne> 
<ns2:Subfield xsi:type="ns2:MSId_AliasType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<ns2:property1>IWantToGetThis</ns2:property1> 
</ns2:Subfield> 
</ns2:abc> 
</soap:Body> 
</soap:Envelope> 

입니다 등

감사합니다.

+0

으로 처리 할 수 ​​있습니다 서버 요청시 메시지를 요청 하시겠습니까? – dush88c

답변

0

어쩌면이 링크는 당신을 도울 수 :

How to parse SOAP message into Jaxb classes

JAXB가 처리 XML 문서를위한 프레임 워크입니다 SOPA 본체는 XML이기 때문에, 당신은 JAXB이 들어오는셨어요 어떻게

+1

안녕하세요 알바로, 답변 해 주셔서 감사합니다. 내가 보낸 링크는 javax.xml.soap.SOAPMessage 인 SOAPMessage를 실제로 사용했지만, org.apache.cxf.binding.soap.SoapMessage에서 SoapMessage가 필요합니다. WSS4J 인터셉터와 함께 사용하고 SoapMessage 본문에 액세스해야합니다. 감사합니다. – HeCodes