如何解决 It appears that the Web Project,“”,has no Web Root directory setup 问题

这个问题我在网上找了很多解决方法,但是实际都不太好用,研究了两个小时我才解决,

这个不是大问题,主要是解决方法,怎样去解决一个度娘不告诉你的问题。

          首先,要明确问题发生的原因,这个问题的原因主要就是一个使用eclipse创建的项目,其他人用MyEclipse使用这个项目。

                     这种情况有两种,第一种是你直接从SVN上down下来的。

                                                     第二种就是你拷的项目原文件。

          然后分析除了java文件,webapp里的文件,配置文件应该要啥不要啥?

                     第一,.setting文件夹,这个文件中一般就是这个项目的整体配置了。

                    第二,.classpath文件,这个文件是编译的环境(路径)配置。这个因为每个环境不同肯定是会变得,你修改Bulid path时,这个文件会自己改。

                    第三,.project文件这个是项目编译引用的类文件路径啥的。

                                上面说的可能不对,不过具体内容如下。

                    .setting-org.eclipse.wst.common.component.xml

  <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="XXXX">

          <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>

        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
        <property name="context-root" value="XXXX"/>
        <property name="java-output-path" value="/XXXX/target/classes"/>
    </wb-module>
</project-modules> 

                   .setting-org.eclipse.wst.common.project.facet.core.xml

  <?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.7"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

       .classpath

    <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/classes" path="src/main/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java">
        <attributes>
            <attribute name="optional" value="true"/>
            <attribute name="maven.pomderived" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v7.0"/>
    <classpathentry kind="output" path="target/classes"/>
</classpath>

                       .project

  <?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>XXXX</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
        <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>



千万别害怕搞这些文件,打开看看,你就知道这些都是啥了。

回到我的问题上,主要意思就是编译的webRoot的编译环境不对

web的根目录文件夹是WebContent,而MyEclipse新建的项目的Web根目录是WebRoot。

   .setting-org.eclipse.wst.common.component.xml

  <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="XXXX">

          <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>

<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>

这个默认的路径应该是/src/main/webapp,然而没起作用,他使用了/target/m2e-wtp/web-resources,问题找得了。删除我标红的那句吧。

最后问题解决了。

以上是个人见解,有不对的还望指教。

 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值