2012-03-30 126 views
1

我有下面的代码在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 ..

+0

你可以有异常处理,日志记录和可能的MVC。您提供的详细信息是不够的 – 2012-03-30 12:27:57

+0

谢谢!我添加了完整代码 – Stacker 2012-03-30 13:18:47

+0

您在persistence.xml中声明了哪个'transaction-type' – 2012-03-30 13:56:45

回答

0

尝试把你的代码放到一个尝试捕捉集团象下面这样:

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来了解问题根源。

希望帮助

+0

Thanks,更新了问题 – Stacker 2012-03-30 14:57:59

0

但从提供的细节,我相信您正在使用相同的配置对Java EE环境。相反,您应该使用由容器管理的JTA

通常,在Java SE RESOURCE_LOCAL中使用& EE环境中JTA

此外,看你的堆栈跟踪类加载有一些问题。可以检查其他类是否包含在classpath中。

+0

谢谢你的支持...解决:),你能请更新你的答案? – Stacker 2012-04-02 13:50:46

+0

@Stacker要更新什么 – 2012-04-02 16:52:14