【问题标题】:Using servlet API with Eclipse [duplicate]在 Eclipse 中使用 servlet API [重复]
【发布时间】:2011-06-30 11:39:54
【问题描述】:

我正在使用部署到 Jetty 的 Eclipse Indigo 开发 Java 服务器应用程序。现在我正在尝试使用 Spring Security 向应用程序添加身份验证。我在business-layer-context.xml 中添加了以下定义:

<security:http>
        <security:intercept-url pattern="/**" access="ROLE_USER" />
        <security:http-basic />
</security:http>

现在,问题是 Eclipse 给了我这个错误:Error occurred processing '/MyServer/WEB-INF/business-layer-context.xml',这是由 java 引起的.lang.NoClassDefFoundError: javax/servlet/Filter。当我将应用程序部署到 Jetty 时,它工作得很好,因为 Jetty 包含 servlet API。
让 Eclipse 了解应用程序已部署到 servlet 容器并因此 API 可用的最佳方法是什么?我可以将 Jetty servlet JAR 添加到 Eclipse 中的项目构建路径中,但这需要每个开发人员在 Eclipse 中配置到 Jetty 的路径,并且我希望将开发人员特定的配置保持在最低限度。
那么,有没有更好的方法来消除这个错误呢?

【问题讨论】:

    标签: java eclipse servlets


    【解决方案1】:

    您需要将servlet-api.jar 或实现Java Servlet API 的相关JAR 包含到您的项目构建路径中。

    在 Eclipse 中,您需要:

    • 右键单击您的项目,然后单击“属性”。
    • “Java 构建路径”-->“库”
    • 单击“添加外部 JARS”按钮并找到 servlet-api.jar 或任何实现 Java Servlet API 的相关 jar。

    完成后,单击“确定”并重建您的项目。该 jar 可以在 Jetty lib 文件夹中找到,因为它运行您的 servlet 应用程序。

    【讨论】:

    • 所以我想这意味着没有更好的方法?在这种情况下,我现在就解决这个问题。还是谢谢你。
    • @Carlos,您不必担心,因为您将使用 Servlet API 接口而不是 API 的 Jetty 实现。
    • 我担心的是我的构建路径中会存在对外部文件的依赖。
    • 然后创建一个可以在开发者之间共享的库路径。
    【解决方案2】:

    将服务器库添加到您的项目库中并将其添加到类路径中。

    【讨论】:

    • 我想到的另一种方法,但听起来也不吸引人,因为我需要在我的项目中添加另一个不必要的库来满足 Eclipse。
    猜你喜欢
    • 2012-06-17
    • 1970-01-01
    • 2014-04-15
    • 2013-08-01
    • 2011-08-19
    • 2014-08-21
    • 2012-06-15
    • 2011-01-23
    • 2018-01-23
    相关资源
    最近更新 更多