java - CXF 编码嵌入 XML

标签 java xml soap cxf

我有一个 SOAP 服务,其中一个方法接受字符串作为参数。但是,期望该字符串是 XML。

当我调用此服务时,CXF 默认为我编码 XML,如下所示:

<ORM_O01><MSH>

尽管当我调用它时,我是这样调用它的:

<ORM_O01><MSH>

有办法关掉它吗?我希望 CXF 只发送我指定的内容,而不是编码版本。

我使用的是 CXF 2.7.8 和 JDK 1.7。

提前致谢。

最佳答案

我很确定这不是最好的方法,但它对我有用:

public class MyClass extends AbstractPhaseInterceptor< Message > {
    public MyClass () {
        super( Phase.PRE_STREAM );
        addAfter( AttachmentOutInterceptor.class.getName() );
    }

    @Override
    public void handleMessage( final Message message ) throws Fault {
        message.put( "disable.outputstream.optimization", Boolean.TRUE );
        final SimpleNsStreamWriter writer = (SimpleNsStreamWriter)StaxUtils.createXMLStreamWriter( message.getContent( OutputStream.class ) );
        message.setContent( XMLStreamWriter.class, new DelegatingXMLStreamWriter( writer ) {
            @Override
            public void writeCharacters( final String text ) throws XMLStreamException {
                System.out.println( "text -> " + text );
                writer.writeRaw( text );
            }
        } );
    }

关于java - CXF 编码嵌入 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21035379/

相关文章:

java - json官方java api : JSONArray of JSONObjects

java - Secure.getString(mContext.getContentResolver(), "bluetooth_address") 在 Android O 中返回 null

java - 如何将 XMP XML block 序列化为现有的 JPEG 图像?

java - '解码错误 : cvc-complex-type. 2.4.a : Invalid content was found starting with element 'XXXXX' . 预计 '{XXXXX}' 之一

java - 更改 WSDL xsd :complexType name with Apache CXF

java - SFTP 下载未完成

java - 更新后-崩溃 com.google.android.gms :play-services:5. 2.8

xml - 真正删除 XMLParser 对象 Groovy 中的节点

android - 图层列表背景不适用于 Android Lollipop (5.1.1/API 22) 上的水平 ProgressBar

php - SOAP 响应 : is Content-Length required in http-header?