[英]java.lang.NoClassDefFoundError: javax/crypto/Cipher in oracle 11g database connection osgi
I'm working with Oracle database on CQ5 - OSGI bundle management. 我正在使用CQ5上的Oracle数据库-OSGI捆绑管理。 At first i have class javax.crypt.Cipher
already imported at system bundle (org.apache.felix.framework). 首先,我已经在系统捆绑包(org.apache.felix.framework)中导入了javax.crypt.Cipher
类。
...
javax.crypto,version=0.0.0.1_007_JavaSE
javax.crypto.interfaces,version=0.0.0.1_007_JavaSE
javax.crypto.spec,version=0.0.0.1_007_JavaSE
...
Since then i followed this example to create a Oracle osgi connector bundle and imported the pakcage that contains javax.crypt.Cipher
: 从那时起,我按照此示例创建了Oracle osgi连接器捆绑包,并导入了包含javax.crypt.Cipher
的pakcage:
Imported Packages javax.crypto,version=0.0.0.1_007_JavaSE from org.apache.felix.framework (0)
javax.crypto.interfaces,version=0.0.0.1_007_JavaSE from org.apache.felix.framework (0)
javax.crypto.spec,version=0.0.0.1_007_JavaSE from org.apache.felix.framework (0)
When i called sql connection to my database, an error was raised: 当我调用到数据库的sql连接时,引发了一个错误:
Caused by: java.lang.NoClassDefFoundError: javax/crypto/Cipher
at oracle.security.o5logon.O5LoginClientHelper.decryptAES(Unknown Source)
at oracle.security.o5logon.O5LoginClientHelper.generateOAuthResponse(Unknown Source)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:655)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:366)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:65)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
at org.apache.jsp.apps.dbtest.components.dbconnectiontest.body_jsp._jspService(body_jsp.java:179)
at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:502)
... 129 more
As my understanding javax.crypto.Cipher
already compiled but does not exist on runtime, do you have any idead to resolve this issue ? 据我了解, javax.crypto.Cipher
已编译,但在运行时不存在,您是否有解决此问题的想法?
Usually this class comes from jce.jar included by the Oracle JDK. 通常,此类来自Oracle JDK包含的jce.jar。 But your software could not work with different kinds of JDKs, like OpenJDK. 但是您的软件不能与其他类型的JDK(例如OpenJDK)一起使用。
Make this dependency available at runtime including the JCE standalone jar . 使此依赖项在运行时可用,包括JCE独立jar 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.