找不到ColdFusion / Java类异常

时间:2015-04-17 05:29:24

标签: java coldfusion classnotfoundexception opencsv

我正在尝试使用Coldfusion和JavaLibrary解析CSV文件。我找到了一些例子,但似乎ColdFusion找不到Jar-File。

这是我的代码:

<cfset t01= getTickCount()>
    <cfscript>
        fileReader = createobject("java","java.io.FileReader");
        fileReader.init("C:\Dev\files.csv");
        csvReader = createObject("java","au.com.bytecode.opencsv.CSVReader");
        csvReader.init(fileReader, ",");
    </cfscript>

<cfset t02= getTickCount()>
<cfset ArrayData = csvReader.readAll()>
<cfset t03= getTickCount()>

<cfoutput>
    Process Data: #t02 - t01# ms
    Display Dump: #t03 - t02# ms
    <cfdump var="ArrayData"><cfabort />
</cfoutput>

这是ErrorMessage:

java.lang.ClassNotFoundException: au.com.bytecode.opencsv.CSVReader
    at coldfusion.bootstrap.BootstrapClassLoader.loadClass(BootstrapClassLoader.java:235)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248).....more Stack blabla......

我正在使用opencsv Library。 Jar文件位于以下文件夹中:

  

的wwwroot / WEB-INF / lib中

我也多次重启服务器。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我下载了opencsv jar文件,看起来你可能错误地引用了它。

而不是:

csvReader = createObject("java","au.com.bytecode.opencsv.CSVReader");

试试这个:

csvReader = createObject("java","com.opencsv.CSVReader");

我正在查看最新版本3.3,但我认为没有改变。

来自评论(我的假设不正确)

正如Leigh在评论中指出的那样,旧版本的opencsv库使用了与最新版本不同的软件包名称。旧版本使用au.com.bytecode.opencsv但新版本使用com.opencsv