怎么禁止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);但是我怎麽用都不行
高手给点建议
[解决办法]
哥们,你结果咋样了呐。 给后人点启示呀