如何启用JBossWS' LogRecorders全球?

时间:2014-11-26 16:54:47

标签: jboss wildfly wildfly-8 jbossws

我正在使用Wildfly 8.1.0.Final。

我已配置RecordingServerHandler,它确实由网络服务的消息触发。问题是,默认情况下禁用LogRecorders。

Records management article说:

  

默认处理器在创建时不处于录制模式,因此您需要通过其MBean接口将它们切换到录制模式(请参阅jmx控制台中的录制标记)。

在每个端点上逐个启用它们都不行,我需要在“开发时”全局启用它们。

同一篇文章说:

  

可以在堆栈bean配置中配置记录器

<!-- Installed Record Processors-->  
<bean name="WSMemoryBufferRecorder" class="org.jboss.wsf.framework.management.recording.MemoryBufferRecorder">  
    <property name="recording">false</property>  
</bean>  
<bean name="WSLogRecorder" class="org.jboss.wsf.framework.management.recording.LogRecorder">  
    <property name="recording">false</property>  
</bean>  

什么是“堆栈bean配置”?指定的WSLogRecorder名称是否暗示此配置按该名称创建另一个非默认的LogRecorder,并且我需要以某种方式将其添加到所有端点?

1 个答案:

答案 0 :(得分:0)

在部署结束时通过JMX启用它们。

import java.lang.management.ManagementFactory;
import java.util.Set;

import javax.management.Attribute;
import javax.management.MBeanServer;
import javax.management.ObjectName;

/* ... */

MBeanServer server = ManagementFactory.getPlatformMBeanServer();
Set<ObjectName> recorderNames = server.queryNames(
        new ObjectName("jboss.ws:recordProcessor=LogRecorder,*"), null);
for (ObjectName recorderName : recorderNames) {
    server.setAttribute(recorderName, new Attribute("Recording", true));
}