JNDI-Eigenschaften (java.die Benennung.factory.erste & java.die Benennung.Anbieter.url) nicht immer durch Feder PropertyPlaceholderConfigurer
Habe ich Folgendes konfiguriert PropertyPlaceholderConfigurer
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:///opt/myproject/jndi.properties" />
</bean>
Und mein JNDI-Vorlage bean sieht aus wie
<bean id="myJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">${factory}</prop>
<prop key="java.naming.provider.url">${url}</prop>
<props>
</property>
</bean>
jndi.properties-Datei hat zwei definierten Tasten.
factory=org.webmethods.jms.naming.WmJmsNamingCtxFactory
url=wmjmsnaming://[email protected]:7001
Wenn ich bereitstellen auf weblogic und starten Sie die Anwendung, sehe ich die folgenden trace -
nested exception is javax.naming.NoInitialContextException: Cannot instantiate class: ${factory} [Root exception is java.lang.ClassNotFoundExcep
tion: ${factory}]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:628)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1868)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3154)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:484)
Frühjahr nicht ersetzen ${Werk} mit dem Wert aus der Datei mit den Eigenschaften, sondern betrachtet ${Werk} als Wert und zeigt damit eine Klasse nicht gefunden Ausnahme.
Wenn ich fest die factory-Klasse den Namen und die url ein, funktioniert es einwandfrei.
Ich bin mir nicht sicher, was fehlt hier, wie ich bin nicht in der Lage, um herauszufinden, was wirklich das Problem.
Schätzen jede Hilfe oder Verweise auf diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie auch Federn PropertiesFactoryBean wie diese
Fand ich eine andere einfachere Weg, die braucht keinen extra-Klasse. ich verwendet
org.springframework.beans.factory.config.PropertiesFactoryBean
laden Sie die jndi -.EigenschaftenDen jndiTemplate bean sieht so ähnlich aus wie dieser.
Konnte ich einen workaround finden Lösung, die für mich arbeiten. Meine eigene JndiTemplate und Lesen Sie die jndi.Eigenschaften-Datei, die explizit vom server. Die benutzerdefinierte Klasse sieht so etwas
und dann diese Klasse in der spring context xml, wie dies
Hoffe, dies hilft jemand vor dem gleichen Problem.