我在服务器上运行批处理作业时遇到了问题,但是在我的开发工作站上从Eclipse运行正常。
我使用Roo设置了Spring环境,创建了一个实体,并创建了一个批处理程序来执行一些操作,在我的开发机器上进行了充分测试。我初始化了我的上下文并执行操作,但是当我在服务器上运行批处理时,上下文没有正确地初始化。以下是代码:
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
applicationContext.xml
ه·²ç»ڈو”¾ç½®هœ¨وœچهٹ،ه™¨ن¸ٹم€‚ - Bozho