2013-08-29 55 views
2

嗨這是我運行我的GWT elicpse項目時得到的異常。我正在使用HSQLDB和Eclipselink。GWT:調度傳入RPC調用的異常

SEVERE: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call  com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void it.project.client.service.EmployeeService.createEmployee()' threw an unexpected exception: javax.persistence.PersistenceException: No persistence providers available for "myDB" after trying the following discovered implementations: org.datanucleus.api.jpa.PersistenceProviderImpl 
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389) 
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) 
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectRequest(DevAppServerServersFilter.java:369) 
at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectServerRequest(DevAppServerServersFilter.java:352) 
at com.google.appengine.tools.development.DevAppServerServersFilter.doFilter(DevAppServerServersFilter.java:115) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:480) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:326) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) 
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) 
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
    Caused by: javax.persistence.PersistenceException: No persistence providers available for "myDB" after trying the following discovered implementations: org.datanucleus.api.jpa.PersistenceProviderImpl 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:180) 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:70) 
at it.ronf.server.ServiceImpl.AddettoServiceImpl.creaaddetti(AddettoServiceImpl.java:16) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115) 
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561) 
... 40 more 

編輯:我正確的errornoticed在底部文件的註釋(問題還是沒有解決!)

這是我的persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
     http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> 


    <persistence-unit name="myDB" transaction-type="RESOURCE_LOCAL"> 

    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 

    <class>it.project.shared.entity.Ecmployee</class> 
    <class>it.project.shared.entity.Car</class> 
    <class>it.project.shared.entity.Customer</class> 


    <properties> 
     <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" /> 
     <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:file:${webroot}WEB-INF/db/inizData;shutdown=true;hsqldb.write_delay=false;"/> 
     <property name="javax.persistence.jdbc.user" value="SA" /> 
     <property name="javax.persistence.jdbc.password" value="" /> 

     <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> 
     <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
    </properties> 

    </persistence-unit> 
</persistence> 

在。在eclipse上我的構建路徑,我有:eclipselink.jar; gwt-servlet.jar; hsqldb.jar; javax.persistence_2.0.4.jar; persistence-api-sources-2.0.jar; smartgwt.jar

這是一個星期我在互聯網上搜索,但我找不到解決方案..你可以幫助弄清楚我做錯了什麼?隨意問代碼或任何..

回答

0

刪除行:<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

看一看http://www.vogella.com/articles/JavaPersistenceAPI/article.html

+0

它dind't發生很大的變化,因爲如果沒有指定使用自動類似的供應商執行RPC ...它現在給我一個非常類似的錯誤,我找不到這個解決方案@ GWT4Ever – user2298581

+0

SEVERE:javax.servlet.ServletContext日誌:調度傳入的RPC調用時發生異常 com.google.gwt.user .server.rpc.UnexpectedException:Service方法'public abstract void it.ronf.client.service.EmployeeService.createEmployee()'拋出一個意外的異常:javax.persis tence.PersistenceException:在嘗試以下發現的實現後發生了「myDB」的顯式持久性提供程序錯誤:org.datanucleus.api.jpa.PersistenceProviderImpl來自提供程序:org.datanucleus.api.jpa.PersistenceProviderImpl – user2298581

+0

嘗試添加「api 「提供者標記之間的部分:從org.eclipse.persistence.jpa.PersistenceProvider到org.datanucleus.api.jpa.PersistenceProviderImpl – Vjeetje