如何将hibernate jar包含到WEB-INF中

时间:2015-07-14 17:02:02

标签: eclipse hibernate maven java-ee

我有一个使用Hibernate和Maven的J2EE项目。

hibernate部分工作正常,我可以从几个类做我需要的东西。 但是,当我尝试从servlet使用Hibernate工具时,我得到:

SEVERE: Servlet.service() for servlet [servlets.ImproServletTest] in context with path [/ImproDB] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.hibernate.HibernateException

我认为这指向了WEB-INF中不可用的hibernate类。 我假设我需要硬拷贝WEB-INF目录中的jar来进行排序。

但是,hibernate类是通过Maven导入的。 我可以在Eclipse项目资源管理器中看到它们: “ProjectName / Java Resources / Libraries / Maven Dependencies”。 但是我的项目工作区似乎没有这样的目录(我的意思是在我的硬盘上)。 这些罐子应该放在硬盘上哪里? 将它们包含在WEB-INF中的最佳做法是什么,希望这能解决我的问题?

提前谢谢。

编辑: pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ImproDB</groupId>
  <artifactId>ImproDB</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.10.Final</version>
    </dependency>
  </dependencies>
</project>

2 个答案:

答案 0 :(得分:1)

像这样编辑你的pom.xml并运行你的pom.xml所在的命令mvn clean package。这将构建Web应用程序到war包,hibernate也将包含在WEB-INF/lib文件夹中:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ImproDB</groupId>
  <artifactId>ImproDB</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.4</version>
      <configuration>
      </configuration>
    </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.10.Final</version>
    </dependency>
  </dependencies>
</project>

答案 1 :(得分:0)

你必须添加servlet依赖..

<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency>

试试这个