&引用;“共享”;GWT模块

&引用;“共享”;GWT模块,gwt,gwt-rpc,Gwt,Gwt Rpc,我有一个GWT模块,其中包括我希望在servlet和客户机上访问的几个DTO。在Eclipse中开发时,我使用GWT xml将该模块作为一个单独的项目: <module rename-to='commonmodels'> <source path="models"/> </module> 我有另一个GWT项目,它包含UI和servlet代码。我包括commonmodels项目(使用Build Path->Projects->Add

我有一个GWT模块,其中包括我希望在servlet和客户机上访问的几个DTO。在Eclipse中开发时,我使用GWT xml将该模块作为一个单独的项目:

    <module rename-to='commonmodels'>
    <source path="models"/>
    </module>

我有另一个GWT项目,它包含UI和servlet代码。我包括commonmodels项目(使用Build Path->Projects->Add),并在我的主项目中包括模块include语句:

    <inherits name="com.techflow.bcweb.common.CommonModels" />

然后,我进行一个RPC调用,在servlet上创建一个对象(其类在CommonModels中定义),并将其返回给客户机

这一切似乎都在GWT托管模式下工作,但当我运行war并将其部署到服务器上时,它会抛出ClassDefNotFound异常。我检查了war并确认所包含模块中的.class文件不存在。我的问题是——我如何告诉GWT编译器不仅要将包含的模块类编译成javascript,还要让servlet能够访问这些类?我知道在GWT项目中,您可以创建一个“共享”文件夹,使客户机和servlet都可以访问它的类。有没有一种方法可以将独立模块中的类标记为“共享”,以便继承它的任何GWT模块都可以访问它在客户端和servlet中的类


提前感谢您的帮助

将主项目部署到服务器时,该项目甚至不知道存在其他项目!Eclipse“项目>>添加”功能仅在从Eclipse中运行项目时有效。要解决这个问题,您只需创建一个包含commonmodels二进制文件的jar文件,然后将其添加到主项目的classes bin文件夹中:

war/WEB-INF/lib/

除非你用的是Maven。。。然后将项目安装到您的存储库中,并在pom.xml文件中添加一个依赖项。

谢谢您的回复。我想找到一种更方便的方法来实现这一点,而不必制作罐子,但这似乎是标准的方法。我已经尝试过了,效果很好。我知道的唯一其他方法是使用Maven。你的问题与GWT无关。关于如何构建应用程序或将其部署到服务器,您写得不够。