java - Oracle Weblogic : The root element web-app is missing in the descriptor file

标签 java eclipse weblogic jax-rs

我正在尝试使用 JAX-RS 创建托管在 Oracle Weblogic 服务器上的 Web 服务。我对这项技术很陌生,所以我只是按照老师提供的教程进行操作。这是我的代码:

WebContent/WEB-INF/web.xml

<servlet> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <servlet-class> 
    com.sun.jersey.spi.container.servlet.ServletContainer 
    </servlet-class> 
    <init-param> 
        <param-name>com.sun.jersey.config.property.edu.cs157b.restful </param-name> 
        <param-value>AssignmentTwo</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    <servlet-mapping> 
        <servlet-name>Jersey REST Service</servlet-name> 
        <url-pattern>/api/*</url-pattern> 
    </servlet-mapping>
</servlet> 

WebContent/WEB-INF/weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" 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 http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.5/weblogic-web-app.xsd">
    <wls:weblogic-version>12.1.2</wls:weblogic-version>
    <wls:context-root>AssignmentTwo</wls:context-root>
</wls:weblogic-web-app>

这是我收到的错误

<Mar 11, 2014 5:32:16 PM PDT> <Error> <HTTP> <BEA-101064> <[WebAppModule(_auto_generated_ear_:AssignmentTwo)] Error parsing descriptor in Web appplication "/**/AssignmentTwo/WebContent"
weblogic.application.descriptor.MissingRootElementException: [Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.application.descriptor.BasicMunger2._onStartElement(BasicMunger2.java:506)
    at weblogic.application.descriptor.BasicMunger2.next(BasicMunger2.java:441)
    at weblogic.application.descriptor.VersionMunger._next(VersionMunger.java:342)
    at weblogic.application.descriptor.VersionMunger.next(VersionMunger.java:230)
    at weblogic.application.descriptor.VersionMunger.consumeInputStream(VersionMunger.java:595)
    Truncated. see log file for complete stacktrace
> 
<Mar 11, 2014 5:32:16 PM PDT> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1394584335621" for task "6". Error is: "weblogic.application.ModuleException: [HTTP:101064][WebAppModule(_auto_generated_ear_:AssignmentTwo)] Error parsing descriptor in Web appplication "/**/AssignmentTwo/WebContent"
weblogic.application.descriptor.MissingRootElementException: [Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.application.descriptor.BasicMunger2._onStartElement(BasicMunger2.java:506)
    at weblogic.application.descriptor.BasicMunger2.next(BasicMunger2.java:441)
    at weblogic.application.descriptor.VersionMunger._next(VersionMunger.java:342)
    at weblogic.application.descriptor.VersionMunger.next(VersionMunger.java:230)
    at weblogic.application.descriptor.VersionMunger.consumeInputStream(VersionMunger.java:595)
    at weblogic.application.descriptor.VersionMunger.init(VersionMunger.java:485)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:86)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:62)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:50)
    at weblogic.servlet.internal.WebAppReader2.<init>(WebAppReader2.java:47)
    at weblogic.servlet.internal.WebAppDescriptor$MyWebAppDescriptor.createXMLStreamReader(WebAppDescriptor.java:275)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:406)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:778)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:787)
    at weblogic.servlet.internal.WebAppDescriptor.getWebAppBean(WebAppDescriptor.java:142)
    at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:1446)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:244)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:681)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    at weblogic.application.internal.flow.ModuleListenerInvoker.init(ModuleListenerInvoker.java:84)
    at weblogic.application.internal.flow.InitModulesFlow.initModule(InitModulesFlow.java:342)
    at weblogic.application.internal.flow.InitModulesFlow.initModules(InitModulesFlow.java:355)
    at weblogic.application.internal.flow.InitModulesFlow.prepare(InitModulesFlow.java:383)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:706)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:61)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:96)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:233)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:749)
    at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1238)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:252)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:172)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)

[Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml."
weblogic.application.ModuleException: [HTTP:101064][WebAppModule(_auto_generated_ear_:AssignmentTwo)] Error parsing descriptor in Web appplication "/**/AssignmentTwo/WebContent"
weblogic.application.descriptor.MissingRootElementException: [Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.application.descriptor.BasicMunger2._onStartElement(BasicMunger2.java:506)
    at weblogic.application.descriptor.BasicMunger2.next(BasicMunger2.java:441)
    at weblogic.application.descriptor.VersionMunger._next(VersionMunger.java:342)
    at weblogic.application.descriptor.VersionMunger.next(VersionMunger.java:230)
    at weblogic.application.descriptor.VersionMunger.consumeInputStream(VersionMunger.java:595)
    at weblogic.application.descriptor.VersionMunger.init(VersionMunger.java:485)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:86)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:62)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:50)
    at weblogic.servlet.internal.WebAppReader2.<init>(WebAppReader2.java:47)
    at weblogic.servlet.internal.WebAppDescriptor$MyWebAppDescriptor.createXMLStreamReader(WebAppDescriptor.java:275)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:406)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:778)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:787)
    at weblogic.servlet.internal.WebAppDescriptor.getWebAppBean(WebAppDescriptor.java:142)
    at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:1446)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:244)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:681)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    at weblogic.application.internal.flow.ModuleListenerInvoker.init(ModuleListenerInvoker.java:84)
    at weblogic.application.internal.flow.InitModulesFlow.initModule(InitModulesFlow.java:342)
    at weblogic.application.internal.flow.InitModulesFlow.initModules(InitModulesFlow.java:355)
    at weblogic.application.internal.flow.InitModulesFlow.prepare(InitModulesFlow.java:383)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:706)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:61)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:96)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:233)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:749)
    at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1238)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:252)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:172)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)

[Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.servlet.internal.WebAppModule.createModuleException(WebAppModule.java:1824)
    at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:1473)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:244)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:681)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    Truncated. see log file for complete stacktrace
Caused By: weblogic.application.descriptor.MissingRootElementException: [Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.application.descriptor.BasicMunger2._onStartElement(BasicMunger2.java:506)
    at weblogic.application.descriptor.BasicMunger2.next(BasicMunger2.java:441)
    at weblogic.application.descriptor.VersionMunger._next(VersionMunger.java:342)
    at weblogic.application.descriptor.VersionMunger.next(VersionMunger.java:230)
    at weblogic.application.descriptor.VersionMunger.consumeInputStream(VersionMunger.java:595)
    Truncated. see log file for complete stacktrace
> 
<Mar 11, 2014 5:32:16 PM PDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating distribute task for application "_auto_generated_ear_".> 
<Mar 11, 2014 5:32:16 PM PDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException: [HTTP:101064][WebAppModule(_auto_generated_ear_:AssignmentTwo)] Error parsing descriptor in Web appplication "/**/AssignmentTwo/WebContent"
weblogic.application.descriptor.MissingRootElementException: [Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.application.descriptor.BasicMunger2._onStartElement(BasicMunger2.java:506)
    at weblogic.application.descriptor.BasicMunger2.next(BasicMunger2.java:441)
    at weblogic.application.descriptor.VersionMunger._next(VersionMunger.java:342)
    at weblogic.application.descriptor.VersionMunger.next(VersionMunger.java:230)
    at weblogic.application.descriptor.VersionMunger.consumeInputStream(VersionMunger.java:595)
    at weblogic.application.descriptor.VersionMunger.init(VersionMunger.java:485)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:86)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:62)
    at weblogic.application.descriptor.VersionMunger.<init>(VersionMunger.java:50)
    at weblogic.servlet.internal.WebAppReader2.<init>(WebAppReader2.java:47)
    at weblogic.servlet.internal.WebAppDescriptor$MyWebAppDescriptor.createXMLStreamReader(WebAppDescriptor.java:275)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:406)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:778)
    at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:787)
    at weblogic.servlet.internal.WebAppDescriptor.getWebAppBean(WebAppDescriptor.java:142)
    at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:1446)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:244)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:681)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    at weblogic.application.internal.flow.ModuleListenerInvoker.init(ModuleListenerInvoker.java:84)
    at weblogic.application.internal.flow.InitModulesFlow.initModule(InitModulesFlow.java:342)
    at weblogic.application.internal.flow.InitModulesFlow.initModules(InitModulesFlow.java:355)
    at weblogic.application.internal.flow.InitModulesFlow.prepare(InitModulesFlow.java:383)
    at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:706)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:237)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:61)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:96)
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:233)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:749)
    at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1238)
    at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:252)
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:172)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)

[Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.servlet.internal.WebAppModule.createModuleException(WebAppModule.java:1824)
    at weblogic.servlet.internal.WebAppModule.loadDescriptor(WebAppModule.java:1473)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:244)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:681)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    Truncated. see log file for complete stacktrace
Caused By: weblogic.application.descriptor.MissingRootElementException: [Munger:2156204]The root element web-app is missing in the descriptor file /**/AssignmentTwo/WebContent/WEB-INF/web.xml.
    at weblogic.application.descriptor.BasicMunger2._onStartElement(BasicMunger2.java:506)
    at weblogic.application.descriptor.BasicMunger2.next(BasicMunger2.java:441)
    at weblogic.application.descriptor.VersionMunger._next(VersionMunger.java:342)
    at weblogic.application.descriptor.VersionMunger.next(VersionMunger.java:230)
    at weblogic.application.descriptor.VersionMunger.consumeInputStream(VersionMunger.java:595)
    Truncated. see log file for complete stacktrace
> 

最佳答案

The root element web-app is missing in the descriptor file

您的web.xml缺少根元素 <web-app> 。嵌套也不正确。 <servlet-mapping> element 是顶级元素,如 <servlet>元素,而不是嵌套在其中。

您的web.xml应该具有与此类似的结构:

<web-app 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_3_0.xsd"
      version="3.0"> 

    <servlet>
       <servlet-name>Jersey REST Service</servlet-name> 
       <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
       <init-param> 
           <param-name>com.sun.jersey.config.property.edu.cs157b.restful </param-name> 
           <param-value>AssignmentTwo</param-value> 
       </init-param> 
       <load-on-startup>1</load-on-startup> 
    </servlet>

    <servlet-mapping> 
        <servlet-name>Jersey REST Service</servlet-name> 
        <url-pattern>/api/*</url-pattern> 
    </servlet-mapping>

</web-app>

如果您在创建 Web 应用程序时使用 IDE(例如 Netbeans、Eclipse),它将为您生成有效的 web.xml。如果您创建 REST Web 服务,它甚至可能会为您配置 JAX-RS web.xml。

关于java - Oracle Weblogic : The root element web-app is missing in the descriptor file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339723/

相关文章:

Java 字符串到日期的转换以打印 1 年的日期

java - 我怎样才能有一些变量可以在整个Java包中使用?

java - 由多个线程访问的 map 上的准确数据

java - 数组中的值(不是索引)大于 3 会导致 java.lang.ArrayIndexOutOfBoundsException

c# - 日期时间从 WebLogic SOAP 服务更改为 WCF 应用程序

Java do while循环数组列表问题

通过 Chef 部署 Java 应用程序(聊天服务器 + 客户端)?

java - JAR 文件在 Eclipse 中呈灰色显示

java - ClassNotFoundException : org. apache.derby.jdbc.EmbeddedDriver 尝试将 JPA 与 Derby 一起使用时

java - 如何在weblogic中创建安全角色