事实API和coldfusion

时间:2016-03-29 18:05:42

标签: java class jar coldfusion factual

我使用了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类。

有人可以给我一些指导吗?

1 个答案:

答案 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");