当我尝试在 Jboss 中部署 spring 应用程序时,出现以下错误:
11:32:34,045 错误 [AbstractKernelController] 安装到 Start 时出错:name=persistence.unit:unitName=#ehr-punit state=Create java.lang.RuntimeException:违反规范 [EJB3 JPA 6.2.1.2] - 您尚未为名为 ehr-punit 的启用 JTA 的持久性上下文定义 jta-data-source 在 org.jboss.jpa.deployment.PersistenceUnitInfoImpl。(PersistenceUnitInfoImpl.java:115) 在 org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:275) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59) 在 org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150) 在 org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) 在 org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:241) 在 org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) 在 org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109) 在 org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:70) 在 org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221) 在 org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) 在 org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) 在 org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) 在 org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) 在 org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) 在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540) 在 org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:121) 在 org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:51) 在 org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) 在 org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) 在 org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098) 在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) 在 org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702) 在 org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) 在 org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) 在 org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) 在 org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361) 在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 在 org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306) 在 org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271) 在 org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 在 org.jboss.Main.boot(Main.java:221) 在 org.jboss.Main$1.run(Main.java:556) 在 java.lang.Thread.run(Thread.java:619) 11:32:35,615 信息 [TomcatDeployment] 部署,ctxPath=/ehr-web 11:32:35,986 INFO [[/ehr-web]] 初始化 Spring 根 WebApplicationContext 11:32:35,986 INFO [ContextLoader] Root WebApplicationContext:初始化已开始 11:32:36,046 INFO [XmlWebApplicationContext] 刷新 org.springframework.web.context.support.XmlWebApplicationContext@1392743:显示名称 [Root WebApplicationContext];启动日期 [2009 年 7 月 20 日星期一 11:32:36 BRT];上下文层次结构的根 11:32:36,184 INFO [XmlBeanDefinitionReader] 从 ServletContext 资源加载 XML bean 定义 [/WEB-INF/applicationContext.xml] 11:32:36,189 错误 [ContextLoader] 上下文初始化失败 org.springframework.beans.factory.BeanDefinitionStoreException:从 ServletContext 资源 [/WEB-INF/applicationContext.xml] 解析 XML 文档时发生意外异常;嵌套异常是 java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl 无法转换为 javax.xml.parsers.DocumentBuilderFactory 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92) 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123) 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352) 在 org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:4393) 在 org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310) 在 org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142) 在 org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461) 在 org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) 在 org.jboss.web.deployers.WebModule.start(WebModule.java:97) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) 在 org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) 在 org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 在 org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 在 org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668) 在 org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) 在 $Proxy38.start(未知来源) 在 org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42) 在 org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37) 在 org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) 在 org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) 在 org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) 在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 在 org.jboss.system.ServiceController.doChange(ServiceController.java:688) 在 org.jboss.system.ServiceController.start(ServiceController.java:460) 在 org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163) 在 org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99) 在 org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46) 在 org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) 在 org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) 在 org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098) 在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) 在 org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702) 在 org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) 在 org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) 在 org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) 在 org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361) 在 org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 在 org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306) 在 org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271) 在 org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 在 org.jboss.Main.boot(Main.java:221) 在 org.jboss.Main$1.run(Main.java:556) 在 java.lang.Thread.run(Thread.java:619) 原因:java.lang.ClassCastException:org.apache.xerces.jaxp.DocumentBuilderFactoryImpl 无法转换为 javax.xml.parsers.DocumentBuilderFactory 在 javax.xml.parsers.DocumentBuilderFactory.newInstance(未知来源) 在 org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:89) 在 org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:70) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
有人知道我该怎么做才能部署它吗?
谢谢
答案1
从第二行开始:
java.lang.RuntimeException: Specification violation [EJB3 JPA 6.2.1.2] -
You have not defined a jta-data-source for a JTA enabled persistence
context named: ehr-punit
此处的这一行似乎可以解决您的一个问题。尝试创建一个名为 ehr-punit 的 jta-data-source。
这可能是一个巨大的误导,因为我对 JTA 或 JBoss 一无所知。
再往下一点,你有:
org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from ServletContext resource
[/WEB-INF/applicationContext.xml]; nested exception is
java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
cannot be cast to javax.xml.parsers.DocumentBuilderFactory
这意味着 Spring 正在尝试将 DocumentBuilderFactoryImpl 注入到需要 javax.xml.parsers.DocumentBuilderFactory 的方法中。显然前者没有实现或扩展后者。我会尝试使用不同版本的 xerces 来查看最近是否发生了变化。
答案2
对于第二个例外,尝试将 xercesImpl.jar 放在 jboss 认可的目录中。
java 和 jboss 版本是什么?
答案3
关于错误java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
...
JBoss 提供的 jar(xercesImpl?)和应用程序中打包的某些内容之间显然存在冲突。(我在使用 JBoss 5)
扫描我的应用程序 jar 包DocumentBuilderFactory
,我唯一使用它的地方是xml-apis.jar
,它是 的依赖dom4j
,而 是 的依赖hibernate-core
。从我的应用程序中删除该 jar 包后(因此依赖 JBoss 提供适当的类),我能够绕过该错误。
现在我遇到了另一个错误:)