【问题标题】:Running servlet within Eclipse requires libs to be defined 3 times - am I doing something wrong?在 Eclipse 中运行 servlet 需要定义库 3 次 - 我做错了什么吗?
【发布时间】:2013-01-07 03:18:02
【问题描述】:

你好 - 问题是这样的:

  • 我在 Eclipse 中编写了一个需要 mysql-connector-java-5.1.22-bin.jar 的 servlet
  • 编译我需要通过项目的“Java Build Path”添加jar
  • 部署,我需要将 jar 添加到项目的“部署程序集”
  • 要在 Eclipse 中运行 servlet,我需要将 jar 添加到 servlet 的运行配置 -> 类路径

像这样重新重复自己并不是世界末日,但它确实看起来很奇怪。

鉴于 Eclipse 得到了很多其他正确的东西,我猜/希望我可能忽略了一些功能来避免这种愚蠢(我无法想象在 3 个不同的地方输入它会受益的场景。 ..但也许我在这里没有创造力...)。

感谢您的见解 :-)

【问题讨论】:

    标签: eclipse tomcat deployment classpath classnotfoundexception


    【解决方案1】:

    您唯一需要做的就是将罐子放入WebContent/WEB-INF/lib

    【讨论】:

    • 天啊...这比我做的要容易得多 - 谢谢!
    【解决方案2】:

    您正在开发一个 Java Web 项目,因此放置所需库(JAR 文件等)的传统位置是在 /WEB-INF/lib 下。而且你只做一次。

    在 Eclipse 中,当您创建 Dynamic Web Project 时,会为您生成适当的项目结构(这是一个开发结构)。在这种情况下,您将 JAR 文件放在 ProjectName/WebContent/WEB-INF/lib 文件夹中。而且这个文件夹*自动包含在项目的构建路径中

    考虑到它是一个 Java Web 项目(您说您使用 servlets),您必须将您的 Web 应用程序部署到某个应用程序服务器,例如 GlassFish、JBoss、WebLogic、WebSphere 等,或者更简单的 Web 容器,如 Apache Tomcat。如果您通过 Eclipse 执行此操作,那么您的 Web 项目会再次自动部署。

    注意!
    可能有一些与使用库相关的额外细节。 例如,在使用数据库驱动程序(MySql、PostgreSQL、Oracle 等)时,Tomcat 建议如下,configuring JNDI Datasource(引用):

    在继续之前,不要忘记将 JDBC 驱动程序的 jar 复制到 $CATALINA_HOME/lib

    在您的情况下(MySQL),请参见此处的示例:MySQL DBCP Example


    另请参阅我与 Webapp configuration file organization convention 相关的回答。

    希望这会对您有所帮助。

    附:这是一个分步示例:How do I access MySQL from a web application?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多