【发布时间】:2016-03-29 18:05:41
【问题描述】:
我采用了 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 类。
谁能给我一些指导?
【问题讨论】:
-
不,罐子可以在任何一个位置。就我个人而言,我更喜欢使用 /web-inf/lib 并将 cfusion\lib 仅用于内置 jar,但是只要您之后重新启动,任何一个目录都可以工作。 @user2320726 - 您使用的是哪个版本? CF10+支持通过application.cfc动态加载,stackoverflow.com/questions/32001030/…
-
CF11 ...我在制作 jar 文件时会不会弄错了?我可以通过 7-zip 文件管理器查看 jar 结构,看起来路径还可以。
-
那个或者你的 createObject 路径是关闭的。如果您查看其中一个类,则基本包是
com.factual.driver.*。那是你的 jar 文件和你的 createObject 语句中应该存在的结构。您的 jar 中的顶级文件夹是什么?旁注,虽然您所做的工作也很好,但在 CF11 中使用应用程序级类加载更容易。无需重新启动服务器。请参阅上面的 Application.cfc 链接。 -
我尝试将路径更改为“com.factual.driver.Factual”但没有成功。当我查看 jar 文件结构时,它模仿了我打开下载的包含所有 java 文件的 zip 文件时看到的路径。我应该重新创建 jar 文件,以便它从“com”级别开始吗?
-
使用 Maven 构建通常更简单。这是一个预编译的 jar(不确定它是否是正确的版本)。 mvnrepository.com/artifact/com.factual/factual-java-driver/… 。注意顶层文件夹是
com.*?应该是这样,然后您的 createObject 调用将使用com.factual.driver.Factual。
标签: java class jar coldfusion factual