GWT:如何使用单独模块中的bean?

时间:2015-02-11 05:15:13

标签: java gwt javabeans gwt-rpc

我正在开发一个带有独立模块的项目。 管理员后端用户客户端核心用于共享DAO层的< strong>后端和客户端
后端模块使用GWT,客户端使用Spring MVC。在后端模块中,deployment assembly包含核心模块。我的服务器端,DAO由Spring注入。
核心模块中创建的所有bean(POJO)。我的问题是我想在我的gwt项目(后端模块)中使用来自核心模块的这些bean,或者在使用RPC调用时。我尝试了How can share bean from external library to GWT client?问题的答案,但还没有满足。我得到了以下错误

  

没有可用于类型的源代码   com.mycom.core.business.bean.TestBean; [错误]提示:检查   来自模块的继承链;它可能不会继承   所需模块或模块可能未添加其源路径条目   适当

这是我努力的代码......

TestBean.java

public class TestBean {
private int id;

public final int getId() {
    return id;
}

public final void setId(int id) {
    this.id = id;
}
}

beans.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module>
   <inherits name='com.google.gwt.user.User'/>
   <source path="com.mycom.core.business.bean.TestBean"/>
</module>

在我的App.gwt.xml中继承beans.gwt.xml为<inherits name='com.mycom.backend.beans'/>。我错过了什么?

  

编辑:添加示例项目文件

现在我创建并上传了示例模块。您可以从google-drive URL下载。此存档文件包含后端核心模块。

  • 核心模块是从Eclipse IDE创建的简单java项目。

  • 后端模块由gwt-ecliplse插件(2.7 gwt版本并包含生成的代码)创建,并添加Dynamic Web Module 2.5项目面。

最后,我使用 GWT-Eclipse插件构建并运行,你可以检查屏幕拍摄

类路径

enter image description here 源LookUp路径

enter image description here 模块

enter image description here 以下是我的控制台中的错误日志

Super Dev Mode starting up
workDir: /var/folders/mt/5287l4j94jd9rfqwqdqxr9zw0000gq/T/gwt-codeserver-7296341534601698800.tmp
Loading Java files in com.mycom.backend.App.
Ignored 1 unit with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
Finding entry point classes
  Tracing compile failure path for type 'com.mycom.backend.client.Backend'
     [ERROR] Errors in 'file:/Applications/springsource/workspace/backend/src/com/mycom/backend/client/Backend.java'
        [ERROR] Line 41: No source code is available for type com.mycom.core.business.bean.TestBean; did you forget to inherit a required module?
  [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[WARN] Server class 'com.google.gwt.dev.shell.jetty.JDBCUnloader' could not be found in the web app, but was found on the system classpath
[WARN] Adding classpath entry 'file:/Users/cataclysm/Desktop/eclipse%20(Luna)/Datas/gwt-2.7.0/gwt-dev.jar' to the web app classpath for this session
For additional info see: file:/Users/cataclysm/Desktop/eclipse%20(Luna)/Datas/gwt-2.7.0/doc/helpInfo/webAppClassPath.html

2 个答案:

答案 0 :(得分:2)

GWT编译过程应该可以访问核心模块的源路径。确保将其添加到类路径或源查找路径中。

答案 1 :(得分:1)

beans的模块文件应位于core文件夹/库中。 尝试将其移至core/src/com/mycom/并在beans.gwt.xml中相应地修改源路径:

<source path="core"/>

请记住,它与模块文件有关。

然后修改App.gwt.xml中的条目:

<inherits name='com.mycom.beans'/>

我不熟悉部署程序集,但请确保生成的库jar中存在beans.gwt.xml(或与源一起复制)。