java.lang.NoClassDefFoundError:org / apache / commons / lang / text / StrLookup

时间:2017-03-02 21:09:18

标签: java noclassdeffounderror

错误指向EventUnitTesting.readPropertyFile(EventUnitTesting.java:168)的正文readPropertyFile()

private void readPropertyFile() throws IOException, ConfigurationException{

    file = new File(fileLocation + unitTestingFileName);
    propertiesConfiguration = new PropertiesConfiguration(file);

    List<Object> propertyKeysList = propertiesConfiguration.getList("regular");
    Iterator<Object> propertyKeysIterator = propertyKeysList.iterator();
    regularEvents = new ArrayList<String>();
    while(propertyKeysIterator.hasNext()){
        regularEvents.add((String)propertyKeysIterator.next());
    }

    propertyKeysList =  propertiesConfiguration.getList("consolidated");
    propertyKeysIterator = propertyKeysList.iterator();
    consolidatedEvents = new ArrayList<String>();
    while(propertyKeysIterator.hasNext()){
        consolidatedEvents.add((String)propertyKeysIterator.next());
    }

    propertyKeysList =  propertiesConfiguration.getList("correlated");
    propertyKeysIterator = propertyKeysList.iterator();
    correlatedEvents = new ArrayList<String>();
    while(propertyKeysIterator.hasNext()){
        correlatedEvents.add((String)propertyKeysIterator.next());
    }

}

我使用Apache Commons Configuration库版本1.10来读取具有非唯一键的属性文件。我没有使用JBoss 6.4.8专用的WAR收到此错误,但是这个错误是在JBoss转换的5.2 WAR上生成的。

我正在使用Apache Commons Lang 2.1,因此我不确定org/apache/commons/lang/text/StrLookup如何成为问题。所有相关的* .java和* .class文件都已复制到转换后的jar文件中,除了这个问题,一切都很好。

2 个答案:

答案 0 :(得分:0)

请注意,NoClassDefFoundError与ClassNotFoundException不同。前者可能意味着找到了类,但在静态初始化程序期间抛出异常。

将此方法代码包装在try catch中并输出异常。可能你会明白为什么。

答案 1 :(得分:0)

看起来某些依赖jar在编译时出现但在运行时丢失。您可以比较构建时和运行时的类路径。它将为您提供缺少jar并导致此问题的区别。