2012-10-10 63 views
5

Practico con Spring y obtengo una excepción java.lang.ExceptionInInitializerError cuando intento crear una instancia del contexto. La excepción aparece a continuación, con mi código siguiéndolo. He simplificado mi experimento desde antes.java.lang.ExceptionInInitializerError Excepción al crear contexto de aplicación en Spring

La Excepción

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 

Mi configuración 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> 

Mi clase de prueba.

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

¿Está seguro de que está utilizando la misma versión para todos los JAR de primavera en el classpath? –

+0

Edita tu publicación e incluye _entire_ stacktrace. –

+0

@mattb Estoy utilizando las últimas jarras de Springs publicadas en el sitio web Spring springspurce.org. – cyotee

Respuesta

4

La línea 17 no se corresponde con la línea de context.getBean("userRepository", que corresponde a la línea antes de que, cuando se inicializa el contexto de primavera. Y en realidad también se puede ver que a través de stacktrace, dice que falló en la línea 83 de ClassPathXmlApplicationContext donde existe el constructor de esa clase.

De todos modos, esta excepción generalmente se produce cuando Spring no puede crear ningún bean por el motivo que sea (Excepciones en constructores, resource loading issues, class loading issues, etc.). Sugiero que disminuya el nivel de registro para las clases de primavera y para sus propias bibliotecas para ver lo que sucede debajo.

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

y también comprobar sus archivos de recursos si son accesibles por su aplicación y constructores de todos sus objetos si producen errores, etc.

+0

¿Dónde podría hacer esto? – cyotee

+0

Supongo que tiene instalado un marco de trabajo de registro, configúrelo con los niveles indicados en la respuesta para ver qué se rompe. – melihcelik

0

que estaba frente a la misma cuestión. Quité todos los frascos de primavera del proyecto. Luego, todos los pegaron todos en una carpeta de proyecto & y los agregaron todos a la ruta de compilación. Y funcionó. No estoy muy seguro de cómo sucedió ..

Cuestiones relacionadas