CXF JAVA消息被截断

时间:2015-01-19 16:35:21

标签: java tomcat7 cxf truncated

下午好,

我在GNU / Linux CentOS 6.6 Final下使用这个JAVA_OPTS运行Apache Tomcat 7.0.57:

-server\
-Xms512m\
-Xmx512m\
-XX:MaxPermSize=256m\
-XX:MaxNewSize=160m\
-XX:NewSize=160m\
-XX:SurvivorRatio=128\
-XX:MaxTenuringThreshold=0\
-XX:+UseConcMarkSweepGC\
-XX:+CMSIncrementalMode\
-XX:+CMSIncrementalPacing\
-XX:+CMSClassUnloadingEnabled\
-XX:+DisableExplicitGC\
-XX:+UseParNewGC\
-XX:+UseTLAB\
-Djava.net.preferIPv4Stack=true\
-Djava.net.preferIPv4Addresses\
-Dgrails.env=prod\
-Dspring.profiles.active=prod\
-Dport-offset=0\
-Dajp.port=8009\
-Dhttp.port=8080\
-Dhttp.maxthreads=457\
-Dshutdown.port=8005\
-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true

日志文件包含以下内容:

Inbound Message
----------------------------
ID: 66210
Response-Code: 200
Encoding: ISO-8859-1
Content-Type: text/xml
Headers: {Content-Length=[6693], content-type=[text/xml]}
Messages:
Message (saved to tmp file):
Filename: /usr/local/services/tomcat_02/temp/cxf-tmp-720465/cos4330744862698212100tmp
(message truncated to 65536 bytes)

Payload: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

如何增加邮件的字节数?

谢谢!

4 个答案:

答案 0 :(得分:2)

尝试将LoggingOutInterceptor的限制设置为更大的大小。 在某些版本的cxf-api中,此限制设置为默认大小100 * 1024

private int limit = 100 * 1024;

如果您希望收到整封邮件,请将其设为-1 在Spring中,它将是这样的:

<property name="limit" value="-1"/>

答案 1 :(得分:2)

CXF选项loggingSizeLimit="-1"将阻止邮件被截断。

答案 2 :(得分:0)

如果您只想查看内部的内容 - 在CXF的LoggingOutInterceptor / LogginInInterceptor类中放置一个断点,靠近

(message truncated to " + limit + " bytes)

并复制输出/输入流的内容

答案 3 :(得分:0)

对于在Spring中使用CXF的人员,解决方案是使用construcotr-arg参数声明用于loggingInInterceptor或loggingOutInterceptor的bean,方法如下:

<bean id="loggingInInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor" parent="abstractLoggingInterceptor">
    <constructor-arg name="lim" value="-1"/>
</bean>

通过这种方式,拦截器是使用构造函数创建的,该构造函数为日志限制设置了自定义值。 该消息不会被任何负值截断。