InlineExplodedTomcatServerを拡張する
package myapp
import org.grails.plugins.tomcat.InlineExplodedTomcatServer
import org.grails.plugins.tomcat.TomcatLoader
import grails.util.GrailsNameUtils
import org.apache.catalina.connector.Connector
import org.apache.catalina.startup.Tomcat
import org.apache.coyote.http11.Http11NioProtocol
import org.codehaus.groovy.grails.lifecycle.ShutdownOperations
import org.codehaus.groovy.grails.plugins.PluginManagerHolder
import org.codehaus.groovy.grails.plugins.GrailsPluginUtils
import static grails.build.logging.GrailsConsole.instance as CONSOLE
import org.apache.tomcat.util.scan.StandardJarScanner
import org.springframework.util.ReflectionUtils
class MyappInlineExplodedTomcatServer extends InlineExplodedTomcatServer {
MyappInlineExplodedTomcatServer(String basedir, String webXml, String contextPath, ClassLoader classLoader) {
super(basedir, webXml, contextPath, classLoader)
context.setSessionCookieDomain(System.getProperty('mydomain.com'))
context.setSessionCookiePath('/mypath')
}
}
Tomcatサーバーファクトリを拡張する
package myapp
import grails.web.container.EmbeddableServer
import org.grails.plugins.tomcat.TomcatServerFactory
class MyappServerFactory extends TomcatServerFactory {
EmbeddableServer createInline(String basedir, String webXml, String contextPath, ClassLoader classLoader) {
new MyappInlineExplodedTomcatServer(basedir, webXml, contextPath, classLoader)
}
}
events.groovyでサーバーファクトリを設定します
eventRunAppStart = {
System.setProperty 'grails.server.factory','myapp.MyappServerFactory'
}
}
明らかに、この構成はgrails "run-app"で実行する場合にのみ適用され、tomcatまたは他のサーバーにデプロイする場合には適用されません。Tomcatでは、Tomcat構成ファイルで構成する必要があります