简体   繁体   English

当我尝试将休眠与检票口一起使用时出错

[英]Error when I try to use hibernate with wicket

I'm using this tutorial about simple hibernate implementation, and everything works great just from the console, but when i try to use this example with wicket by the button click on the web, i have an error 我正在使用有关简单休眠实现的教程 ,并且一切都可以从控制台正常运行,但是当我尝试通过在网页上单击按钮并通过wicket使用此示例时,出现错误

WicketMessage: Can't instantiate page using constructor public com.mycompany.app.StartPage(org.apache.wicket.PageParameters) and argument 

Root cause:

java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
     at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:246)
     at org.hibernate.type.BasicTypeRegistry.register(BasicTypeRegistry.java:147)
     at org.hibernate.type.BasicTypeRegistry.<init>(BasicTypeRegistry.java:50)
     at org.hibernate.type.TypeResolver.<init>(TypeResolver.java:59)
     at org.hibernate.cfg.Configuration.<init>(Configuration.java:250)
     at org.hibernate.cfg.Configuration.<init>(Configuration.java:302)
     at com.mycompany.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
     at com.mycompany.util.HibernateUtil.<clinit>(HibernateUtil.java:8)
     at com.mycompany.app.StartPage$3.<init>(StartPage.java:132)
     at com.mycompany.app.StartPage.<init>(StartPage.java:131)
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
     at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
     at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:65)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
     at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
     at java.lang.Thread.run(Thread.java:680)

Complete stack:

org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor public com.mycompany.app.StartPage(org.apache.wicket.PageParameters) and argument 
     at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
     at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:65)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)

java.lang.reflect.InvocationTargetException
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
     at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
     at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:65)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)

java.lang.ExceptionInInitializerError
     at com.mycompany.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:17)
     at com.mycompany.util.HibernateUtil.<clinit>(HibernateUtil.java:8)
     at com.mycompany.app.StartPage$3.<init>(StartPage.java:132)
     at com.mycompany.app.StartPage.<init>(StartPage.java:131)
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
     at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
     at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:65)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
     at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)

here is my StartPage.html 这是我的StartPage.html

<html>
<head>
    <title>Start Page</title>
</head>
<body>
    <form wicket:id="form">
        <p>
            <input class="button" type="submit" value="load from DB" />
        </p>
    </form>
</body>
</html>

StartPage.java StartPage.java

Form<?> form = new Form<Void>("form") {
    @Override
    protected void onSubmit() {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
    }
};
add(form);

hibernate.cfg.xml hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/test_db</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.connection.password">pass</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
        <property name="show_sql">true</property>
        <property name="current_session_context_class">thread</property>
        <mapping resource="com/mycompany/app/DBUser.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>

An error occur when i add this SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 当我添加此SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();时发生错误SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

What's the Exception? 有什么例外? First thing I've noticed is that you're creating SessionFactory on every form submit request. 我注意到的第一件事是您在每个表单提交请求上创建SessionFactory。 Session factory should be created only once on app initialization and on every request you should only obtain hibernate session. 会话工厂仅应在应用初始化时创建一次,并且在每个请求中,您仅应获取休眠会话。

Look at the HibernateUtil class from your tutorial. 在您的教程中查看HibernateUtil类。 It creates singleton class for SessionFactory. 它为SessionFactory创建单例类。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.apache.wicket.WicketRuntimeException当我尝试从sessionFactory打开休眠获取会话时 - org.apache.wicket.WicketRuntimeException when I try to open hibernate get session from sessionFactory 当我尝试创建插入查询时如何使用休眠@EmbeddedId - how to use hibernate @EmbeddedId when i try to create insert query 当我尝试将带有 hibernate 的字段插入表中时出错 - Error when I try to insert fields with hibernate into a table Java-当我尝试使用盒子布局时出现错误 - Java - I get an error when i try to use a box layout 当我尝试删除对象时,Hibernate:org.hibernate.WrongClassException - Hibernate : org.hibernate.WrongClassException when I try to remove an object 当我尝试对文件 IO 使用 nextint() 时出现不匹配异常错误 - Mismatch Exception Error when I try to use nextint() for File IO 尝试使用 javadb 时,我不断收到此错误消息 - I keep getting this error messages when try to use javadb JOptionPane在尝试将其用作输入时给我一个错误 - JOptionPane giving me an error when I try to use it as input 当我尝试删除具有Hibernate的实体时,没有错误消息但不删除 - When I try delete a entity with Hibernate, there isn't a error message but doesn't delete 配置中的映射元素未指定属性尝试在Hibernate中运行项目时发生错误 - Mapping element in configuration specifies no attributes Error occurred when i try to run my project in Hibernate
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM