2015-07-23 2 views
1

В моей server.xml у меня есть что-то вроде следующую строку:Загрузка Tomcat ресурса в Spring

<GlobalNamingResources> 
<!-- Editable user database that can also be used by 
    UserDatabaseRealm to authenticate users 
--> 
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/> 
<Resource factory="com.company.ServerEnvironmentFactory" name="config/ServerEnvironment" type="java.util.Map"/> 

В Spring 3, как сделать убедитесь, что ServerEnvironmentFactory создается такое, что я могу выполните контекстный поиск для java:/comp/env/config/ServerEnvironment.

Спасибо

ответ

0

Я думаю, вам нужно настроить context.xml так, что все приложения осознают глобальный ресурс.

<ResourceLink global="config/ServerEnvironment" name="config/ServerEnvironment" type="java.util.Map" /> 
+0

Это, наверное, правда. У меня есть contextConfigLocation, определенный как jpaContext.xml. Поэтому я предполагаю, что мне нужно отредактировать это, я просто не знаю, как будет выглядеть эта строка. – Quirk

+0

Извините, вы имели в виду tomcat context.xml. Я пробовал это, но я все равно получаю javax.naming.NameNotFoundException: имя [config/ServerEnvironment] не связано в этом контексте. Не удалось найти [config]. – Quirk

+0

@Quirk ... изменен ответ, добавлен глобальный атрибут. Попробуйте добавить его, перезагрузите Tomcat, чтобы узнать, помогает ли это. – Garry

0

Дайте этому попытку:

<bean id="myEnv" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="java:/comp/env/config/ServerEnvironment"/> 
</bean> 

Ресурсы:

Tomcat Java JNDI Example

Spring JNDI Example

+0

Я согласен с этим, но я также использую специализированную фабрику ресурсов, я получаю: вызвано: javax.naming.NameNotFoundException: имя [config/ServerEnvironment] не связано в этом контексте. Не удалось найти [config]. – Quirk

+0

Доступна ли ресурсная фабрика из класса Tomcats classpath? например, в банке в tomcat/lib/или tomcat/common/lib? В противном случае Tomcat может получить доступ и использовать его. –

Смежные вопросы