【问题标题】:GWT How to use same service in different modulesGWT 如何在不同的模块中使用相同的服务
【发布时间】:2014-01-29 13:39:46
【问题描述】:

我正在尝试运行一个 gwt 项目。这个项目有3个模块。 1-学生系统2
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);


}

【问题讨论】:

  • 给这只猫剥皮的方法有很多种。你有没有考虑过依赖注入?
  • 我不知道。

标签: java javascript eclipse gwt gwt-rpc


【解决方案1】:

您可以通过 'N' 种方式进行操作。我喜欢的一种方法是将您的服务及其实现保留在一个单独的模块中。然后将此模块添加为其他模块的依赖项。然后您就可以访问您为其添加了依赖项的同一服务。

【讨论】:

  • 你的意思是这个架构不合适??
猜你喜欢
  • 2021-09-01
  • 1970-01-01
  • 2013-07-25
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
相关资源
最近更新 更多