我正在尝试创建一个 GWT 应用程序,并且正在使用本地 postgreSQL 数据库。我在 eclipse Juno 上使用 GWT 2.4。我以这种方式实现了服务器端实现(TaskServiceImpl):
public class TaskServiceImpl extends ServiceImpl implements TaskService {
@Override
public List<Task> getAllTasks() {
em = this.getEntityManager();
Query q = em.createQuery("SELECT x FROM Task x");
List<Task> list = createList(q.getResultList().toArray(),
new ArrayList<Task>(), em);
em.close();
return list;
}
这是客户端的数据库连接类:
public class DatabaseConnection {
public static final TaskServiceAsync taskService;
static {
taskService = GWT.create(TaskService.class);
}
}
我现在尝试以这种方式运行 getAllTask()
public void onModuleLoad() {
DatabaseConnection.taskService.getAllTasks(new AsyncCallback<List<Task>>() {
@Override
public void onSuccess(List<Task> result) {
System.out.println("Success!");
}
@Override
public void onFailure(Throwable caught) {
System.out.println("Fail!");
}
});
}
并且总是返回“失败!” 并给我这个错误:
com.google.appengine.tools.development.LocalResourceFileServlet doGet 警告:找不到文件:/fantapgl/task
这是我的 web.xml
<servlet>
<servlet-name>taskServiceImpl</servlet-name>
<servlet-class>fieldProject.server.service.TaskServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>taskServiceImpl</servlet-name>
<url-pattern>/fantaPGL/task</url-pattern>
</servlet-mapping>
要打开与数据库的连接,我在 persistence.xml 中有以下代码:
<properties>
<property name="openjpa.jdbc.DBDictionary" value="postgres" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema()"/>
<property name="openjpa.ConnectionDriverName" value="org.postgresql.Driver"/>
<property name="openjpa.ConnectionURL" value="jdbc:postgresql://localhost:5432/db" />
<property name="openjpa.ConnectionUserName" value="postgres" />
<property name="openjpa.ConnectionPassword" value="password" />
</properties>
我不明白我错在哪里。有人可以帮助我吗!?