Estoy ejecutando un par de aplicaciones de servlet en Tomcat (5.5). Todos los servlets usan un recurso de fábrica común que se comparte usando JNDI. Por el momento, puedo hacer que todo funcione al incluir el recurso de fábrica como GlobalNamingResource en el archivo /conf/server.xml y, a continuación, hacer que el archivo META-INF/context.xml de cada servlet incluya un ResourceLink en el recurso. Los fragmentos de los archivos XML se incluyen a continuación. NOTA: ¡No estoy tan familiarizado con Tomcat, así que no estoy diciendo que esta sea una buena configuración!Recursos JNDI comunes en Tomcat
Sin embargo, ahora quiero poder instalar estos servlets en múltiples instancias de tomcat automáticamente usando un RPM. El RPM copiará primero los WAR en el directorio de webapps y los jar de fábrica en el directorio common/lib (lo cual está bien). Pero también deberá asegurarse de que el recurso de fábrica esté incluido como recurso para todos los servlets.
¿Cuál es la mejor manera de agregar el recurso globalmente? No estoy muy interesado en escribir un script que vaya al archivo server.xml y agregue el recurso de esa manera. ¿Hay alguna manera de agregar en varios archivos server.xml para que pueda escribir un nuevo archivo server-app.xml y concatenará mi configuración en server.xml? O, mejor aún, agregar este recurso JNDI a todos los servlets sin usar server.xml en absoluto?
p.s. Reiniciar el servidor no será un problema, así que no me importa si los cambios no se recogen automáticamente.
Gracias
de fragmentos de server.xml
<!-- Global JNDI resources -->
<GlobalNamingResources>
<Resource name="bean/MyFactory"
auth="Container"
type="com.somewhere.Connection"
factory="com.somewhere.MyFactory"/>
</GlobalNamingResources>
archivo/context.xml META-INF de todo el servlet
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<ResourceLink global="bean/MyFactory"
name="bean/MyFactory"
type="com.somewhere.MyFactory"/>
</Context>
¿Qué hace el recurso de fábrica? Tengo una situación similar que intento resolver, pero no estoy seguro de cómo. Por ejemplo, ¿es posible crear solo una instancia del objeto? Consulte http://stackoverflow.com/questions/9453109/using-jndi-to-share-servlet-session-objects-and-data-in-tomcat – ziggy