2013-04-28 27 views
6

Tôi đang cố gắng kiểm tra a very simple example được đưa ra trong hướng dẫn sử dụng thư viện cấu hình Apache-commons về khai báo và tạo bean. Tôi đã sao chép mã trong ví dụ gần như từng từ, và tôi nhận được một ngoại lệ NoClassDefFoundError.Ví dụ cấu hình Apache-commons rất đơn giản ném NoClassDefFoundError

Dưới đây là file xml Tôi đang sử dụng - windowcongif.xml:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<config> 
    <gui> 
    <windowManager config-class="test.DefaultWindowManager" 
     closable="false" resizable="true" defaultWidth="400" 
     defaultHeight="250">  
    </windowManager> 
    </gui> 
</config> 

Đây là mã trong file WindowManager.java:

package test; 
public interface WindowManager {} 

Dưới đây là đoạn code trong file DefaultWindowManager.java:

package test; 
public class DefaultWindowManager implements WindowManager { 
    private boolean resizable; 
    private boolean closable; 
    private int defaultWidth; 
    private int defaultHeight; 
} 

Đây là mã trong tệp Main.java:

package test; 
import org.apache.commons.configuration.ConfigurationException; 
import org.apache.commons.configuration.XMLConfiguration; 
import org.apache.commons.configuration.beanutils.BeanDeclaration; 
import org.apache.commons.configuration.beanutils.BeanHelper; 
import org.apache.commons.configuration.beanutils.XMLBeanDeclaration; 

public class Main { 
    public static void main(String[] args) throws ConfigurationException { 
     XMLConfiguration config = new XMLConfiguration("windowconfig.xml"); 
     BeanDeclaration decl = new XMLBeanDeclaration(config, "gui.windowManager"); 
     WindowManager wm = (WindowManager) BeanHelper.createBean(decl); 
    } 
} 

Dưới đây là kết quả trong thời gian chạy:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanutils/PropertyUtils 
    at org.apache.commons.configuration.beanutils.BeanHelper.initProperty(BeanHelper.java:269) 
    at org.apache.commons.configuration.beanutils.BeanHelper.initBeanProperties(BeanHelper.java:229) 
    at org.apache.commons.configuration.beanutils.BeanHelper.initBean(BeanHelper.java:166) 
    at org.apache.commons.configuration.beanutils.DefaultBeanFactory.initBeanInstance(DefaultBeanFactory.java:108) 
    at org.apache.commons.configuration.beanutils.DefaultBeanFactory.createBean(DefaultBeanFactory.java:64) 
    at org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:336) 
    at org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:358) 
    at org.apache.commons.configuration.beanutils.BeanHelper.createBean(BeanHelper.java:372) 
    at test.Main.main(Main.java:23) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.PropertyUtils 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 9 more 

Làm thế nào để làm cho công việc ví dụ đơn giản này?

Tôi đang sử dụng phiên bản 1.9 của gói cấu hình commons, được nhập tự động bởi IntelliJ IDEA sau khi đặt phụ thuộc vào tệp pom.xml và phiên bản 1.7.0_17 của java đang chạy trên Windows 8 64bit.

Trả lời

1

Nhập org.apache.commons.beanutils.PropertyUtils vào lớp học của bạn.

+0

Cảm ơn, tôi thêm vào việc nhập khẩu và bây giờ tôi nhận được một lỗi khác nhau (xem cập nhật) - bất kỳ ý tưởng? – Joe

+1

Bạn hoàn toàn đúng, xin lỗi về điều đó. Tôi đã đăng một câu hỏi mới ở đây: http://stackoverflow.com/q/16266523/566639 – Joe

16

tôi đã cùng một vấn đề, tôi đã thêm sự phụ thuộc này:

<dependency> 
    <groupId>commons-beanutils</groupId> 
    <artifactId>commons-beanutils</artifactId> 
    <version>1.9.3</version> 
</dependency> 
+0

Rõ ràng đây là câu trả lời đúng. Phụ thuộc động được đưa ra ở đây: https://commons.apache.org/proper/commons-configuration/dependencies.html – cquezel

+0

Lưu ý rằng nhóm là 'commons-beanutils', không phải là' org.apache.commons' giống như nhiều Apache khác Thư viện Commons – jamesthollowell

Các vấn đề liên quan