我收到无效的GZIP压缩请求错误。我用过apache cxf和wss4j。
我已经在datahandler中显式地设置了传输编码和内容类型。我可以看到content-Type在传出消息中设置正确,但是content-transfer-encoding仍然显示为二进制,而我希望它是7bit。我认为这就是导致这个错误的原因。以下是代码的摘录。
try {
ACABulkRequestTransmitterType bulkRequest = new ACABulkRequestTransmitterType();
URL bulkFileUrl = this.getClass().getClassLoader().getResource("1094B_Request_BB01V_20151202T010102000Z.xml");
ConfigurableDataHandler dataHandler = new ConfigurableDataHandler(bulkFileUrl);
dataHandler.setTransferEncoding("7bit");
dataHandler.setContentType("application/xml");
bulkRequest.setBulkExchangeFile(dataHandler);
client.invoke("BulkRequestTransmitter", bulkRequest);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}下面是soap附件的样子:
--uuid:3bdbf1ac-8a39-4a66-b4c5-0312046d9b8d Content-Type: application/xml Content-Transfer-Encoding: binary Content-ID:5e3d2000-1895-425f-994a-8137ebf17ea3-1@urn:us:gov:treasury:irs:common Content-Disposition: attachment;name="1094B_Request_BB01V_20151202T010102000Z.xml“
发布于 2016-02-15 19:47:04
啊,真灵。我不得不这么做。
((BindingProvider) port).getRequestContext().put("org.apache.cxf.transport.common.gzip.GZIPOutInterceptor.useGzip",
"YES");https://stackoverflow.com/questions/35406530
复制相似问题