- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经下载了 PDFBox jar 文件并将其放在 {application.home}\lib
文件夹下。 PDFBox 还有一些其他的辅助 jar 文件。我也将它们全部放在 {application.home}\lib
文件夹中。我重新启动了 ColdFusion 2016 服务。
在我的代码文件中,我有一些非常简单的测试行。
<cftry>
<cfset local.pdfUnitObj = CreateObject("java", "org.apache.pdfbox.pdmodel")>
<cfcatch type="any">
<cfdump var="#cfcatch#" output="C:\inetpub\wwwroot\cfcatcherr.txt">
</cfcatch>
</cftry>
在 cfcatcherr.txt
中,我一直收到错误提示,java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel
在 org.apache.pdfbox.pdmodel
中,有一个 PDDocument 类。我试过引用 org.apache.pdfbox.pdmodel.PDDocuemtn
但它仍然给我错误。我已将所有这些文件放在 {application.home}\jre\lib
和 {application.home}\wwwroot\WEB-INF\lib
下。错误还是一样。是不是我没有把jar文件放在正确的位置?请问有人知道如何解决这个问题吗?
最佳答案
CF2016+的首选方法
CF2016+ 有一个更简单的选项,而不是处理类路径并且每次都必须重新启动服务器。使用 this.javaSettings 在 Application.cfc 中动态加载 jars . LoadPaths
参数接受一个或多个目录(包含要加载的 jar 文件)的数组:
component {
this.name = "YourAppName";
// loads all jars in the subdirectories named "lib" and "ext"
this.javaSettings = { LoadPaths = [ ".\lib\", ".\ext\" ] };
}
.. 或提供一组单独的 jar 文件路径:
component {
this.name = "YourAppName";
// loads individual jars
this.javaSettings = { LoadPaths = [ "C:\path\to\pdfbox-2.0.16.jar"
, "C:\path\to\xmpbox-2.0.16.jar"
, .. more paths
]
};
}
Adrian J. Moreno also pointed out这种方法的另一个优点:
Much easier to check the JARs in with your code base and deploy to servers instead of having to document for DevOps to remember to put JAR X in location Y should you need to upgrade or build a new server.
旧方法
但是,为了回答您之前的问题,最常见的 ClassNotFoundException 原因是:
类名错误
CreateObject 需要一个类名 (cAsE sEnSiTiVe)。
Jar 文件不在 CF 类路径中
除了核心 JVM 路径之外,CF 仅扫描 Server Settings > ColdFusion Class Path
中列出的位置。放置在别处的 Jar 文件将不会被检测到。 (默认的CF类路径包括WEB-INF\lib
目录)
在类路径中放置库的多个副本有时会导致错误。尽管根据我的经验,该问题通常会导致不同的错误。
忘记重启 CF 服务器
除了核心 JVM 路径之外,CF 服务器仅在启动时扫描类路径位置。因此,必须重新启动 CF 服务器才能检测到任何新的 jar。
您的错误是由 #1 - 错误的类名引起的。 org.apache.pdfbox.pdmodel
是一个包的名称 -不是一个类(class)。类名应该是 org.apache.pdfbox.pdmodel.PDDocument
(注意 PDDocument 的拼写)。
关于java - ColdFusion 2016 Java ClassNotFoundException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56997131/
我的应用在尝试访问外部依赖项时遇到 NoClassDefFoundError,但仅限于作为 jar 运行时。 使用 Intellij,我有一个带有主类的简单应用程序,其中包含一些对外部依赖项(例如 s
我收到以下异常: java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.server.servlet.ResteasyBootstr
我正在尝试使用eclipse和tomcat调试solr4.6源代码。我收到错误消息:HTTP 状态 500 - {msg=SolrCore 'collection1' 由于初始化失败而不可用:[sch
我是新来的,很抱歉我的英语不好;)。 我尝试使用以下代码在 java 中加载插件 jar: package testprogramm; import java.io.File; import java
我重新安装了 ADT Bundle,因为我在更新 eclipse 后遇到了一些问题。 现在,当我想测试我的应用程序时,出现以下异常: 06-05 10:33:35.770: E/AndroidRunt
我浏览过现有的帖子,这些帖子处理在 Eclipse 中的 Tomcat 下运行 Java Web 应用程序的 ClassNotFoundException。 我无法提供源代码和配置 Artifact
我忙于我的应用一个多星期,突然: 11-12 07:59:17.860 1653-1653/nl.test.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: ma
我的应用程序有问题,昨天一切正常,但今天我更新了 sdk,现在当我尝试运行我的应用程序时,出现这样的错误 05-21 00:14:19.285: W/dalvikvm(7061): Unable t
我正在阅读 JPA docs在 Spring ,我正在尝试重组我的代码。 我现在所拥有的: BrewerRepository @Repository public class BrewerReposi
我想像 BalusC's example 一样实现 fileUpload . 不幸的是,我已经在努力声明 servlet。 Extensions Filter javax.faces
在某些机器上运行这个小程序不起作用,但在其他机器上它工作得很好。在所有情况下看起来都安装了 JRE 1.6.0_26。 var attributes = {codebase:'http://kas
我将跟随这个非常简单的教程(http://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm)一起学习,直到我尝试运行Java文件为止,一切运行良好。
我看到了帖子,并按照流程进行了操作。但这没有用。 ClassNotFoundException, while running example job of Hadoop 请帮助我。 创建的 mapre
我尝试在cloudera quickstart vm上为hadoop运行Mahout Kmeans示例。我在这里读link to clouudera block和这里stack overflow po
我有一个mapreduce程序,其中我使用Hcatalog从Hive表'A'中获取带有HcatInputFormat的详细信息,对其进行处理,然后使用HcatOutput格式将其写回到Hive表'B'
我是激发应用程序编程的新手,因此在这里为这个基本的编程而苦苦挣扎。 我有 scala ide 并附加了来自最新 hadoop 和 spark 发行版的相关 jar 文件。我正在使用的只有一个基本的 s
我正在尝试在本地模式下运行Spark示例,但是正在获取以下堆栈跟踪: Exception in thread "main" java.lang.NoClassDefFoundError: org/ap
我有以下代码: // Test TODO remove try { System.out.println(System.getProperties().getPrope
我有以下文件: src/my_proj/myns.clj: (ns my-proj.myns) (defrecord MyRecord [a b c]) 测试/my_proj/myns_test.c
我试图让应用程序动态加载某些类,然后调用启动方法,但问题是,由于 ClassLoader 不同,一个类无法调用另一个类的方法,但是正如我已经用 google 搜索的那样,我用父类创建了两个类加载器。这
我是一名优秀的程序员,十分优秀!