Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse将WebContent文件夹的内容部署到WEB-INF文件夹。_Eclipse_Tomcat_Web Inf - Fatal编程技术网

Eclipse将WebContent文件夹的内容部署到WEB-INF文件夹。

Eclipse将WebContent文件夹的内容部署到WEB-INF文件夹。,eclipse,tomcat,web-inf,Eclipse,Tomcat,Web Inf,我遇到了在服务器上运行Eclipse特性的一个奇怪行为。我的环境: 日食开普勒SR 1,WTP ApacheTomcat 7.0.37 我在Eclipse中有两个动态web项目-ProjectA和ProjectB。两者都有一个index.xhtml文件(实际上这两个项目都是JSF项目),直接位于WebContent文件夹的下方。当我将它们作为WAR文件导出到Tomcat安装的Tomcat webapps文件夹时,它们都运行良好。当我通过runonserver功能在Eclipse管理的Tomc

我遇到了在服务器上运行Eclipse
特性的一个奇怪行为。我的环境:

  • 日食开普勒SR 1,WTP
  • ApacheTomcat 7.0.37
  • 我在Eclipse中有两个动态web项目-
    ProjectA
    ProjectB
    。两者都有一个
    index.xhtml
    文件(实际上这两个项目都是JSF项目),直接位于
    WebContent
    文件夹的下方。当我将它们作为
    WAR
    文件导出到Tomcat安装的
    Tomcat webapps
    文件夹时,它们都运行良好。当我通过
    runonserver
    功能在Eclipse管理的Tomcat服务器上运行
    ProjectA
    时,一切都很好。但是当我想通过服务器上运行的
    从Eclipse启动
    ProjectB
    时,访问
    http://localhost:8080/ProjectB/index.xhtml
    或分别在ExternalContext中未找到作为资源的
    index.xhtml
    错误,该错误在访问资源时来自JSF servlet通过正确的
    http://localhost:8080/ProjectB/faces/index.xhtml
    URL。(所有以
    /faces/
    开头的URL都与
    JSFServlet
    匹配

    查看Eclipse工作区中Tomcat文件夹中部署的应用程序(
    \.metadata\.plugins\org.Eclipse.wst.server.core\tmp0\wtpwebapps
    )可以发现原因:
    对于
    ProjectB
    Eclipse项目
    WebContent
    文件夹的内容已部署到
    WEB-INF
    文件夹,而不是部署到项目部署的根文件夹。应用程序服务器当然找不到资源

    问题是-为什么部署失败,我如何避免它?

    我甚至检查了eclipse中两个项目的
    部署程序集
    属性。它们都具有相同的(默认)源到目标文件夹映射。以下是
    .settings\org.eclipse.wst.common.component
    文件的内容:

    <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="ProfileAndGroupManagementGUI">
        <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <property name="context-root" value="ProfileAndGroupManagementGUI"/>
        <property name="java-output-path" value="/ProfileAndGroupManagementGUI/build/classes"/>
    </wb-module>
    
    
    

    奇怪,不是吗?有人知道吗?

    这条线

    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
    
    我会成功的

    <wb-resource deploy-path="/" source-path="/src"/>