关于Hibernate出错的问题,请教高手……谢谢了

zglin689 2012-02-05 03:35:09
部分代码如下:
Cservlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.mmc.model.CBean;

public class Cservlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();

CBean c = new CBean();
System.out.println("在servelet中");
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String title = request.getParameter("title");

c.setID(id);
c.setName(name);

Configuration cfg = new Configuration();
SessionFactory sf = cfg.configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();

session.saveOrUpdate(c);
session.getTransaction().commit();
session.close();
sf.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

CBean.hbm.xml
……
<hibernate-mapping package="com.mmc.model">
<class name="CBean" table="m">
<id name="ID" column="id"> </id>
<property name="name"></property>
</class>
</hibernate-mapping>

hibernate.cfg.xml
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/a</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>

<mapping resource="com/mmc/model/CBean.hbm.xml"/>
<!--<mapping class="com.mmc.model.DBean"/> -->

</session-factory>

运行后,出现错误如下:
严重: Servlet.service() for servlet Cservlet threw exception
java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.envers.event.EnversIntegrator not found
at java.util.ServiceLoader.fail(ServiceLoader.java:214)
at java.util.ServiceLoader.access$400(ServiceLoader.java:164)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:350)
at java.util.ServiceLoader$1.next(ServiceLoader.java:421)
at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:251)
at org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(IntegratorServiceImpl.java:51)
at org.hibernate.service.internal.BootstrapServiceRegistryImpl.<init>(BootstrapServiceRegistryImpl.java:80)
at org.hibernate.service.internal.BootstrapServiceRegistryImpl.<init>(BootstrapServiceRegistryImpl.java:57)
at org.hibernate.service.ServiceRegistryBuilder.<init>(ServiceRegistryBuilder.java:76)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1746)
at Cservlet.doGet(Cservlet.java:43)
at Cservlet.doPost(Cservlet.java:57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:619)
走到
SessionFactory sf = cfg.configure().buildSessionFactory();
这里出错的……

请教各位高手们了,,谢谢……
...全文
215 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zglin689 2012-02-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 houyibiao 的回复:]
org.hibernate.integrator.spi.Integrator: Provider org.hibernate.envers.event.EnversIntegrator 不能找到这个包:
[/Quote]
有这个包,在\hibernate-envers-4.0.0.CR4.jar里……
这个问题比较奇怪点,好像不多人遇到……
绿豆汤 2012-02-08
  • 打赏
  • 举报
回复
org.hibernate.integrator.spi.Integrator: Provider org.hibernate.envers.event.EnversIntegrator 不能找到这个包:
qq931226110 2012-02-06
  • 打赏
  • 举报
回复
路过帮顶
zglin689 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dreamslink2010 的回复:]
构建seseionFactroy出错了,
我记得构建这个Configuration你得设置一下文件的吧??

Java code

Configuration configuration = new Configuration();
configuration=configuration.configure("hibernate.cfg.xml");
configuration=co……
[/Quote]

extraProperties,,这个参数是填什么的?
不过我想应该也不是这个问题,我在javaproject里试这个是可以的
zglin689 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 webserver891203 的回复:]
无法创建Session工厂,在javaProject里面好着,在web里面出问题,应该是jar包冲突了。把jsp-api.jar这个jar包删除了试试看、、、
[/Quote]
没用到jsp-api.jar这个jar包。。

项目里有:
Java EE 5 Libraries 里默认的
JRE System Library 默认的
MySQL驱动包
hibernate里的包
Ajava攻城师 2012-02-06
  • 打赏
  • 举报
回复
构建seseionFactroy出错了,
我记得构建这个Configuration你得设置一下文件的吧??

Configuration configuration = new Configuration();
configuration=configuration.configure("hibernate.cfg.xml");
configuration=configuration.addProperties(extraProperties);
sessionFactory=configuration.buildSessionFactory();
独孤名 2012-02-06
  • 打赏
  • 举报
回复
无法创建Session工厂,在javaProject里面好着,在web里面出问题,应该是jar包冲突了。把jsp-api.jar这个jar包删除了试试看、、、
zglin689 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gy127132060 的回复:]
是不是缺少包了...
[/Quote]
应该没,同样的包(hibernate4.0.0.CR4里的jar包),在web项目里会出现这情况,在java project里可以正常使用。
香蕉猪 2012-02-06
  • 打赏
  • 举报
回复
是不是缺少包了...

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧