ClassCastException под управлением приложения Spring в Weblogic 9.2 - PullRequest
1 голос
/ 23 октября 2010

Я пытаюсь развернуть приложение Spring 3 в Weblogic 9.2.JDK - это JRockit 1.5.Я использую jaxb 2.1 и включаю эти банки в войну.

Я пытался добавить это в weblogic.xml, думая, что у меня есть конфликт между тем, что я включаю, и средой, в которой я работаю.запустить его.

<wls:container-descriptor>
  <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>

Все еще не повезло.Я делаю что-то verboten, или просто пропускаю важный элемент конфигурации?

Если я пропустил что-то важное, пожалуйста, спросите.Заранее спасибо.

Вот ошибка:

 [wldeploy] java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory
 [wldeploy]   at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
 [wldeploy]   at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:87)
 [wldeploy]   at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:68)
 [wldeploy]   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:361)
 [wldeploy]   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
 [wldeploy]   at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
 [wldeploy]   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
 [wldeploy]   at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
 [wldeploy]   at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
 [wldeploy]   at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
 [wldeploy]   at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
 [wldeploy]   at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:394)
 [wldeploy]   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
 [wldeploy]   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
 [wldeploy]   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
 [wldeploy]   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
 [wldeploy]   at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:376)
 [wldeploy]   at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 [wldeploy]   at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
 [wldeploy]   at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:82)
 [wldeploy]   at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1608)
 [wldeploy]   at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2750)
 [wldeploy]   at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)
 [wldeploy]   at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
 [wldeploy]   at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
 [wldeploy]   at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
 [wldeploy]   at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
 [wldeploy]   at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
 [wldeploy]   at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
 [wldeploy]   at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
 [wldeploy]   at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
 [wldeploy]   at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
 [wldeploy]   at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
 [wldeploy]   at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
 [wldeploy]   at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
 [wldeploy]   at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
 [wldeploy]   at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154)
 [wldeploy]   at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
 [wldeploy]   at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:566)
 [wldeploy]   at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:136)
 [wldeploy]   at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:104)
 [wldeploy]   at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:320)
 [wldeploy]   at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:815)
 [wldeploy]   at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1222)
 [wldeploy]   at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:433)
 [wldeploy]   at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:161)
 [wldeploy]   at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181)
 [wldeploy]   at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
 [wldeploy]   at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67)
 [wldeploy]   at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
 [wldeploy]   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
 [wldeploy]   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

1 Ответ

0 голосов
/ 23 октября 2010

Похоже, что ClassCastException является результатом конфликта загрузки классов.

Вы сказали, что связываете некоторые JAR-файлы с вашим веб-приложением (я полагаю, в WEB-INF/lib);Я подозреваю, что происходит то, что weblogic.xml.jaxp.RegistryDocumentBuilderFactory, который является реализацией DocumentBuilderFactory WebLogic, загружается загрузчиком классов, отличным от того, который загрузил один из его интерфейсов (или его суперкласс, который является DocumentBuilderFactory JAXP).

Сообщите нам, какие JAR-файлы вы упаковываете внутри WEB-INF/lib;Я почти уверен, что виновник здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...