Java “没有可用的持久性提供程序”;myDB“;在尝试以下发现的实现之后
嗨,我在我的gwt项目上运行RPC方法时遇到了这个异常,我不明白为什么。。。 我使用EclipseLink和HSQLDBJava “没有可用的持久性提供程序”;myDB“;在尝试以下发现的实现之后,java,gwt,persistence,eclipselink,rpc,Java,Gwt,Persistence,Eclipselink,Rpc,嗨,我在我的gwt项目上运行RPC方法时遇到了这个异常,我不明白为什么。。。 我使用EclipseLink和HSQLDB SEVERE: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void it.pro
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!");
}
});
package com.example.client.service;
@RemoteServiceRelativePath("employeeService")
public interface EmployeeService extends RemoteService{
public void createemployee();
}
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();
}
}
}
EmployeeServiceImpl.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!");
}
});
package com.example.client.service;
@RemoteServiceRelativePath("employeeService")
public interface EmployeeService extends RemoteService{
public void createemployee();
}
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();
}
}
}
这些是我构建路径的jar:
日食罐
gwt-servlet.jar
hsqldb.jar
javax.persistence_2.0.4.jar
persistence-api-sources-2.0.jar
smartgwt.jar
谢谢你的帮助 该错误似乎表明类路径上没有eclipselink.jar
尝试一个简单的Class.forName(“org.eclipse.persistence.jpa.PersistenceProvider”)[错误]-第40行:类型类的forName(String)方法未定义…这意味着什么?