我采用了 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>
我收到一条错误,表明它找不到 Factual 类。
有人可以给我一些指导吗?
最佳答案
(评论摘要)
听起来您可能正在导出源文件,即 *.java,而不是编译后的类文件,即 *.class。在 Jar Export wizard ,请务必选择“导出生成的类文件和资源”选项。 (要在expi之前自动编译项目源,请启用设置:JAR打包>如果不自动构建选项则构建项目)。如果您愿意,还可以在 MVN repository 中找到预编译的 jar。 。
put that jar file in my coldfusion installation's /WEB-INF/lib/ folder.
CF10+还通过新的应用程序级别设置支持动态类加载THIS.javaSettings
。
// Initialize the Java class.
factualClass=CreateObject("java", "src.main.java.com.factual.driver.Factual");
有趣的是,src/main/java/
实际上并不是库类名的一部分。它是一个标准的目录结构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"
组合为您提供与 createObject 一起使用的确切(区分大小写)路径:
factualClass=CreateObject("java", "com.factual.driver.Factual");
关于java - Factual API 和 Coldfusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36291866/