呼叫JPA /从使用Ajax
我有下面的代码在JSP页面的EclipseLink在一个Swing应用程序中测试了这段代码,它与JPA协同工作,...) 我直接在浏览器中调用页面,h ERE是堆栈跟踪 org.apache.jasper.JasperException:发生处理JSP页面/db/ajoutConducteur.jsp在行例外41呼叫JPA /从使用Ajax
38: Conducteur c=new Conducteur(cin, nom, prenom, new Date(), permis, new Date());
39: EntityManagerFactory emf=Persistence.createEntityManagerFactory("googleApiPU");
40:
41: EntityManager em=emf.createEntityManager();
42: em.getTransaction().begin();
43: em.persist(c);
44: em.getTransaction().commit();
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546)
at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:364)
at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Ltrage;
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
at org.apache.jsp.db.ajoutConducteur_jsp._jspService(ajoutConducteur_jsp.java:111)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
... 28 more
Caused by: java.lang.NoClassDefFoundError: Ltrage;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
at java.lang.Class.getDeclaredField(Class.java:1897)
at org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getDeclaredField(PrivilegedAccessHelper.java:233)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.initializeCanonicalMetamodel(EntityManagerSetupImpl.java:2562)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.getMetamodel(EntityManagerSetupImpl.java:2531)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:484)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:290)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:268)
at org.apache.jsp.db.ajoutConducteur_jsp._jspService(ajoutConducteur_jsp.java:99)
... 31 more
Caused by: java.lang.ClassNotFoundException: trage
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
... 43 more
编辑:
问题来自这里:
@Column(name = "KILOM\u00c9TRAGE", nullable = false)
private double kilométrage;
实体通过从数据库的NetBeans产生......最后的问题来自于DB ..
尝试把你的代码放到一个尝试捕捉集团象下面这样:
try {
Conducteur c=new Conducteur(cin, nom, prenom, new Date(), permis, new Date());
EntityManagerFactory emf=Persistence.createEntityManagerFactory("googleApiPU");//EM
ConducteurJpaController cjc=new ConducteurJpaController(emf);// JPA controller
cjc.create(c);//persist
}
catch(Exception e)
{
e.printStackTrace();
}
看到的相关详细记录在控制台中。
否则,您可以通过调试step by step
来了解问题根源。
希望帮助
Thanks,更新了问题 – Stacker 2012-03-30 14:57:59
但从提供的细节,我相信您正在使用相同的配置对Java EE环境。相反,您应该使用由容器管理的JTA
。
通常,在Java SE RESOURCE_LOCAL
中使用& EE环境中JTA
。
此外,看你的堆栈跟踪类加载有一些问题。可以检查其他类是否包含在classpath中。
谢谢你的支持...解决:),你能请更新你的答案? – Stacker 2012-04-02 13:50:46
@Stacker要更新什么 – 2012-04-02 16:52:14
你可以有异常处理,日志记录和可能的MVC。您提供的详细信息是不够的 – 2012-03-30 12:27:57
谢谢!我添加了完整代码 – Stacker 2012-03-30 13:18:47
您在persistence.xml中声明了哪个'transaction-type' – 2012-03-30 13:56:45