2012-10-10 18 views
5

Ćwiczę ze Springem i otrzymuję wyjątek java.lang.ExceptionInInitializerError, gdy próbuję utworzyć instancję kontekstu. Wyjątek pojawia się poniżej, a mój kod podąża za nim. Uproszyłem mój eksperyment z wcześniejszych.java.lang.ExceptionInInitializerError Wyjątek podczas tworzenia kontekstu aplikacji wiosną

Wyjątek

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 

Moja konfiguracja 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> 

Moja Klasa testu.

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

Czy jesteś pozytywny, że używasz tej samej wersji dla wszystkich JARów Springa w ścieżce klas? –

+0

Edytuj swój wpis i umieść stos dokumentów _entire_. –

+0

@mattb Używam najświeższych słoików Springs, które zostały opublikowane na stronie Springspurce.org Spring. – cyotee

Odpowiedz

4

Linia 17 nie odpowiada linii context.getBean("userRepository", to odpowiada linii przed, że gdy zainicjować kontekstu wiosny. I rzeczywiście możesz zobaczyć, że poprzez stacktrace, mówi, że nie powiodło się w linii 83 z ClassPathXmlApplicationContext, gdzie istnieje konstruktor tej klasy.

W każdym razie ten wyjątek generalnie jest generowany, gdy Spring nie może utworzyć żadnego komponentu bean z jakiegokolwiek powodu (wyjątki w konstruktorach, resource loading issues, class loading issues itd.). Sugerowałbym zmniejszenie poziomu dziennika dla klas wiosennych i dla twoich własnych bibliotek, aby zobaczyć, co się dzieje pod spodem.

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

a także sprawdzić swoje pliki zasobów, czy są one dostępne dla aplikacji i konstruktorów wszystkich obiektów czy wytwarzają one jakieś błędy, itp

+0

Gdzie mogę to zrobić? – cyotee

+0

Zakładam, że masz zainstalowany framework logowania, skonfiguruj go z poziomami podanymi w odpowiedzi, aby zobaczyć, co się zepsuje. – melihcelik

0

byłem stoi ten sam problem. Usunąłem wszystkie słoiki z wiosną z projektu. Następnie ponownie wklejono wszystkie z nich w folderze projektu & dodano wszystkie z nich do budowy ścieżki. I zadziałało. Nie bardzo wiem, jak to się stało.

Powiązane problemy