Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat oracle钱包配置。如何将oraclepki.jar添加到类路径_Java_Oracle_Tomcat - Fatal编程技术网

Java Tomcat oracle钱包配置。如何将oraclepki.jar添加到类路径

Java Tomcat oracle钱包配置。如何将oraclepki.jar添加到类路径,java,oracle,tomcat,Java,Oracle,Tomcat,我按照以下指南将oracle钱包支持添加到我的Vaadin webapp中 但是,我在我的应用程序中遇到以下异常 Caused by: java.sql.SQLException: PKI classes not found. To use 'connect /' functionality, oraclepki.jar must be in the classpath: java.lang.NoClassDefFoundError: oracle/security/crypto/core/R

我按照以下指南将oracle钱包支持添加到我的Vaadin webapp中

但是,我在我的应用程序中遇到以下异常

Caused by: java.sql.SQLException: PKI classes not found. To use 'connect /' functionality, oraclepki.jar must be in the classpath: java.lang.NoClassDefFoundError: oracle/security/crypto/core/RSAPrivateKey
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.PhysicalConnection.getSecretStoreCredentials(PhysicalConnection.java:2626) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.PhysicalConnection.parseUrl(PhysicalConnection.java:2394) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.PhysicalConnection.readConnectionProperties(PhysicalConnection.java:1932) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:489) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510) ~[ojdbc6.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
    at org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) ~[tomcat-dbcp.jar:8.0.24]
    at org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:255) ~[tomcat-dbcp.jar:8.0.24]
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2303) ~[tomcat-dbcp.jar:8.0.24]
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2289) ~[tomcat-dbcp.jar:8.0.24]
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038) ~[tomcat-dbcp.jar:8.0.24]
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532) ~[tomcat-dbcp.jar:8.0.24]
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) ~[spring-jdbc-4.1.2.RELEASE.jar:4.1.2.RELEASE]
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ~[spring-jdbc-4.1.2.RELEASE.jar:4.1.2.RELEASE]
    ... 55 more
原因:java.sql.SQLException:找不到PKI类。要使用“connect/”功能,oraclepki.jar必须位于类路径中:java.lang.NoClassDefFoundError:oracle/security/crypto/core/RSAPrivateKey
在oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.PhysicalConnection.getSecretStoreCredentials(PhysicalConnection.java:2626)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.PhysicalConnection.parseUrl(PhysicalConnection.java:2394)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.PhysicalConnection.readConnectionProperties(PhysicalConnection.java:1932)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:489)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.T4CConnection.(T4CConnection.java:203)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)~[ojdbc6.jar:oracle jdbc驱动程序版本-“11.1.0.7.0-Production”]
在oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)~[ojdbc6.jar:oraclejdbc驱动程序版本-“11.1.0.7.0-Production”]
在org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)~[tomcat dbcp.jar:8.0.24]
在org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:255)~[tomcat dbcp.jar:8.0.24]
在org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2303)~[tomcat dbcp.jar:8.0.24]
在org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2289)~[tomcat dbcp.jar:8.0.24]
在org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038)~[tomcat dbcp.jar:8.0.24]
在org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532)~[tomcat dbcp.jar:8.0.24]
在org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)~[spring-jdbc-4.1.2.RELEASE.jar:4.1.2.RELEASE]
在org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)~[spring-jdbc-4.1.2.RELEASE.jar:4.1.2.RELEASE]
... 55多
异常表示将
oraclepki.jar
(在oracle客户端发行版中找到)添加到类路径。我试图通过以下方法将其添加到类路径

  • oraclepki.jar
    添加到
    $CATALINA_HOME/lib

  • oraclepki.jar
    添加到
    $CATALINA_HOME/webapps//WEB-INF/lib

  • 使用
    classpath
    环境变量添加到classpath
上述行动均未发生任何变化


原因可能是什么?

我不得不在
$CATALINA_HOME/lib
中再添加两个罐子,然后它就工作了

所有必要的图书馆如下:

  • osdt_cert.jar
  • osdt_core.jar
  • oraclepki.jar
上述JAR可以在完整的Oracle客户端发行版中找到(例如,不是Oracle Instant Client)


oracle客户端安装中库的位置:
$oracle_HOME/jlib

您编辑过java.security文件吗?在sun Provider之前添加了oracle.security.pki.OraclePKIProvider?@ArkadiuszŁukasiewicz是的,我添加了。