我在Struts应用程序中运行JUNIT测试时收到java.lang.ExceptionInInitializerError

时间:2017-06-10 14:29:51

标签: java

Error in console for all test cases i am running in STRUTS maven project:
testOverride(com.cisco.mcm.testcase.TestOverrides)  Time elapsed: 3.969 sec  <<< ERROR!
java.lang.ExceptionInInitializerError
    at com.cisco.servicesales.mcm.utils.MCMDataUtil.getDataSource(MCMDataUtil.java:55)
    at com.cisco.servicesales.mcm.utils.MCMDataUtil.getServices(MCMDataUtil.java:45)
    at com.cisco.mcm.dao.AccessManagementDAO.getUserData(AccessManagementDAO.java:83)


MCMDataUtil.java(line 55 ): 
public static DataSource getDataSource(String ConnectionPoolName) {

        System.out.println("Inside getDatasource...1");
        logger.info("Inside getDataSource Method");
        DataSource dataSource = null;   
        System.out.println(":Inside getDatasource...2");

line 55:        ApplicationContext context = SpringSingleton.getContext();
        System.out.println(":Inside getDatasource...3");

由于此错误,bean未实例化:

at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334)
at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [dataSource-beans.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public javax.sql.DataSource com.cisco.mcm.util.WASConnectionPoolManager.loadPool(java.lang.String)] threw exception; nested exception is java.lang.NoClassDefFoundError: oracle/security/pki/OracleWallet
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:396)
    at org.springframework.beans.factory.support.Ab

你能帮忙摆脱这个错误吗? 我很长时间没有找到任何解决方案。

1 个答案:

答案 0 :(得分:0)

如果您通过异常阅读,有时会告诉您有关嵌套异常的信息。如果您不习惯堆栈跟踪,则可能难以阅读这些内容。在这种情况下,您的根本原因是:

  

嵌套异常是java.lang.NoClassDefFoundError:oracle / security / pki / OracleWallet

这告诉我们JVM无法加载oracle.security.pki.OracleWallet,以便创建与数据库的连接。你的类路径上有oracle.security.pki.OracleWallet作为另一个jar的一部分吗?