Java 用jndi配置jackrabbit

Java 用jndi配置jackrabbit,java,jndi,jackrabbit,drools-guvnor,Java,Jndi,Jackrabbit,Drools Guvnor,我试图通过jndi配置jackrabbit的文件系统和持久性管理器,如下(repository.xml): 启动服务器时,出现以下异常: 16:34:09,209 INFO [STDOUT] 2013-12-03 16:34:09,205 ERROR [org.apache.jackrabbit.core.fs.db.DbFileSystem] failed to initialize file system java.sql.SQLException: No suitable drive

我试图通过jndi配置jackrabbit的文件系统和持久性管理器,如下(
repository.xml
):


启动服务器时,出现以下异常:

16:34:09,209 INFO  [STDOUT] 2013-12-03 16:34:09,205 ERROR [org.apache.jackrabbit.core.fs.db.DbFileSystem] failed to initialize file system
java.sql.SQLException: No suitable driver found for java:/jdbc/MY_DATASOURCE/default
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at org.apache.jackrabbit.core.fs.db.DbFileSystem.getConnection(DbFileSystem.java:187)
    at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.initConnection(DatabaseFileSystem.java:956)
    at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:175)
    at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(FileSystemConfig.java:47)
    at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:244)
    at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557)
    at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:245)
    at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:265)
    at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:333)
    at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:363)
    at org.drools.guvnor.server.repository.BRMSRepositoryConfiguration.newSession(BRMSRepositoryConfiguration.java:112)
16:34:09209信息[STDOUT]2013-12-03 16:34:09205错误[org.apache.jackrabbit.core.fs.db.DbFileSystem]无法初始化文件系统
java.sql.SQLException:找不到适合java的驱动程序:/jdbc/MY_DATASOURCE/default
位于java.sql.DriverManager.getConnection(DriverManager.java:602)
位于java.sql.DriverManager.getConnection(DriverManager.java:185)
位于org.apache.jackrabbit.core.fs.db.DbFileSystem.getConnection(DbFileSystem.java:187)
位于org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.initConnection(DatabaseFileSystem.java:956)
位于org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:175)
位于org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(FileSystemConfig.java:47)
位于org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:244)
位于org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557)
位于org.apache.jackrabbit.core.transentrepository$2.getRepository(transentrepository.java:245)
位于org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:265)
在org.apache.jackrabbit.core.transientpository.login上(transientpository.java:333)
在org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:363)
位于org.drools.guvnor.server.repository.BRMSRepositoryConfiguration.newSession(BRMSRepositoryConfiguration.java:112)
jackrabbit的版本是1.4
jackrabbit似乎不喜欢jndi配置。我还尝试了
url=jdbc/MY_DATASOURCE/default
,但得到了与sqlserver jdbc url不同的相同错误。这就是Java试图告诉您的——类路径上没有能够理解JDBCURL的驱动程序。很可能您使用的是占位符数据,需要使用正确的DBMS特定JDBC URL替换占位符数据。@gimdi表示可以使用jndi来代替以InitialContext作为驱动程序的JDBC URL。您是否测试了数据源的设置是否正确?MySQL驱动程序在类路径上可用吗?JackRabbit的配置看起来是正确的,这让我觉得这是数据源的问题。我认为这个版本的JackRabbit不支持数据源。如果您需要此功能,我建议升级到更新版本的Jackrabbit(2.x)@lucasweb yes我的数据源配置正确@ThomasMueller我开始这么想,不幸的是,我不允许升级那个库(遗留代码)。从1.4javadoc开始,有一个和一个可配置的属性
dataSourceLocation
,而不是
url
,但是我有一个NullPointerException。有什么想法吗?
16:34:09,209 INFO  [STDOUT] 2013-12-03 16:34:09,205 ERROR [org.apache.jackrabbit.core.fs.db.DbFileSystem] failed to initialize file system
java.sql.SQLException: No suitable driver found for java:/jdbc/MY_DATASOURCE/default
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at org.apache.jackrabbit.core.fs.db.DbFileSystem.getConnection(DbFileSystem.java:187)
    at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.initConnection(DatabaseFileSystem.java:956)
    at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:175)
    at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(FileSystemConfig.java:47)
    at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:244)
    at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557)
    at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:245)
    at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:265)
    at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:333)
    at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:363)
    at org.drools.guvnor.server.repository.BRMSRepositoryConfiguration.newSession(BRMSRepositoryConfiguration.java:112)