2015-10-19 70 views
0

我正在使用CQ5上的Oracle數據庫 - OSGI捆綁管理。起初我已經在系統包(org.apache.felix.framework)上導入了類javax.crypt.Cipherjava.lang.NoClassDefFoundError:javax/crypto/Cipher in oracle 11g數據庫連接osgi

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

從那以後,我跟着這個example創建甲骨文的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) 

當我打電話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 

據我瞭解javax.crypto.Cipher已編譯但運行時不存在,你有任何idead來解決這個問題問題 ?

+0

[java.lang.NoClassDefFoundError:javax/crypto/Cipher]的可能重複(http://stackoverflow.com/questions/22464764/java-lang-noclassdeffounderror-javax-crypto-cipher) –

回答

0

通常這個類來自Oracle JDK包含的jce.jar。 但是,您的軟件無法與不同類型的JDK一起使用,例如OpenJDK。

在運行時提供此依賴項,包括JCE standalone jar