У меня проблема с запуском пакетного задания на моем сервере, хотя оно отлично работает из Eclipse на моей рабочей станции.
Я настроил среду Spring с помощью Roo, создал сущность и создал пакет, который выполняет некоторую работу, и хорошо его протестировал на моем develompent box. Я инициализирую свой контекст и выполняю работу, но когда я запускаю свой пакет на сервере, контекст не инициализируется должным образом. Вот код:
public class TestBatch {
private static ApplicationContext context;
@SuppressWarnings("unchecked")
public static void main(final String[] args) {
context = new ClassPathXmlApplicationContext("/META-INF/spring/applicationContext.xml");
try {
@SuppressWarnings("unused")
TestBatch app = new TestBatch();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void TestBatch() { /** Do Something using the context **/ }
}
А вот журнал и исключение:
2010-02-16 11:54:16,072 [main] INFO org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6037fb1e: startup date [Tue Feb 16 11:54:16 CET 2010]; root of context hierarchy
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.springframework.context.support.AbstractRefreshableApplicationContext.createBeanFactory(AbstractRefreshableApplicationContext.java:194)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:127)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:458)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:388)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at tld.mydomain.myproject.batch.TestBatch.main(TestBatch.java:51)
Caused by: java.lang.NullPointerException
at org.springframework.beans.factory.support.DefaultListableBeanFactory.<clinit>(DefaultListableBeanFactory.java:103)
... 7 more
Есть идеи или намеки на то, что происходит? Мой путь к классу установлен в $ PROJECTHOME / target / classes, и все мои зависимости находятся в $ PROJECTHOME / target / lib, и я выполняю, используя "export CLASSPATH = $ PROJECTHOME / target / classes; java -Djava.endorsed.dirs = $ PROJECTHOME / target / lib tld.mydomain.myproject.batch.TestBatch "
Есть ли в моей настройке что-то, что выглядит очень неправильно? Когда я запускаю это из Eclipse, проблем не возникает, но когда я развертываю его на сервере, где я хочу его запустить, и запускаю, как описано выше, я получаю эту проблему. Поскольку он запускается из Eclipse, я считаю, что с моими конфигурационными файлами все в порядке, но как я могу отладить, что вызывает это? Возможно, у меня есть ошибки конфигурации или несоответствие между сервером и рабочей станцией разработки? Или это действительно странный способ сказать, что файл не найден, и если да, то как мне убедиться, что он находит правильный файл ??
Очень жду ваших предложений о том, как решить эту проблему.
Приветствия
Nik