我正在尝试熟悉使用 GWT api 创建基于 Web 的应用程序。我一直在关注一些关于 GWT 的教程,但还不能进行 RPC 调用。从广泛的角度来看问题,我的目标是进行服务器调用以运行我知道有效的一系列数据库测试(我测试了此代码)。
- -编辑 - -
我认为这里的问题是正在这里寻找资源:/MatesWeb/org.matesweb.Main/peopleService
当我认为应该在这里寻找它时:/MatesWeb/peopleService
---END_EDIT---
这是我认为相关的信息和代码:
- 使用 netbeans
- 我得到的错误是“/MatesWeb/org.matesweb.Main/PeopleService - 描述 - 请求的资源不可用。”
-GWT.getModuleBaseURL() 返回::8080/MatesWeb/org.matesweb.Main/
- 浏览器中的 URL 为::8080/MatesWeb/
来自 web.xml 文件
<servlet>
<servlet-name>peopleService</servlet-name>
<servlet-class>org.matesweb.server.PeopleServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>peopleService</servlet-name>
<url-pattern>/peopleService</url-pattern>
</servlet-mapping>
来自 PeopleService 服务包 org.matesweb.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("PeopleService")
public interface PeopleService extends RemoteService {
String[] saveGetPerson(String[] persInfo);
int runTests();
}
来自 PeopleServiceImpl 包 org.matesweb.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import org.matesweb.client.PeopleService;
import org.matesweb.server.tests.DbTest;
class PeopleServiceImpl extends RemoteServiceServlet implements PeopleService {
@Override
public String[] saveGetPerson(String[] persInfo) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int runTests()
{
int retInt;
DbTest dbTest = new DbTest();
retInt = dbTest.runTests();
return retInt;
}
}
来自 PeopleServiceAsync
package org.matesweb.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface PeopleServiceAsync
{
void saveGetPerson(String[] persInfo, AsyncCallback<String[]> persInformation);
void runTests(AsyncCallback<Integer> retInt);
}
知道这里发生了什么吗?
干杯,尼克