Adicionando ao ColdFusion Classpath para instância particular em vários servidores Adobe Coldfusion 9

O Adobe ColdFusion 9 Multi-Server não possui a página "Configurações da JVM e Java" no CF Admin, portanto, para adicionar algo ao caminho de classe do CF, para uma determinada instância, essa instância deve ser iniciada com um jvm.config alternativo.

Eu não tenho problema em começar com um jvm.config alternativo. Eu tenho, no entanto, um problema em saberprecisamente como editar esse arquivo da maneira correta.

Meu estoque jvm.config se parece com isso (ignorar quebras de linha - eles não estão no arquivo real):

java.args=-server -Xmx512m -Dcoldfusion.sessioncookie.httponly=true -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Djava.awt.headless=true
-Dcoldfusion.rootDir={application.home}/
-Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy
-Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy

Uma das minhas tentativas mais bem-sucedidas * de adicionar uma pasta de classes ao classpath se parece com isso. (Aqui estão apenas um casal.)

java.args=-server -Xmx512m -Dcoldfusion.sessioncookie.httponly=true -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Djava.awt.headless=true
-Dcoldfusion.rootDir={application.home}/
-Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy
-Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/neo_jaas.policy
-Dcoldfusion.classPath={application.home}/servers/hud/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib,/var/www/apps/onecpd/GeoServices_sandbox

* Eu digo "uma das minhas tentativas mais bem-sucedidas" porque a instância é iniciada e essas classes estão no caminho de classe CF [posso instanciá-las com createObject ()], mas a inicialização da instância não está limpa - há muitas erros relacionados:

jamie@icf109118-ubuntu:/opt/jrun4/servers/hud/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib$ sudo /opt/jrun4/bin/jrun -config /opt/jrun4/bin/jvm_onecpd.config start onecpd
Starting Macromedia JRun 4.0 (Build 108858), onecpd server
03/19 11:37:34 info JRun Naming Service listening on *:2911
03/19 11:37:35 info No JDBC data sources have been configured for this server (see jrun-resources.xml)
03/19 11:37:35 info JRun Web Server listening on *:8303
03/19 11:37:35 info JRun Proxy Server listening on *:51003
03/19 11:37:35 info Deploying enterprise application "JRun 4.0 Internal J2EE Components" from: file:/opt/jrun4/lib/jrun-comp.ear
03/19 11:37:35 info Deploying EJB "JRunSQLInvoker" from: file:/opt/jrun4/lib/jrun-comp.ear
Server onecpd ready (startup time: 2 seconds)
03/19 11:37:35 info Deploying enterprise application "cfusion" from: file:/opt/jrun4/servers/onecpd/cfusion.ear/
03/19 11:37:36 info Deploying web application "cfusion" from: file:/opt/jrun4/servers/onecpd/cfusion.ear/
java.lang.ClassNotFoundException: flex.server.j2ee.cache.CacheFilter
    at coldfusion.bootstrap.BootstrapClassLoader.loadClass(BootstrapClassLoader.java:235)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at coldfusion.bootstrap.ClassloaderHelper.initFilterClass(ClassloaderHelper.java:123)
    at coldfusion.bootstrap.BootstrapFilter.init(BootstrapFilter.java:34)
    at jrun.servlet.FilterObject.init(FilterObject.java:63)
    at jrun.servlet.FilterManager.loadFilter(FilterManager.java:220)
    at jrun.servlet.FilterManager.init(FilterManager.java:158)
    at jrun.servlet.FilterManager.create(FilterManager.java:75)
    at jrun.servlet.WebApplicationService.start(WebApplicationService.java:230)
    at jrun.ea.EnterpriseApplication.start(EnterpriseApplication.java:194)
    at jrun.deployment.DeployerService.initModules(DeployerService.java:708)
    at jrun.deployment.DeployerService.createWatchedDeployment(DeployerService.java:243)
    at jrun.deployment.DeployerService.deploy(DeployerService.java:428)
    at jrun.deployment.DeployerService.checkWatchedDirectories(DeployerService.java:179)
    at jrun.deployment.DeployerService.run(DeployerService.java:889)
    at jrunx.scheduler.SchedulerService.invokeRunnable(SchedulerService.java:230)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
03/19 11:37:36 user failed to load: flex.server.j2ee.cache.CacheFilter
03/19 11:37:36 error Error loading class for Filter CFCacheFilter: Filter is disabled.
[1]java.lang.ClassNotFoundException: flex.server.j2ee.cache.CacheFilter
    at coldfusion.bootstrap.BootstrapClassLoader.loadClass(BootstrapClassLoader.java:235)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at coldfusion.bootstrap.ClassloaderHelper.initFilterClass(ClassloaderHelper.java:123)
    at coldfusion.bootstrap.BootstrapFilter.init(BootstrapFilter.java:34)
    at jrun.servlet.FilterObject.init(FilterObject.java:63)
    at jrun.servlet.FilterManager.loadFilter(FilterManager.java:220)
    at jrun.servlet.FilterManager.init(FilterManager.java:158)
    at jrun.servlet.FilterManager.create(FilterManager.java:75)
    at jrun.servlet.WebApplicationService.start(WebApplicationService.java:230)
    at jrun.ea.EnterpriseApplication.start(EnterpriseApplication.java:194)
    at jrun.deployment.DeployerService.initModules(DeployerService.java:708)
    at jrun.deployment.DeployerService.createWatchedDeployment(DeployerService.java:243)
    at jrun.deployment.DeployerService.deploy(DeployerService.java:428)
    at jrun.deployment.DeployerService.checkWatchedDirectories(DeployerService.java:179)
    at jrun.deployment.DeployerService.run(DeployerService.java:889)
    at jrunx.scheduler.SchedulerService.invokeRunnable(SchedulerService.java:230)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
[0]javax.servlet.ServletException: flex.server.j2ee.cache.CacheFilter
    at coldfusion.bootstrap.ClassloaderHelper.initFilterClass(ClassloaderHelper.java:132)
    at coldfusion.bootstrap.BootstrapFilter.init(BootstrapFilter.java:34)
    at jrun.servlet.FilterObject.init(FilterObject.java:63)
    at jrun.servlet.FilterManager.loadFilter(FilterManager.java:220)
    at jrun.servlet.FilterManager.init(FilterManager.java:158)
    at jrun.servlet.FilterManager.create(FilterManager.java:75)
    at jrun.servlet.WebApplicationService.start(WebApplicationService.java:230)
    at jrun.ea.EnterpriseApplication.start(EnterpriseApplication.java:194)
    at jrun.deployment.DeployerService.initModules(DeployerService.java:708)
    at jrun.deployment.DeployerService.createWatchedDeployment(DeployerService.java:243)
    at jrun.deployment.DeployerService.deploy(DeployerService.java:428)
    at jrun.deployment.DeployerService.checkWatchedDirectories(DeployerService.java:179)
    at jrun.deployment.DeployerService.run(DeployerService.java:889)
    at jrunx.scheduler.SchedulerService.invokeRunnable(SchedulerService.java:230)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

Note que sem adicionar {application.home} /servers/hud/cfusion.ear/cfusion.war/WEB-INF/cfusion/lib a Dcoldfusion.classPath, o servidor realmente não iniciaria de todo.

Então, qual é a fórmula mágica para adicionar algo limpo ao classpath do ColdFusion no jvm.config?

questionAnswers(1)

yourAnswerToTheQuestion