首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事实API和coldfusion

事实API和coldfusion
EN

Stack Overflow用户
提问于 2016-03-30 02:05:42
回答 1查看 127关注 0票数 1

我采用了factual API的java实现(参考http://developer.factual.com/),并为Factual创建了一个JAR文件。为此,我在eclipse中打开一个包含实际java文件的新项目,然后导出到一个新的jar文件。

我将该jar文件放在coldfusion安装的/WEB-INF/lib/文件夹中。

在重新启动Coldfusion之后,我尝试创建一个新的cfobject,如下所示

代码语言:javascript
复制
<cfscript>

     // Initialize the Java class. 
     factualClass=CreateObject("java", "src.main.java.com.factual.driver.Factual"); 

</cfscript>

我得到一个错误,表明它找不到事实类。

有人能给我一些指导吗?

EN

回答 1

Stack Overflow用户

发布于 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+还支持动态类加载。

代码语言:javascript
复制
 // 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行

代码语言:javascript
复制
     package com.factual.driver; // ie "com.factual.driver"

。。以及第39行的类声明。

代码语言:javascript
复制
     public class Factual {   // ie "Factual"

这两者结合在一起,给出了与createObject一起使用的确切(区分大小写)路径:

代码语言:javascript
复制
     factualClass=CreateObject("java", "com.factual.driver.Factual");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36291866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档