2015-04-17 19 views
6

Bir CSV Dosyasını Coldfusion ve JavaLibrary ile ayrıştırmaya çalışıyorum. Bazı örnekler buldum ama ColdFusion'ın Jar-File'ı bulamıyor gibi görünüyor.ColdFusion/Java Sınıfı Bulunamadı Özel Durum

Bu benim Kod geçerli:

<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> 

ve bu ErrorMessage: Ben opencsv Library kullanıyorum

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...... 

. Kavanoz Dosya aşağıdaki klasörde: Ben de Sunucusu birden çok kez yeniden

lib

wwwroot/WEB-INF /.

Yardımlarınız için teşekkürler!

cevap

2

Opencsv jar dosyasını indirdim ve hatalı bir şekilde başvuruyormuşsunuz gibi görünüyor. Bunun yerine

: Ben son sürümü, 3.3 bakıyordu

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

ama bu değişmedi varsayalım:

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

bu deneyin. sözlerinden

Leigh Açıklamalarda belirttiği gibi

, opencsv kütüphanesinin eski sürümleri son sürümü olduğundan daha farklı bir paket adı kullanılır (benim varsayım yanlış). Eski versiyonlar au.com.bytecode.opencsv kullanıyordu, ancak yeni versiyonlar com.opencsv kullanıyor.

+3

@noah - Miguel-F'nin kafasındaki çividen çıktığından şüpheleniyorum. Kaynağa bakıldığında, eski sürümler (örneğin, 2.2) farklı bir paket adı kullanmışlardır, yani "au.com.bytecode.opencsv". [Daha yeni sürümler] 'de (http://sourceforge.net/p/opencsv/source/ci/release-3.2/tree/examples/AddressExample.java#l1) paket adı "com.opencsv" olarak değiştirildi. Muhtemelen yeni kavanozlardan birini kullanıyorsunuz, ancak eski paket adıyla. Bu nedenle bu yüzden bulunamadı. Yukarıdaki problemi çözmeli. – Leigh

+0

Aynı parçacık nasıl "ram: ///" içinde çalıştırılır? Onunla sıkışmıştım. DosyaReader bellek içi yolu işleyemiyor gibi görünüyor. – 84RR1573R