0

初めて Eclipse で実行するように Spring アプリケーションをセットアップしようとしています。スタンドアロンの Java アプリケーションとして実行しています。アプリはエラーなしでビルドされますが、実行しようとすると、次のスタック トレースで ClassNotFoundException が発生します。

DataLoadService [Java Application]  
    com.pikefin.services.DataLoadService at localhost:52871 
        Thread [main] (Suspended (exception ClassNotFoundException))    
            URLClassLoader$1.run() line: 217    
            AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]   
            Launcher$AppClassLoader(URLClassLoader).findClass(String) line: 205 
            Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: 321   
            Launcher$AppClassLoader.loadClass(String, boolean) line: 294    
            Launcher$AppClassLoader(ClassLoader).loadClass(String) line: 266    
            ClassPathXmlApplicationContext(AbstractApplicationContext).<init>(ApplicationContext) line: 161 
            ClassPathXmlApplicationContext(AbstractRefreshableApplicationContext).<init>(ApplicationContext) line: 90   
            ClassPathXmlApplicationContext(AbstractRefreshableConfigApplicationContext).<init>(ApplicationContext) line: 59 
            ClassPathXmlApplicationContext(AbstractXmlApplicationContext).<init>(ApplicationContext) line: 61   
            ClassPathXmlApplicationContext.<init>(String[], boolean, ApplicationContext) line: 136  
            ClassPathXmlApplicationContext.<init>(String) line: 83  
            DataLoadService.main(String[]) line: 20 
    /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java (Nov 6, 2012 1:14:23 PM)

次のコード行で発生しています。

ApplicationContext context=new ClassPathXmlApplicationContext("classpath:spring.xml");

spring.xml はビルド プロセス中に class/ フォルダーに移動されるため、class フォルダーを起動構成に追加してみました (スクリーンショットを参照)。

ここに画像の説明を入力

私はEclipse 3.7.2とSpring 3.1.1で作業しています

4

2 に答える 2

0

春のライブラリを確認してください。この問題は、プロジェクトのビルド パスと構成に関するものです。

于 2012-11-06T20:32:14.047 に答える
0

わかりませんspringが、以下の点が疑わしいです。

ApplicationContext context=new ClassPathXmlApplicationContext("classpath:spring.xml");

おそらくそうあるべきです

ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");

たとえば、 この質問では、使用法は

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

あなたのファイルが実際に呼ばれない限り、classpath:spring.xmlではありませんsprint.xmlが、私はそれを疑っています。

于 2012-11-06T20:51:03.020 に答える