So würde das Setzen eines JNDI Parameters in der Context.xml (auf dem Produktionsserver) aussehen:
In der Grails Test-Umgebung werden dann in der Datei _Events.groovy die JNDI Werte gesetzt. Hier muss beachtet werden, dass MyWebAppName durch den richtigen Namen der Web Applikation ersetzt wird. In dem Beispiel unten ist es nicht nötig, das Grails Tomcat Plugin zu modifizieren, wie es in den Grails Mailing-Listen diskutiert wurde:... ...
eventConfigureTomcat = {tomcat ->
println "### Start Tomcat configuration"
try {
def environment = tomcat.class.classLoader.loadClass('org.apache.catalina.deploy.ContextEnvironment').newInstance()
environment.name = 'jnditest'
environment.type = 'java.lang.String'
environment.value = 'Grails JNDI Test String'
environment.override = Boolean.TRUE
def context = tomcat.host.findChild('/MyWebAppName')
context.namingResources.addEnvironment environment
}
catch (Exception e)
{
e.printStackTrace()
}
println "### End Tomcat configuration"
}
Auslesen in der resources.groovy. So funktioniert es sowohl in der Test- als auch in der Produktions-Umgebung. In dem Beispiel unten wird jedoch überprüft, ob Grails im Entwicklungsmodus läuft: import org.springframework.web.servlet.i18n.SessionLocaleResolver
// Place your Spring DSL code here
beans = {
localeResolver(SessionLocaleResolver) {
Locale.setDefault(Locale.GERMAN)
}
if (grails.util.GrailsUtil.environment.equals('development')) {
jnditest(org.springframework.jndi.JndiObjectFactoryBean) {
jndiName = 'java:/comp/env/jnditest'
}
}
}
Links:
[1] http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Environment Entries
Keine Kommentare:
Kommentar veröffentlichen