我使用了Factual API的java实现(引用http://developer.factual.com/)并为事实制作了一个JAR文件。我通过在eclipse中使用事实java文件打开一个新项目然后导出到一个新的jar文件来完成此操作。
我把那个jar文件放在我的coldfusion安装的/ WEB-INF / lib /文件夹中。
重新启动Coldfusion后,我试图像这样创建一个新的cfobject
<cfscript>
// Initialize the Java class.
factualClass=CreateObject("java", "src.main.java.com.factual.driver.Factual");
</cfscript>
我收到错误消息,表明找不到Factual类。
有人可以给我一些指导吗?
答案 0 :(得分:0)
(评论摘要)
听起来你可能正在导出源文件,即* .java而不是编译的类文件,即* .class。在Jar Export wizard中,请务必选择&#34; 导出生成的类文件和资源&#34;选项。 (要在expi之前自动编译项目源,请启用设置:JAR打包&gt;如果不自动构建项目,则构建项目选项)。如果您愿意,还可以在MVN repository中找到预编译的罐子。
将该jar文件放入我的coldfusion安装&#39; s / WEB-INF / lib / 文件夹中。
CF10 +还支持通过新的应用程序级别设置THIS.javaSettings
进行动态类加载。
// Initialize the Java class.
factualClass=CreateObject("java", "src.main.java.com.factual.driver.Factual");
正如感兴趣的那样,src/main/java/
实际上并不是libary类名的一部分。它是标准目录结构used in Maven projects。它可能在导出源时包含,但不包括已编译的类。
您可以通过检查API(即javadocs)或查看源文件来验证正确的路径和类名。 Package declarations始终位于源文件的顶部,例如src/main/java/com/factual/driver/Factual.java的第1行:
package com.factual.driver; // ie "com.factual.driver"
..和第39行的类声明。
public class Factual { // ie "Factual"
Combined为您提供了与createObject一起使用的确切(区分大小写的)路径:
factualClass=CreateObject("java", "com.factual.driver.Factual");