Java 事实API和coldfusion

Java 事实API和coldfusion,java,class,jar,coldfusion,factual,Java,Class,Jar,Coldfusion,Factual,我采用了Factual API(参考)的java实现,并为Factual创建了一个JAR文件。为此,我在eclipse中打开了一个包含java文件的新项目,然后导出到一个新的jar文件 我将该jar文件放在coldfusion安装的/WEB-INF/lib/文件夹中 重新启动Coldfusion后,我尝试创建一个新的cfobject,如下所示 <cfscript> // Initialize the Java class. factualClass=Creat

我采用了Factual API(参考)的java实现,并为Factual创建了一个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>

//初始化Java类。
factualClass=CreateObject(“java”,“src.main.java.com.factual.driver.factual”);
我得到一个错误,表明它找不到事实类

有人能给我一些指导吗

(评论摘要)

听起来您可能正在导出源文件ie*.java,而不是已编译的类文件ie*.class。在中,确保选择“导出生成的类文件和资源”选项。(要在expi之前自动编译项目源代码,请启用设置:JAR packaging>buildprojects if not Build automatically选项)。如果您愿意,还可以在中找到预编译的JAR

将该jar文件放在我的coldfusion安装的/WEB-INF/lib中/ 文件夹

CF10+还通过新的应用程序级别设置支持动态类加载

有趣的是,
src/main/java/
实际上不是库类名的一部分。它是一个标准的目录结构。在导出源代码时可能会包含它,但在导出编译的类时不会包含它

通过检查API ie javadocs或查看一个源文件,始终可以验证正确的路径和类名。始终位于源文件的顶部,例如在以下内容的第1行:

。。以及第39行的类声明

     public class Factual {   // ie "Factual"
组合后,可提供与createObject一起使用的精确(区分大小写)路径:

     factualClass=CreateObject("java", "com.factual.driver.Factual");
(评论摘要)

听起来您可能正在导出源文件ie*.java,而不是已编译的类文件ie*.class。在中,确保选择“导出生成的类文件和资源”选项。(要在expi之前自动编译项目源代码,请启用设置:JAR packaging>buildprojects if not Build automatically选项)。如果您愿意,还可以在中找到预编译的JAR

将该jar文件放在我的coldfusion安装的/WEB-INF/lib中/ 文件夹

CF10+还通过新的应用程序级别设置支持动态类加载

有趣的是,
src/main/java/
实际上不是库类名的一部分。它是一个标准的目录结构。在导出源代码时可能会包含它,但在导出编译的类时不会包含它

通过检查API ie javadocs或查看一个源文件,始终可以验证正确的路径和类名。始终位于源文件的顶部,例如在以下内容的第1行:

。。以及第39行的类声明

     public class Factual {   // ie "Factual"
组合后,可提供与createObject一起使用的精确(区分大小写)路径:

     factualClass=CreateObject("java", "com.factual.driver.Factual");

不,罐子可以在任何位置。就我个人而言,我更喜欢使用/web inf/lib,而只将cfusion\lib留给内置JAR,但这两个目录都可以工作,只要以后重新启动即可@用户2320726-您使用的是哪个版本?CF10+通过应用程序支持动态加载。cfc、CF11。。。当我创建jar文件时,我可能会把它搞错吗?我可以通过7-zip文件管理器查看jar结构,这样看来路径是正确的,或者您的createObject路径已关闭。如果您查看其中一个类,则基本包是。这就是jar文件和createObject语句中应该包含的结构。jar中的顶级文件夹是什么?请注意,虽然您所做的工作也很好,但在CF11中,使用应用程序级类加载更容易。不需要重新启动服务器。请参阅上面的Application.cfc链接。我尝试将路径更改为“com.factual.driver.factual”,但没有成功。当我查看jar文件结构时,它模仿了打开包含所有java文件的zip文件时看到的路径。我是否应该重新创建jar文件,使其从“com”级别开始?使用Maven通常更简单。这是一个预编译的jar(不确定它是否是正确的版本)。请注意,顶级文件夹是
com.*
?这就是它应该是的,然后您的createObject调用将使用
com.factual.driver.factual
。不,JAR可以在任何位置。就我个人而言,我更喜欢使用/web inf/lib,而只将cfusion\lib留给内置JAR,但这两个目录都可以工作,只要以后重新启动即可@用户2320726-您使用的是哪个版本?CF10+通过应用程序支持动态加载。cfc、CF11。。。当我创建jar文件时,我可能会把它搞错吗?我可以通过7-zip文件管理器查看jar结构,这样看来路径是正确的,或者您的createObject路径已关闭。如果您查看其中一个类,则基本包是。这就是jar文件和createObject语句中应该包含的结构。jar中的顶级文件夹是什么?请注意,虽然您所做的工作也很好,但在CF11中,使用应用程序级类加载更容易。不需要重新启动服务器。请参阅上面的Application.cfc链接。我尝试将路径更改为“com.factual.driver.factual”,但没有成功。当我查看jar文件结构时,它模仿了打开包含所有java文件的zip文件时看到的路径。我是否应该重新创建jar文件,使其从“com”级别开始?使用Maven通常更简单。这是一个预编译的jar(不确定它是否是正确的版本)。请注意,顶级文件夹是
com.*
?这就是它应该是的,然后您的createObject调用将使用
com.factual.driver.factual