java - Factual API 和 Coldfusion

标签 java class jar coldfusion factual

我采用了 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/

相关文章:

java - 查询 DSL & Maven : Classes not generated, 但仅在命令行上(在 Eclipse 中它工作正常)

java - 我们能得到 TestNG 报告显示测试类是通过还是失败吗

Java程序在数组列表中查找众数

c++ - 如何有条件地实例化不同的父/子类?

Python 类基础

java - JAR 文件不从 ext 加载类文件

c# - 使用代码隐藏条件构建查询的最佳方法?

c++ - 模板 (C++) - 不确定是否正确

java - 加载jar库 加载库

java - 如何静默编译Java文件除非出现错误?