GWT如何在不同模块中使用相同的服务

时间:2014-01-29 13:39:47

标签: java javascript eclipse gwt gwt-rpc

我正在尝试运行gwt项目。该项目有3个模块。 1-StudentSystem2
2- EnterStudent 3 GetStudent。

我想在输入课程中输入学生ID,姓名,部门,当我点击添加按钮时将它们添加到数据库并更改窗口。但是当点击添加按钮时,它会给出

找不到以下文件:/com.example.studentsystem2.client.enterStudent.enterStudent/dao

并打印xxx。如何在dao服务中连接两个模块??

这是包结构。(抱歉,由于缺乏声誉而不加载图片)

com.example.studentSystem2
   ->  studentSystem2.gwt.xml
 |com.example.studentsystem2.client
   ->  StudentSystem2.java 
    ||com.example.studentSystem2.client.enterStudent
      ->enterStudent.gwt.xml
    ||com.example.studentSystem2.client.enterStudent
      ->Enter.java
      ->EnterStudent.java
      ->Enter.ui.xml

    ||com.example.studentSystem2.client.getStudent
      ->getStudent.gwt.xml
    ||com.example.studentSystem2.client.getStudent
      ->Get.java
      ->GetStudent.java
      ->Get.ui.xml
    ||com.example.studentSystem2.client.request
      ->Dao.java
      ->DaoAsync.java
      ->EMF.java
      ->StudentInfo.java
 |com.example.studentSystem2.server
   ->DaoImpl.java

这是Enter.java中的onClick方法

    @UiHandler("addButton")
        void onAddButtonClick(ClickEvent event) {

            dao.addStudentInfo(IdTextField.getText(),nameTextField.getText(),departmentTextField.getText(),new AsyncCallback<Void>() {
                @Override
                public void onFailure(Throwable caught) {

                    System.out.println("xxx");
                }

                public void onSuccess(Void ignore) {
                    Window.Location.replace("http://127.0.0.1:8888/GetStudent.html?gwt.codesvr=127.0.0.1:9997");
                }
            });
  }

和Dao.java类

@RemoteServiceRelativePath("dao")
public interface Dao extends RemoteService {
    public List<StudentInfo> listInfos();
    public void addStudentInfo(String SId, String name, String department);
    public void remove(String id);


}

1 个答案:

答案 0 :(得分:0)

您可以用'N'方式完成。我赞成的一种方法是,将您的服务及其实施保存在一个单独的模块中。然后将此模块添加为其他模块的依赖项。然后,您就可以访问已添加依赖项的相同服务。