2013-07-16 29 views
1

您好我得到這個例外,當我在我的GWT項目運行RPC方法,我不明白爲什麼...... 我將EclipseLink和HSQLDB嘗試以下發現實現

後沒有持續可用的「MYDB」供應商
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.createemployees()' threw an unexpected 
exception:javax.persistence.PersistenceException: No persistence providers available for 
"myPU" after trying the following discovered implementations: 
org.datanucleus.api.jpa.PersistenceProviderImpl 
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389) 

這是呼叫: MyProject.java

public class MyProject implements EntryPoint { 

    private final EmployeeServiceAsync aService = (EmployeeServiceAsync)    GWT.create(EmployeeService.class); 

     @Override 
     public void onModuleLoad() { 

     aService.createemployee(new AsyncCallback<Void>() { 
      @Override 
      public void onFailure(Throwable caught) { 
       Window.alert("Creation Employees failed!"); 
      } 
      @Override 
      public void onSuccess(Void result) { 
       Window.alert("Creation success!"); 
      } 
     }); 

這是使異常的方法: EmployeeService.java

package com.example.client.service; 
    @RemoteServiceRelativePath("employeeService") 
    public interface EmployeeService extends RemoteService{ 

    public void createemployee(); 
} 

EmployeeServiceImpl.java

package com.example.server.ServiceImpl; 
public class EmployeeServiceImpl extends RemoteServiceServlet implements EmployeeService    { 

private static final long serialVersionUID = 1L; 

public void createemployee() { 

javax.persistence.EntityManagerFactory emf =  Persistence.createEntityManagerFactory("ronfPU"); 
javax.persistence.EntityManager em = emf.createEntityManager(); 


    try { 
     // Create new Employee 
     em.getTransaction().begin(); 
     Employee e1 = new Employee(); 
     e1.setName("admin"); 
     e1.setPassword("admin"); 
     em.persist(a1); 
     em.getTransaction().commit(); 
    } 
    finally { 
    em.close(); 
    } 
} 
} 

Thoose是我的構建路徑的罐子:

eclipselink.jar

GWT-的servlet.jar

hsqldb。罐子

javax.persistence_2.0.4.jar

持久化API來源-2.0.jar

smartgwt.jar

感謝您的幫助!

回答

0

該錯誤似乎表明您的類路徑中沒有eclipselink.jar。

嘗試一個簡單的Class.forName( 「org.eclipse.persistence.jpa.PersistenceProvider」)

+0

[ERROR] - 管線40:本方法的forName(字符串)是未定義的類型類...那是什麼應該是什麼意思? – user2298581

+0

你看過嗎? – user2298581