我采用了factual API的java实现(参考http://developer.factual.com/),并为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>我得到一个错误,表明它找不到事实类。
有人能给我一些指导吗?
发布于 2016-03-31 10:36:09
(评论摘要)
听起来您可能是在导出源文件,即*.java,而不是已编译的类文件,即*.class。在Jar Export wizard中,确保选择"Export generated class files and resources“选项。(要在expi之前自动编译项目源代码,请启用设置: JAR packaging > Build projects if not build automatically选项)。如果您愿意,也可以在MVN repository中找到预编译的jars。
将该jar文件放在我的coldfusion安装的/WEB-INF/lib/文件夹中。
通过新的应用程序级别设置THIS.javaSettings,CF10+还支持动态类加载。
// Initialize the Java class.
factualClass=CreateObject("java", "src.main.java.com.factual.driver.Factual");有趣的是,src/main/java/实际上不是库类名的一部分。它是一个标准的目录结构used in Maven projects。它可能包含在导出源代码时,但不包括已编译的类。
您总是可以通过检查API ie javadoc或查看某个源文件来验证正确的路径和类名。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"这两者结合在一起,给出了与createObject一起使用的确切(区分大小写)路径:
factualClass=CreateObject("java", "com.factual.driver.Factual");https://stackoverflow.com/questions/36291866
复制相似问题