1

我正在使用 Wildfly 8.1.0.Final。

我已经RecordingServerHandler配置了,它确实是由 Web 服务的消息触发的。问题是,LogRecorders 默认是禁用的。

记录管理文章说:

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

在运行时为每个端点一个一个地启用它们是不行的,我需要在“开发时”全局启用它们。

同一篇文章说:

可以在堆栈 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,并且我需要以某种方式将其添加到所有端点?

4

1 回答 1

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));
}
于 2014-12-24T13:25:26.050 回答