使用 Glassfish + GWT 处于开发模式
好吧,这就是我目前的工作方式:
- 我使用 EJB(3.x)作为我的服务层
- 我使用 GWT 作为我的可视层
- 我通过 EJB 与依赖注入(@EJB 注释)进行通信 GWT
所以问题是我正在工作速度很慢,因为每当我对 GWT 层进行微小更改时,我都必须进行编译,这需要一些时间。 我想知道是否有一种方法可以在生产模式下使用 Glassfish + GWT + EJB
Okey so this is how im currently working:
- Im using EJBs (3.x) for my service layer
- Im using GWT for my visual layer
- Im comunication GWT with EJBs with debendency injection (@EJB annotation)
So the problem is that im woking kind of slow because whenever i make a small change to my GWT layer I have to compile wich takes some time.
I was wondering if there was a way to work with Glassfish + GWT + EJBs in production mode
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为了使其发挥作用,您应该执行以下操作:
1. 仅在 Glassfish 上部署 ejb(用于开发模式)。当您希望 Web 部件处于开发模式时,构建完整的 Ear 是没有意义的。
2. 使用远程接口(我们使用服务定位器来检测它是否应该在 EJB 的本地接口或远程接口上工作)。
3. 将 gf-client.jar 添加到 GWT 开发模式的引导条目(从 eclipse 启动时)。
4. 将ejb 客户端jar 添加到GWT dev 模式的类路径条目中。
当您在 GWT 站点上更改某些内容时,这样的设置将节省您耗时的重新编译(您只需点击重新加载按钮,它就会使用新代码)。当您更改 ejb 方面的某些内容时,您仍然必须关闭开发模式,重新部署 ejb 并再次启动开发模式,才能使其正常工作。
这不是很简单的设置,但它确实有效。我们使用 Maven 配置文件来生成仅用于开发的 ejb 和用于生产的完整 Ear。
还有 noserver 模式,会更简单一点(它将连接到部署在 glassfish 上的 Web 部件,而不是 jetty),但效率较低,因为 GWT RPC 端的每个更改都需要耗时的重新编译和重新部署 war(或全耳) )。
To make it work you should do following things:
1. Deploy ejb only on Glassfish (for development mode). It's no point to build full ear when you want web part in development mode.
2. Use remote interfaces (we're using service locator that detects whether it should work on local or remote interfaces for EJBs).
3. Add gf-client.jar to bootstrap entries of GWT development mode (while launching from eclipse).
4. Add ejb client jar to classpath entries of GWT dev mode.
Setup like this will save you time consuming recompilations when you change something on the GWT site (you just hit reload button and it works with new code). When you change something on the ejb's side you still have to close dev mode, redeploy ejb and launch dev mode again, to make it work.
It's not very straightforward setup but it works. We're using maven profiles to produce ejb only build for development and full ear for production.
There's also noserver mode that will be a little bit simpler (it will connect to web part deployed on glassfish, not jetty) but it's less productive, because each change on GWT RPC side requires time-consuming recompilation and redeploy of war (or full ear).
在这种情况下,您不需要部署服务层。
您可以使用托管模式来查看 GWT 端的更改。
http://code.google.com/eclipse/
以及您在 eclipse 中运行的 google 插件仅刷新页面即可看到更改。
Jetty 是 eclipse 中的一个服务器,用于开发基于 GWT 的 Web 应用程序。
in that case you don't need to deploy service layer.
You could work with hosted mode to see changes on GWT side.
http://code.google.com/eclipse/
with google plug-in you run in eclipse and see changes only page refresh.
Jetty is a server in eclipse to develop GWT based web applications.