当前位置: 首页 > 面试题库 >

在多服务器Adobe Coldfusion 9中为特定实例添加到ColdFusion类路径

华谭三
2023-03-14
问题内容

Adobe ColdFusion 9 Multi-Server在CF Admin中没有“
JVM和Java设置”页面,因此要向CF类路径中添加某些内容,对于给定实例,该实例必须使用备用jvm.config启动。

我从备用jvm.config开始没有问题。但是,我确实有一个问题, 确切地 知道如何以正确的方式编辑该文件。

我的库存jvm.config看起来像这样(忽略换行符-它们不在实际文件中):

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

我最成功的尝试之一是向类路径添加类文件夹,如下所示。(这里只有一对。)

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

*之所以说“我成功的尝试之一”是因为实例确实启动了,并且这些类在CF类路径上[我可以使用createObject()实例化它们,但实例启动并不干净-有很多Flex-相关错误:

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)

请注意,如果不将{application.home} /servers/hud/cfusion.ear/cfusion.war/WEB-
INF/cfusion/lib添加到Dcoldfusion.classPath,服务器也不会真正启动。

那么,在jvm.config中干净地向ColdFusion类路径添加内容的神奇公式是什么?


问题答案:

从克里斯蒂安·坎特雷尔(Christian Cantrell)–工程经理兼传道者,我给您提供《
ColdFusion类路径的权威指南》
(尽管有点过时了)

这是我认为与您的设置有关的部分的摘录:

J2EE部署

  1. 将类或jar文件添加到类路径的最简单方法是将它们放在lib目录中,并在其中自动选择它们。该目录位于{cf_installation} /
    servers / lib。这些类文件将对所有服务器可用。

  2. 您也可以通过将它们放在“ {cf_installation} / servers / default / cfmx / WEB-INF /
    lib”中,使类文件仅对ColdFusion服务器可用。(请注意,将它们放在{cf_installation} / servers / default
    / cfmx / WEB-INF / cfusion / lib中将不起作用。)

3.
您可以将它们放在任何Java扩展目录中。要查找Java扩展目录的列表,请打开ColdFusion管理员,然后单击“系统信息”。在底部,您将看到一个名为“
Java Ext Dirs”的系统属性。您可以将jar和class文件放在这些目录中的任何一个中,以使它们由ColdFusion服务器拾取。

4.
另一种方法是通过JRun管理控制台添加类。打开控制台,在默认服务器下,单击设置,然后将您的类添加到类路径列表。(请注意,您也可以单击默认服务器下的“
ColdFusion MX应用程序”,然后单击设置进行相同的更改。)

  1. 最后,您可以再次自己编辑jvm.config文件,但是,我再次建议您继续使用上述方法之一。

从下面的评论更新

编辑jvm.config文件(选项5)时,请尝试将目录路径添加到java.class.path=jvm.config文件中的行(在底部)。不像java.args=您在发布的示例中所做的那样。



 类似资料:
  • 问题内容: 在下面的函数中,如果用户尚未登录,我想将其重定向到。是否有一个特殊的变量可以为我提供当前的URL,该URL可以像下面的示例那样工作? 我需要检查当前URL是否为,因为如果不这样做,服务器将进入无限循环。 问题答案: 您可以检查请求对象上的几个属性(可能在此处记录),请参见此处记录。不过,我可以建议一下,这样一来,如果您决定将视图路由到另一个或多个URL,就会被覆盖

  • 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于自定义服务器行为 Dreamweaver 附带有一组内置的服务器行为,从而让您可以轻松地向站点添加动态功能。您可以扩展 Dreamweaver 功能,方式是通过创建满足您的开发需求的服务器行为,或者通过从

  • 问题内容: 我正在运行Ubuntu,并希望通过包含多个jar文件从终端执行Java文件。 我的所有罐子都放在tha jar文件夹中。 我试过了 我得到以下错误。 谁能指导如何在classpath中使用多个jar? 问题答案: 从类路径中删除空格并添加当前路径 从Java 6开始,您可以使用类路径通配符

  • 问题内容: 谁能告诉我如何在OSX上添加到类路径? 问题答案: 如果要使计算机上的每个Java应用程序都可以使用一组特定的JAR文件(或.class文件),那么最好的选择是将这些文件添加到中。 或者,如果你想这样做的每一个Java应用程序,但只有当 你 的Mac OS X帐户运行它们,然后使用来代替。 编辑: 如果您只想对特定的应用程序执行此操作,如Thorbjørn所要求的,那么您将需要告诉我们

  • 我尝试在server.xml中添加一个新的docbase,以便在我的tomcat服务器中定义一个上传目录。然而,如果我将它添加到我的独立tomcat服务器上,它会像魔咒一样工作: 但是在我的本地eclipse tomcat服务器配置中它不起作用。我的发布操作是“更新上下文路径”,我在服务器选项卡中使用“工作区元数据”。 知道我哪里做错了吗?

  • 我需要在一个表中添加多个列,但将这些列放在一个名为的列之后。 我试过这个: 我得到这个错误: 您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以了解在'后面第7行的')处使用的正确语法 如何在这样的查询中使用AFTER?