使用Glassfish + GWT进行开发模式

4

好的,这是我目前的工作方式:

  1. 我使用 EJBs(3.x)作为我的服务层
  2. 我使用 GWT 作为我的视觉层
  3. 我使用依赖注入(@EJB 注解)来将 GWT 与 EJBs 进行通信

所以问题在于,每当我对 GWT 层进行小改动时,就必须编译,这会花费一些时间,导致我工作效率较慢。我想知道是否有一种方法可以在 Glassfish + GWT + EJBs 生产模式下工作。

2个回答

1
为了使其正常工作,您应该执行以下操作: 1. 仅在Glassfish上部署ejb(用于开发模式)。当您想要在开发模式下使用Web部分时,构建完整的ear没有意义。 2. 使用远程接口(我们正在使用服务定位器,它会检测它是否应该在EJB的本地或远程接口上工作)。 3. 将gf-client.jar添加到GWT开发模式的引导条目中(从eclipse启动时)。 4. 将ejb客户端jar添加到GWT dev mode的类路径条目中。
这样的设置将节省您耗时的重新编译时间,当您在GWT站点上更改某些内容时(您只需点击重新加载按钮即可使用新代码)。当您在ejb方面进行更改时,仍然需要关闭dev模式,重新部署ejb并再次启动dev模式才能使其正常工作。
这不是非常直观的设置,但它可以正常工作。我们正在使用maven配置文件为开发环境生成仅ejb构建和生产环境的完整ear。
还有noserver模式,它会简单一些(它将连接到部署在glassfish上的Web部分,而不是jetty),但它的生产力较低,因为每次更改GWT RPC方面都需要耗费时间重新编译和重新部署war(或完整的ear)。

好的,我不是很理解第三步。 我在哪里可以找到gf-client.jar? 引导项是什么? 它是否位于WEB-INF中?客户端jar是什么? 如果这些问题太菜鸟了,对不起,我对这一切都很新。 - fernandohur
gf-client.jar 可在 <GLASSFISH_HOME>/glassfish/lib 目录下找到。您应该修改 Eclipse 运行配置以包括此库,以使其处于开发模式。 - jgrabowski
好的,我弄清楚了什么是Bootstrap,我已经添加了gf-client.jar,但是似乎找不到ejb客户端的jar包...你知道我可以在哪里找到它们吗?(我在glassfish目录中找到了一些文件夹,完全与我的ejb项目名称相同) - fernandohur
您可以使用从ejb模块构建生成的完整jar文件。它将包含比仅客户端更多的类,但应该也可以正常工作。我正在使用Maven ejb插件生成客户端库,但也应该有从“纯”Eclipse项目以及应用服务器工具中执行此操作的选项。 - jgrabowski
当我使用JNDI查找EJB时,这对我有效,但是有人曾经使用@EJB依赖注入使其工作过吗? - Torben Knerr

0

在这种情况下,您不需要部署服务层。您可以使用托管模式来查看GWT端的更改。

http://code.google.com/eclipse/

使用Google插件,您可以在Eclipse中运行并仅通过页面刷新查看更改。 Jetty是Eclipse中的服务器,用于开发基于GWT的Web应用程序。


我不确定你的意思,我已经在使用 Eclipse 插件了。 - fernandohur
抱歉,这是一个快速发送的帖子 :) jgrabowski解释了我所指的过程。 - Yusuf K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接