因此,我正在尝试使用下面的代码段让 Weblogic 组件在我们的应用程序的蓝图文件中工作,尽管我不确定除了用于连接到 JMS 队列之外还包含什么。
> <bean id="wmqjndiFactoryBean"
> class="org.springframework.jndi.JndiObjectFactoryBean">
> <property name="jndiName" value="jms/ConnectionFactory"/>
> <property name="jndiTemplate">
> <bean class="org.springframework.jndi.JndiTemplate">
> <property name="environment">
> <props>
> <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
> <prop key="java.naming.provider.url">t3://localhost</prop>
> <prop key="java.naming.security.principal">weblogic</prop>
> <prop key="java.naming.security.credentials">weblogic</prop>
> </props>
> </property>
> </bean>
> </property>
> <property name="lookupOnStartup" value="false"/>
> <property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
> </bean>
> <bean id="weblogic-jms" class="org.apache.camel.component.jms.JmsComponent">
> <property name="configuration">
> <bean class="org.apache.camel.component.jms.JmsConfiguration">
> <property name="connectionFactory" ref="wmqjndiFactoryBean"/>
> </bean>
> </property>
> </bean>
并且发生了这个异常:
org.osgi.service.blueprint.container.ComponentDefinitionException: Error setting property: PropertyDescriptor <name: connectionFactory, getter: class org.apache.camel.component.jms.JmsConfiguration.getConnectionFactory(), setter: [class org.apache.camel.component.jms.JmsConfiguration.setConnectionFactory(interface javax.jms.ConnectionFactory)]
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:941)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888)
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:933)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888)
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:668)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:370)
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:261)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.Exception: Unable to convert value org.springframework.jndi.JndiObjectFactoryBean to type javax.jms.ConnectionFactory
at org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:184)
at org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:402)
at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:394)
at org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:628)
at org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:378)
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:939)
... 29 more
在过去几天在互联网上搜索了几个小时后,我还没有找到解决方案。我不能确切地告诉你它不是什么,因为很难记住我已经尝试过的东西,但我看过的大多数文章/其他问题甚至都不适用。
那么为什么会发生这个异常,我该如何解决呢?