WS-Security 中文问题&Stax(Streaming API for XML) (二)
@H_
301_0@
WS-Security中文问题解决
@H_
301_0@
在对新一代的Jaxp做了基本学习以后,那么对于axis2如何处理SOAP消息有了基本的了解,在跟踪了
代码调试以后,发现问题主要是出在axis2的rampart模块的Axis2Util类,其中的两个
方法getDocumentFromSOAPEnvelope(SOAPEnvelope env,boolean useDoom)和getSOAPEnvelopeFromDOMDocument(SOAPEnvelope env,boolean useDoom)。在有WS-Security和没有的不同情况下,传入的参数useDoom为true和false,导致走了两个不同的解析流程。当useDoom为true的时候,axis2通过SOAPEnvelope对象和axis2的Streaming parser来解析和构建Dom Document。当useDoom为false的时候,首先将SOAPEnvelope对象读入字节数组流,然后在根据Stax工厂
生成实例,并且构造出StAXSOAPModelBuilder,然后返回通过StAXSOAPModelBuilder获得的Dom Document对象。