读书人

如何禁止cxf对发送的soap字符串信息进

发布时间: 2012-06-17 21:02:01 作者: rapoo

怎么禁止cxf对发送的soap字符串信息进行转码???
我用cxf调用xfire写的服务端,其中有一个方法uploadDatas(String uploadData),这个方法中的参数是要传到服务端的xml字符串信息,用cxf客户端调用xfire服务端代码如下

Java code
public static void main(String[] args) throws Exception{        String dataString =         "    <root>"+          "        <rptDate>2012-03-12</rptDate>"+        "        <report>aaaa</report>"+         "        <datas>"+        "            <data>"+        "            <category>bbb</category>"+        "            <data>1.3</data>"+            "            </data>"+        "        </datas>"+        "    </root>";        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();        Map<String, String> outTransformMap = Collections.singletonMap("<", "<");        StaxTransformFeature staxTransformFeature = new StaxTransformFeature();        staxTransformFeature.setOutTransformElements(outTransformMap);        List<AbstractFeature> staxTransformFeatureList = new ArrayList<AbstractFeature>();        staxTransformFeatureList.add(staxTransformFeature);        factory.setFeatures(staxTransformFeatureList);                factory.setAddress("http://aaaa/Data");        factory.setServiceClass(Data.class);        Data service = (Data) factory.create();        String response = service.uploadDatas("xml", dataString);    }


但是我看客户端发出的信息的时候把dataString编码成了

<root><rptDate>2012-03-12</rptDate><report>aaaa</report><datas><data><category>bbb</category><data>1.3</data></data></datas></root>

这样的形式,怎么才能不让cxf对字符串进行转码,我在cxf官网上查了可以用feature的方法把输出soap信息过滤下,官网上用到了以下代码,
XML code
<bean id="transformFeature" class="org.apache.cxf.feature.StaxTransformFeature">  <property name="inAppendElements">    <map>      <!-- replace the text content of {ns}a element with the 'new Text' value -->      <entry key="{ns}a" value="{ns}a=new Text"/>    </map  </property></bean>

对应的java代码是如下:
Java code
        Map<String, String> outTransformMap = Collections.singletonMap("<", "<");        StaxTransformFeature staxTransformFeature = new StaxTransformFeature();        staxTransformFeature.setOutTransformElements(outTransformMap);        List<AbstractFeature> staxTransformFeatureList = new ArrayList<AbstractFeature>();        staxTransformFeatureList.add(staxTransformFeature);        factory.setFeatures(staxTransformFeatureList);

但是我怎麽用都不行

高手给点建议

[解决办法]
哥们,你结果咋样了呐。 给后人点启示呀

读书人网 >XML SOAP

热点推荐