由于ClassCastException,将Spring应用程序部署到Jboss时出错

当我尝试在Jboss中部署一个Spring应用程序时,我得到这个错误:

 11:32:34,045错误[AbstractKernelController]错误安装到开始:name = persistence.unit:unitName =#ehr-punit state = Create
 java.lang.RuntimeException:违反规范[EJB3 JPA 6.2.1.2]  - 您尚未为启用JTA的持久性上下文定义jta-data-source:ehr-punit
    在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 INFO [TomcatDeployment] deploy,ctxPath = / ehr-web
 11:32:35,986 INFO [[/ ehr-web]]初始化Spring根WebApplicationContext
 11:32:35,986 INFO [ContextLoader]根WebApplicationContext:初始化启动
 11:32:36,046 INFO [XmlWebApplicationContext]刷新org.springframework.web.context.support.XmlWebApplicationContext@1392743:显示名称[Root WebApplicationContext]; 启动date[星期一7月20日11:32:36 BRT 2009]; 上下文层次的根
 11:32:36,184 INFO [XmlBeanDefinitionReader]从ServletContext资源加载XML bean定义[/WEB-INF/applicationContext.xml]
 11:32:36,189错误[ContextLoader]上下文初始化失败
 org.springframework.beans.factory.BeanDefinitionStoreException:意外的exception从ServletContext资源parsingXML文档[/WEB-INF/applicationContext.xml]; 嵌套exception是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)

有人知道我能做些什么来部署?

谢谢

从第二行开始:

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 

这条线有点build议解决你的一个问题。 尝试创build一个名为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来查看最近是否发生了变化。

对于第二个exception,请尝试将xercesImpl.jar放入jboss认可的目录中。

什么是Java和JBoss版本?

关于错误java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory

JBoss提供的jar(xercesImpl?)和应用程序中包含的东西之间显然存在一些冲突。 (我在JBoss 5上)

扫描我的DocumentBuilderFactory应用程序jar,我唯一的用法是来自xml-apis.jar ,它是dom4j一个依赖,它是hibernate-core一个依赖项。 从我的应用程序中删除该jar(因此依靠JBoss提供适当的类)后,我能够通过该错误。

而现在我正在对另一个错误:)