weblogic异常Error parsing descriptor in Web appplication 解决方法

来源:互联网 发布:星际争霸2 for mac 编辑:程序博客网 时间:2024/06/05 20:33

使用weblogic部署war项目里,有些项目可以部署,但有些不行,出现以下异常。
异常如下:
An error occurred during activation of changes, please see the log for details. 
  [HTTP:101064][WebAppModule(OA_Manager0:OA_Manager0.3.war)] Error parsing descriptor in Web appplication "D:/09projects/OA_Manager0.3/OA_Manager0.3.war" weblogic.application.ModuleException: Unmarshaller failed at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:758) at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:260) at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90) at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53) at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43) at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:236) at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147) at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:191) at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:84) at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:197) at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:724) at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1137) at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:224) at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:109) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:166) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:54) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:179) Caused by: com.bea.xml.XmlException: failed to load java type corresponding to e=web-app@http://java.sun.com/xml/ns/javaee at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:325) at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:292) at com.bea.staxb.runtime.internal.UnmarshalResult.determineTypeForGlobalElement(UnmarshalResult.java:302) at com.bea.staxb.runtime.internal.UnmarshalResult.determineRootType(UnmarshalResult.java:283) at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalDocument(UnmarshalResult.java:153) at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:65) at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:138) at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:254) at weblogic.application.descriptor.AbstractDescriptorLoader.createDescriptor(AbstractDescriptorLoader.java:359) at weblogic.application.descriptor.CachingDescriptorLoader.superCreateDescriptor(CachingDescriptorLoader.java:166) at weblogic.application.descriptor.CachingDescriptorLoader.access$000(CachingDescriptorLoader.java:31) at weblogic.application.descriptor.CachingDescriptorLoader$IOHelperImpl.parseXML(CachingDescriptorLoader.java:278) at weblogic.descriptor.DescriptorCache.parseXML(DescriptorCache.java:324) at weblogic.application.descriptor.CachingDescriptorLoader.createDescriptor(CachingDescriptorLoader.java:209) at weblogic.application.descriptor.AbstractDescriptorLoader.createDescriptor(AbstractDescriptorLoader.java:328) at weblogic.application.descriptor.AbstractDescriptorLoader.getDescriptor(AbstractDescriptorLoader.java:237) at weblogic.application.descriptor.AbstractDescriptorLoader.getRootDescriptorBean(AbstractDescriptorLoader.java:217) at weblogic.servlet.internal.WebAppDescriptor.getWebAppBean(WebAppDescriptor.java:136) at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:754) ... 24 more weblogic.application.ModuleException: Unmarshaller failed 
  failed to load java type corresponding to e=web-app@http://java.sun.com/xml/ns/javaee 

 

解决方法:

       问题出现在项目的web.xml文件的声明部分把原来:

<web-app version="2.5"

       xmlns="http://java.sun.com/xml/ns/javaee"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 

改成:

<web-app version="2.4"

       xmlns="http://java.sun.com/xml/ns/j2ee"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

问题就可以解决了。

 

原因分析:

       weblogic不支持J2EE 2.5版本,使用2.5版本会出现解析错误(如上),所以把它改到2.4版本即可。

原创粉丝点击