小编Dag*_*Dag的帖子

得到注释值?

如何在注释中设置值?

我定义了以下注释:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonElement {
    int type();
}
Run Code Online (Sandbox Code Playgroud)

以下是在POJO类中使用它的方法

@JsonElement(type=GETTER_METHOD)
public String getUsername{
........................
}
Run Code Online (Sandbox Code Playgroud)

而util类使用反射来检查此方法是否存在JSonElement注释,并检查类型值是什么.

Method methods[] = classObject.getClass().getDeclaredMethods();

        JSONObject jsonObject = new JSONObject();
        try {
            for (int i = 0; i < methods.length; i++) {
                String key = methods[i].getName();
                System.out.println(key);
                if (methods[i].isAnnotationPresent(JsonElement.class) && key.startsWith(GET_CHAR_SEQUENCE)) {
                    methods[i].getDeclaredAnnotations();
                    key = key.replaceFirst(GET_CHAR_SEQUENCE, "");
                    jsonObject.put(key, methods[i].invoke(classObject));
                }

            }
            return jsonObject;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
Run Code Online (Sandbox Code Playgroud)

我如何找出type()价值是多少?我可以找到是否存在注释,但我找不到一个方法来找出设置的值 - 如果有的话type().

java reflection annotations

6
推荐指数
1
解决办法
2万
查看次数

tgz 的 MIME 类型

我发现了 gzipped tarbar(.tgz.tar.gz)的几种定义,哪一个是正确的,有吗?

在官方列表中未找到匹配项。

gzip tar mime-types

6
推荐指数
0
解决办法
4877
查看次数

从log4j2桥接到slf4j

我在我的应用程序(这是一个Dropwizard应用程序)中将Slf4j 1.7.x与Logback结合使用。现在,我们有了使用log4j2(而不是log4j)的库,日志记录转到/dev/null。我无法在任何现有的Maven应用程序中找到logj2-over-slf4jlog4j2-to-slf4j库,诀窍是什么?

logging slf4j maven dropwizard log4j2

5
推荐指数
1
解决办法
554
查看次数

如何以编程方式更改嵌入式HornetQ中的端口

我想更改嵌入式HornetQ中的默认端口.这在hornetq-configuration.xml文件中完成时有效:

<acceptors>
  <acceptor name="netty-acceptor">
    <factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
    <param key="port" value="6446"/>
  </acceptor>
</acceptors>
Run Code Online (Sandbox Code Playgroud)

但是以编程方式改变不会.我从文件加载配置,并尝试覆盖,但没有成功 - 这是我尝试:

// Load configuration
FileConfiguration configuration = new FileConfiguration();
configuration.setConfigurationUrl("hornetq-configuration.xml");

// Prepare configuration objects
String netty = NettyAcceptorFactory.class.getName();
Map<String, Object> transportParams = new HashMap<String, Object>();
transportParams.put(TransportConstants.HOST_PROP_NAME, "localhost");
transportParams.put(TransportConstants.PORT_PROP_NAME, 6446);
TransportConfiguration transpConf = new TransportConfiguration(netty, transportParams);

// add configuration (clearing before didn't helped either))
configuration.getAcceptorConfigurations().add(transpConf);
configuration.start(); // moving this right after the setting the file didn't helped

// start server
HornetQServer server = HornetQServers.newHornetQServer(configuration);
JMSServerManager jmsServerManager = new JMSServerManagerImpl(server, …
Run Code Online (Sandbox Code Playgroud)

java embedded jms hornetq

3
推荐指数
1
解决办法
2440
查看次数

如何将HornetQ日志记录委派给Slf4j

我希望从我的应用程序中嵌入的HornetQ的所有日志记录委托给slf4j.不幸的是,任何尝 我已经尝试过了

  • 添加了jul-to-slf4j
  • 安装了这座桥 SLF4JBridgeHandler.install();
  • 试过Log4jLogDelegateFactory("hornetq-configuration.xml"经过<log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>)
  • 写我自己LogDelegateLogDelegateFactory

但无论我做什么,下面的线路都没有抓住:

13.07.2011 17:42:11 org.hornetq.core.logging.impl.JULLogDelegate warn
WARNUNG: AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
13.07.2011 17:42:11 org.hornetq.core.logging.impl.JULLogDelegate info
INFO: Using NIO Journal
13.07.2011 17:42:11 org.hornetq.core.logging.impl.JULLogDelegate info
INFO: Started Netty Acceptor version 3.1.5.GA-r1772
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

slf4j java.util.logging hornetq

2
推荐指数
1
解决办法
1983
查看次数

通过JMX访问Apache ActiveMQ会抛出异常

我正在使用一个新的ActiveMQ 5.8.0安装,我在队列中有一条名为'testing'的消息.我还替换了ACTIVEMQ_SUNJMX线bin/activemq以启用JMX:

ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
Run Code Online (Sandbox Code Playgroud)

然后我通过以下代码查询JMX:

    try {
        JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"));
        connector.connect();
        MBeanServerConnection connection = connector.getMBeanServerConnection();

        ObjectName mbeanName = new ObjectName("org.apache.activemq:BrokerName=localhost,Type=Broker");
        BrokerViewMBean mbean = MBeanServerInvocationHandler.newProxyInstance(connection, mbeanName, BrokerViewMBean.class, true);

        System.out.println("Id:" + mbean.getBrokerId()); // here the exception will be thrown
    }
    catch (Exception x) {
        x.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

访问mbean时抛出异常.

java.lang.reflect.UndeclaredThrowableException
    at $Proxy0.getBrokerId(Unknown Source)
    at testing.TestJmx.main(TestJmx.java:25)
Caused by: javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=localhost,Type=Broker
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:643)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:668)
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1424)
    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:89)
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1292)
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1380)
    at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:621)
    at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

activemq-classic jmx exception

1
推荐指数
1
解决办法
8003
查看次数