2011-04-05 58 views
0

我正在使用JavaLoader.cfc。我以前用过它,但无法理解如何让这些库中的一个对我做出回应。ColdFusion 8 JavaLoader LingPipe或OpenNLP,我该如何初始化它?

我已将JAR文件放入我的java文件夹。我创建了“JavaLoader”对象并将“路径”传递给它。但它一直说它无法找到jar文件中的类名或沿着这些行的东西...

无法找到请求的类。请求的类 opennlp.tools.sentdetect在加载的 罐子/目录中找不到。

对于Java以及如何将其与ColdFusion捆绑在一起,我承认我总共是n00b。我敢肯定这是愚蠢的,如果我知道我可以使用任何JAR文件在我的处置...

如果可以,请帮助!

+0

如果您共享代码以加载JavaLoader并对其进行初始化并将其包含在您传递的路径中的Jar文件中,它将会有所帮助。 – 2011-04-05 19:11:16

回答

0

我查了OpenNLP的javadoc here,似乎opennlp.tools.sentdetect没有构造函数所以这就是为什么它返回一个错误。你想调用哪种方法?

我做了一个简单的例子来检测句子但你需要得到可用的英文模式here

<cfscript> 
// load NLP jar libraries 
sourcePaths = [expandPath("opennlp-tools-1.5.0\opennlp-tools-1.5.0.jar"),expandPath("opennlp-tools-1.5.0\lib\maxent-3.0.0.jar"),expandPath("opennlp-tools-1.5.0\lib\jwnl-1.3.3.jar")]; 
javaloader = createObject("component", "javaloader.JavaLoader").init(sourcePaths); 

// load our model (here english model) 
// you can create your own model using the TrainerTool 
inputFile = ExpandPath("en-sent.bin"); 
modelIn = createObject("java", "java.io.FileInputStream").init(inputFile); 
model = javaloader.create("opennlp.tools.sentdetect.SentenceModel").init(modelIn); 

// let's try the sentence detector 
sentenceDetector = javaloader.create("opennlp.tools.sentdetect.SentenceDetectorME").init(model); 
sentences = sentenceDetector.sentDetect("I love working with Java in ColdFusion! CF rocks, really! But sometimes working with Java libraries is a bit tricky :-)"); 
</cfscript> 

<cfdump var="#sentences#"> 

玩得开心! :-)

+0

正是我所需要的。祝好! – 2011-04-06 13:08:47

+0

*似乎'opennlp.tools.sentdetect'没有构造函数*更具体地说,它是[包的路径](http://docs.oracle.com/javase/tutorial/java/package/packages.html) ,而不是实际的课程,这就是为什么它不起作用。 'createObject'需要[class]的完整路径(http://docs.oracle.com/javase/tutorial/java/javaOO/classes.html)。 – Leigh 2014-08-27 16:02:47

0

这里没有Java专家,但是我确实通过遵循光线指令获得了POI工作here有两篇文章。他介绍了建立Javaloader

0

您的问题可能只是在JAR的路径中。另外请确保您将路径作为数组中的字符串传递给JAR文件。

提示1:您不需要将文件放在您的java文件夹中。能够将JAR文件放置在任何目录(也许是应用程序根目录)中,是JavaLoader为您提供的功能。否则,您可能不会使用JavaLoader,只需将JAR文件放入JVM类路径中即可。提示2:确保将JavaLoader初始化到服务器范围中,因为它会显着降低您的开销。