1

ここhttp://camel.apache.org/file2.htmlで説明されているように、jpaべき等リポジトリを実装しようとしていますが、Mbeanエクスポートエラーが発生しています。

私のapplication-context.xmlには、次のセクションがあります。

<bean id="mvStore" class="org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository" lazy-init="false">
        <!-- Here we refer to the spring jpaTemplate -->
        <constructor-arg index="0" ref="jpaTemplate" />
        <!-- This 2nd parameter is the name (= a cateogry name). You can have different repositories with different names -->
        <constructor-arg index="1" value="FileConsumer" />
    </bean>
<context:mbean-server id="mbeanServer" />
<context:mbean-export server="mbeanServer" registration="replaceExisting" default-domain="br.com.touchtec"/>

上記のセクションを削除すると、サーバー (tomcat) は問題なく起動します。誰でもこれについて私を助けることができますか?

スタックは次のとおりです。

Caused by: org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [org.apache.camel.processor.idempotent.jpa.JpaMessageIdRepository@6df960c4] with key 'mvStore'; nested exception is javax.management.MalformedObjectNameException: Key properties cannot be empty
    at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:602)
    at org.springframework.jmx.export.MBeanExporter.registerBeans(MBeanExporter.java:527)
    at org.springframework.jmx.export.MBeanExporter.afterPropertiesSet(MBeanExporter.java:413)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    ... 50 more

Caused by: javax.management.MalformedObjectNameException: Key properties cannot be empty
    at javax.management.ObjectName.construct(ObjectName.java:467)
    at javax.management.ObjectName.<init>(ObjectName.java:1403)
    at javax.management.ObjectName.getInstance(ObjectName.java:1285)
    at org.springframework.jmx.support.ObjectNameManager.getInstance(ObjectNameManager.java:62)
    at org.springframework.jmx.export.naming.MetadataNamingStrategy.getObjectName(MetadataNamingStrategy.java:114)
    at org.springframework.jmx.export.MBeanExporter.getObjectName(MBeanExporter.java:728)
    at org.springframework.jmx.export.MBeanExporter.registerBeanInstance(MBeanExporter.java:631)
    at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:592)
    ... 54 more
4

1 に答える 1

0

まず第一に、冪等リポジトリを機能させるために jmx 部分が必要ないという事実を明確にしていただければ幸いです。エラーは純粋な JMX/Spring エラーであり、Camel にリンクされていません。

MBeanExporter を使用する場合は、Spring JMXの公式ドキュメントを読んで、この問題をよりよく理解する必要があります。

MBeanExporter の定義は次のようになります。

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
    <property name="beans">
      <map>
        <entry key="bean:name=mvStore" value-ref="mvStore"/>
      </map>
    </property>
    <property name="server" ref="mbeanServer"/>
  </bean>
于 2012-08-24T07:57:03.667 に答える