2012-10-10 1 views
5

私はSpringで練習しており、コンテキストをインスタンス化しようとするとjava.lang.ExceptionInInitializerError例外が発生しています。私のコードに続いて、例外が下に表示されます。以前から私の実験を単純化しました。java.lang.ExceptionInInitializerError Springでアプリケーションコンテキストを作成するときの例外

例外

Oct 17, 2012 5:54:22 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]570c16b7: startup date [Wed Oct 17 17:54:22 CDT 2012]; root of context hierarchy 
Exception in thread "main" java.lang.ExceptionInInitializerError 
at org.springframework.context.support.AbstractRefreshableApplicationContext.createBeanFactory(AbstractRefreshableApplicationContext.java:195) 
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:128) 
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:535) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:449) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
at helloworld.HelloWorldTest.main(HelloWorldTest.java:13) 
Caused by: java.lang.NullPointerException 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.<clinit>(DefaultListableBeanFactory.java:105) 
... 7 more 

マイ設定XML

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:c="http://www.springframework.org/schema/c" 
xmlns:p="http://www.springframework.org/schema/p" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 

<bean id="messageContainer" class="helloworld.MessageContainer"> 
    <property name="message" value="Hello World"> 
    </property> 
</bean> 

<bean id="messageOutputService" class="helloworld.MessageOutputService"> 
</bean> 

私のテストクラス。

package helloworld; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class HelloWorldTest { 

/** 
* @param args 
*/ 
public static void main(String[] args) 
{ 
    ApplicationContext context = new ClassPathXmlApplicationContext("HelloWorldTest-context.xml"); 

    MessageContainer message = context.getBean(MessageContainer.class); 

    MessageOutputService service = context.getBean(MessageOutputService.class); 

    service.outputMessageToConsole(message); 

} 

} 
+0

あなたはクラスパス上のすべてのSpring JARに同じバージョンを使用していますか? –

+0

投稿を編集し、_entire_ stacktraceを含めてください。 –

+0

@mattb Spring springspurce.orgのウェブサイトでリリースされた最新のSprings jarsを使用しています。 – cyotee

答えて

4

ライン17はcontext.getBean("userRepository"ラインに対応していない、それはあなたがSpringコンテキストを初期化するところその前の行に対応しています。そして、実際にはstacktraceを通して、そのクラスのコンストラクタが存在するClassPathXmlApplicationContextの83行目で失敗したことがわかります。

とにかく、この例外は何らかの理由で(コンストラクタの例外、resource loading issuesclass loading issuesなど)何らかの理由でBeanを作成できない場合にスローされます。私は春のクラスのログレベルを下げ、自分のライブラリーで何が起こっているのかを確認することをお勧めします。

org.springframework=TRACE 
com.gamemanagertest=TRACE 
com.gamemanagertest=TRACE 

そしてまた、彼らはすべてのエラーを生成した場合、彼らはあなたのアプリケーションと、すべてのオブジェクトのコンストラクタでアクセスしているかどうか、あなたのリソースファイルをチェックするなど

+0

どこでこれを行うことができますか? – cyotee

+0

私は、ログフレームワークがインストールされていると仮定し、何が壊れているかを確認するために答えに示されたレベルでそれを設定します。 – melihcelik

0

私は同じ問題に直面していました。私はプロジェクトからすべての春の瓶を取り除いた。 その後、すべてをプロジェクトフォルダに貼り付けて、&をすべて追加してパスを作成します。 それは働いた。 どうしたのか分かりません。

関連する問題