我正在使用CXF 3.0.6
我正在使用ProducerTemplate调用路线
我的驼峰上下文中有一个cxf端点如下所示..(TEST_ENDPOINT是一个实际的端点)
<route id="invokePostRestService">
<from uri="direct:invokeWS" />
<log message=" ${body}" />
<to uri="cxf://{{TEST_ENDPOINT}}?dataFormat=payload&loggingFeatureEnabled=true" />
<log message=" ${body}" />
</route>
<http-conf:conduit name="*.http-conduit">
<http-conf:client ConnectionTimeout="30000"
ReceiveTimeout="30000" MaxRetransmits="1"
AllowChunking="false" />
</http-conf:conduit>
<bean id="systemProps"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" value="#{@systemProperties}" />
<property name="targetMethod" value="putAll" />
<property name="arguments">
<util:properties>
<prop key="http.maxConnections">11</prop>
</util:properties>
</property>
</bean>
我认为CXF日志记录在某种程度上干扰了Jetty / resources / log4j.xml中的log4j.xml,当我在log4j.xml中将日志级别设置为ERROR时,我看到CLOSE_WAIT堆积并且http.maxConnections超过100+ (事实上它只是11,配置)
当我在log4j.xml中将记录模式设置为INFO时,一切都按预期工作,http.maxConnections为11!这是预期的,没有close_waits!
调试后我发现logg等级在“org.apache.camel.processor.interceptor.BacklogDebugger”中是INFO,尽管log4j.xml中有ERROR,这可能是导致这个问题的原因吗?
感谢任何帮助...
答案 0 :(得分:0)
这可能有助于遇到同样问题的其他人。
调试后我发现当初始化camel上下文时,内部使用BacklogTracer的Logging拦截器(Trace拦截器)也被初始化,内部使用 INFO 作为日志记录级别。
所以,在上下文xml中添加cxf:bus,如下所示,引用 -
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name">
</div>
<button type="button" class="btn btn-default" (click)="save()">Save</button>
并在log4j.xml中添加此内容,
http://cxf.apache.org/docs/bus-configuration.htmlc
<cxf:bus>
<cxf:features>
<cxf:logging />
</cxf:features>
</cxf:bus>
希望这会有所帮助..