RJDBC Cassandra - > .jfindClass中的错误(as.character(driverClass)[1]):找不到类

时间:2015-09-02 16:36:44

标签: java r

我正在尝试将R连接到Cassandra并且我收到以下错误 - 即使我在运行代码之前将此目录文件夹显式添加到类路径中(我还指向语句中的类路径)?谢谢你的帮助!

需要(RJDBC)

@ManagedBean(name = "Controlomenu")
@SessionScoped
public class Controlomenu {
    @Autowired
    private String pagina;

public Controlomenu(){
    this.pagina= "hello.xhtml";
}
    public String getPagina() {
        return pagina;
    }

    public void setPagina(String pagina) {
        this.pagina = pagina;
    }
    public void Paginalogin() {
        setPagina("login.xhtml");   
    }
    public void Paginaregistar() {
        setPagina("registar.xhtml");    
    }

}

.jfindClass中的错误(as.character(driverClass)[1]):找不到类

4 个答案:

答案 0 :(得分:4)

就我而言,我在JDBC()调用中命名的位置缺少数据库驱动程序。刚刚将Jar添加到该位置,它的工作原理!例如:

JDBC(driverClass="com.vertica.jdbc.Driver", classPath="C:/Program Files/Vertica Systems/JDBC/vertica-jdbc-7.2.1-0.jar")

这有用的线索源于开启调试:

.jclassLoader()$setDebug(1L)

按照此处的建议:https://github.com/s-u/RJDBC/issues/26

答案 1 :(得分:0)

所以,那里的文档非常糟糕,我能够发现你需要以下“Dependency”jar,你需要将它们放在与驱动程序jar文件相同的文件夹中。

JARS清单:

Apache的卡桑德拉-节俭1.2.6 卡桑德拉-JDBC-2.1.1 log4j的-1.2.15 SLF4J-简单1.5.2 libthrift-0.7.0 杰克逊核心ASL-1.9.2 卡桑德拉-ALL-1.2.9 SLF4J-API-1.5.2 Apache的卡桑德拉 - clientutil-1.2.6 杰克逊映射器-ASL-1.9.2 番石榴15.0 SLF4J-log4j12-1.5.2

然而,即使你确实有幸解决了这个问题并且R找到了你的驱动程序,你就会遇到问题并得到下面的错误,似乎没有人修复......

log4j:WARN找不到logger(org.apache.cassandra.cql.jdbc.CassandraDriver)的appender。 log4j:WARN请正确初始化log4j系统。 .jcall中的错误(drv @ jdrv,“Ljava / sql / Connection;”,“connect”,as.character(url)[1],:   java.sql.SQLNonTransientConnectionException:org.apache.thrift.transport.TTransportException:读取负帧大小(-2097152000)!

答案 2 :(得分:0)

请在cassandra / lib文件夹中添加cassandra-jdbc-1.2.5-1.0.0.jar文件。这对我有用。

答案 3 :(得分:-1)

R的例子都没有为我工作,而且我已经读过,即使那些对你有用的例子,你也必须建立一个在a $$中痛苦的分页。只需在python中使用此脚本执行此操作,它就会为您进行分页。

import sys
sys.path.append('/Library/Python/2.7/site-packages/')
import cql
from cassandra.cluster import Cluster
cluster = Cluster(contact_points=['10.121.xxx.xx'], protocol_version=3);
session = cluster.connect();
result = session.execute("select client_id, request_time, request_id,client_ip, exception, method, query_parameters, request_body, resource,response_duration_in_ms, response_http_code, user_id from api.api_usage_log")