2012-08-23 29 views
1

我試圖實現jpa idempotent存儲庫就像這裏所述http://camel.apache.org/file2.html,但我得到一個Mbean導出錯誤。註冊駱駝的ftp jpa錯誤冪等知識庫

在我的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 [o[email protected]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 

回答

0

首先,我希望你是這樣的事實的JMX部分沒有必要使冪庫工作明確。你的錯誤是一個純粹的JMX/Spring錯誤,沒有鏈接到駱駝。

如果你想使用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> 
+0

是的,我知道。然而,我的配置看起來就像官方文檔的22.4.3部分,並且在我把駱駝冪等bean之前工作。那麼,爲什麼會發生?不應該駱駝的班級足夠聰明,可以使用默認的spring-jmx配置嗎? – user1607938