2013-04-28 13 views
6

私はbeanの宣言と作成に関するApache-commons設定ライブラリのユーザーズガイドにあるa very simple exampleをテストしようとしています。この例のコードを単語ごとにコピーしましたが、NoClassDefFoundError例外が発生しています。 DefaultWindowManager.javaファイル内のコードここ非常に単純なApache-Commonsの設定例がNoClassDefFoundErrorをスローします

package test; 
public interface WindowManager {} 

されています:ここで

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

はファイル WindowManager.javaのコードです:

windowcongif.xml - ここ

は、私が使用しているXMLファイルです
package test; 
public class DefaultWindowManager implements WindowManager { 
    private boolean resizable; 
    private boolean closable; 
    private int defaultWidth; 
    private int defaultHeight; 
} 

ここにファイルのコードがあります:ここ

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); 
    } 
} 

は、実行時に出力されます。

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 

どのように私はこの単純な例を動作させるのですか?

私はpom.xmlファイルとWindows 8 64bit上で動作するJavaのバージョン1.7.0_17に依存関係を入れた後、IntelliJ IDEAによって自動インポートされたコモンズ構成パッケージのバージョン1.9を使用しています。

答えて

1

あなたのクラスにorg.apache.commons.beanutils.PropertyUtilsをインポートしてください。 - 任意のアイデア

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

おかげで、私はインポートを追加して、今、私は別のエラーを取得しています(更新を参照してください): – Joe

+1

あなたは絶対に正しいです、それについては残念です。私はここに新しい質問を掲載しました:http://stackoverflow.com/q/16266523/566639 – Joe

16

私は同じ問題を抱えていた、私はこの依存関係を追加しましたか?
+0

これは正しい答えです。動的な依存関係はここにあります:https://commons.apache.org/proper/commons-configuration/dependencies.html – cquezel

+0

グループは他の多くのApacheと同様に 'org -apache.commons'ではなく' commons-beanutils'ですコモンズ図書館 – jamesthollowell

関連する問題