FileNotFoundException,尽管应该部署XML文件

时间:2010-04-28 08:19:04

标签: java spring jboss

我在本地JBoss上启动WAR应用程序时遇到问题。在部署了两个其他EAR并且TomcatDeployer开始部署WAR之后,我收到以下错误消息:

  

2010-04-28 10:01:56,605 ERROR [org.jboss.ejb.plugins.LogInterceptor] [] [main]方法中的EJBException:public abstract [return type] method抛出javax.ejb.CreateException,java。 rmi.RemoteException,causeBy:   javax.ejb.EJBException:org.springframework.beans.factory.access.BootstrapException:无法初始化组定义。组资源名称[classpath *:context.xml],工厂密钥[contextService];嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为'service'的bean在URL [jar:file:/ C:/jboss-4.2.3.GA/server/default/deploy/frontend.war中定义时出错/WEB-INF/lib/modules.jar!/aontext.xml]:bean的实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.springframework.context.support.ClassPathXmlApplicationContext]:构造函数抛出异常;嵌套异常是org.springframework.beans.factory.BeanDefinitionStoreException:IOException从类路径资源[package / context.xml]解析XML文档;嵌套异常是 java.io.FileNotFoundException:无法打开类路径资源[package / context.xml],因为它不存在

package / context.xml 实际上放在我的一个EAR文件中的JAR中,这些文件应该在WAR之前部署。至少我得到一个消息,即EAR的部署已经成功。我还使用我的文件存档查看了JAR,并且context.xml确实存在于正确的位置。

有没有办法让我确保JAR,而不是整个EAR,真的部署到JBoss?我已经开始对这个问题感到失望。

谢谢。 哈德

2 个答案:

答案 0 :(得分:0)

可能是一个类加载器问题。您可以通过为here (example 3.8)所述的类加载事件配置记录器来检查您的JAR及其内容是否正确加载。

日志还为您提供有关哪个类加载器加载了什么的信息 - 这个可能解释了为什么您的Web应用程序(由其自己的加载器加载)看不到EAR中的内容。

另一件事:JAR是否包含WAR文件类路径中包含的XML文件?

答案 1 :(得分:0)

我已经在JBoss目录中的另一个名为“deploy.last”的部署目录中部署了我的战争,因为它必须 - 顾名思义 - 最后部署。 现在我已经改变了我的JBoss配置并将战争放在排名较高的部署目录中(两个EAR也是如此),现在一切正常。战争仍在最后部署。 我不知道为什么会这样,但它确实奏效了。 :d