我正在尝试将GWT库模块打包到JAR文件中,并通过将JAR文件添加到其类路径中,在单独的GWT Web应用程序中使用该库。
JAR包含:
库模块继承自Web应用程序:
<module> <!-- my web app's module descriptor -->
...
<inherits name="[path to my library module].Library"/>
...
</module>
但是,我遇到了
Deferred binding failed for '[path to mylibrary].client.ClientFactory'...
当我尝试启动Web应用程序时出现错误,该应用程序在其onModuleLoad()方法中初始化库。失败是由库模块使用的UiBinder视图和RequestFactory引起的。在开发模式下启动或编译Web应用程序会导致错误,消息显示缺少CSS文件以及在emul.java.util包下对生成的源的非法引用(我尝试在JAR中包含此包和所有其他生成的源,但它没有'帮助。)
有人能告诉我JAR需要包含哪些内容?使用UiBinder和RequestFactory的库模块是否还需要其他资源?
是否有人成功打包了一个将RequestFactory和UiBinder用于JAR的GWT库模块?
进一步澄清:问题是关于创建GWT库模块;包含客户端和服务器组件的模块,RequestFactory和UiBinder。请注意,GWT库模块打包到JAR中,而带有入口点的常规GWT模块打包到WAR中。我尝试从另一个GWT项目打包这样的库模块和GWT <inherit>
失败了。
答案 0 :(得分:2)
或者,我误解了你的问题,或者你错误地将GWT编译与Java字节码编译相关联。
传统的Java开发
GWT不是这样。
GWT战争
<强>因此强>,
结论
编译的GWT资源不可用,也不会对GWT开发可见,因为...... GWT开发需要java源代码,GWT客户端部署是战争中的javascript,而javascript不像字节码jar /文件。
因此,在GWT中,包装可用于开发和部署的jar的“没有这样的东西”。一些示例和教程将开发和部署文件打包到一个jar中 - 但该jar本质上是一个zip,您必须首先从开发部分拆分部署部分。
GWT Development jars = source jars,
GWT部署= javascript和资源的战争。
在开始进入GWT开发之前,您应该至少有3-6个月的经验,使用JSP,servlet,HTML和javascript编写传统的JEE应用程序。这将有助于你灌输强烈的服务器端与客户端,战争与jar的隔离感,从而理解为什么GWT首先被发明。您将了解部署过程。