2012-03-27 140 views
0

我有一个GWT模块,其包括我希望在小服务程序和客户端访问几个DTO的。而在Eclipse中开发,我该模块一个单独的项目与GWT XML:“共享” GWT模块

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

我有另一个GWT项目,该项目包含UI,以及servlet代码。我包括(使用构建路径 - >项目 - >添加)的commonmodels项目,包括模块包括声明我的主要项目:

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

然后,我让一个RPC调用它创建了一个对象(其具有同级车在CommonModels中定义)并将其返回给客户端。

这一切似乎工作,GWT托管模式,但是当我运行它的战争和服务器上部署它,它抛出一个异常ClassDefNotFound。我检查了战争并确认了包含模块中的.class文件不存在。我的问题是 - 我如何告诉GWT编译器不仅要将包含的模块的类编译为javascript,还要让这些类可以被servlet访问?我知道在GWT项目中,您可以创建一个“共享”文件夹,使其类可以访问客户端和servlet。有没有办法独立模块为“共享”,在纪念类,使继承它可以访问两个客户端和servlet的类任何GWT模块?

在此先感谢您的帮助!

+0

你的问题不是与GWT有关。您没有足够写关于如何构建应用程序或将其部署到服务器的问题。 – mabn 2012-03-29 03:15:39

回答

0

当你部署你的主要项目到服务器,该项目甚至不知道你的另一项目存在! Eclipse“Project >> Add”只在Eclipse中运行项目时才起作用。为了解决这个问题,你只需要创建一个包含commonmodels二进制的JAR文件,然后将其添加到您的主项目的类bin文件夹:

war/WEB-INF/lib/ 

除非你使用Maven的...然后只需安装项目到您的资源库中,并在您的pom.xml文件中添加一个依赖项。

+0

感谢Renato的回复。我想找到一个更方便的方法来做到这一点,而不必做一个罐子,但似乎这是标准方法。我试了一下,效果很好。 – Fangbot 2012-03-28 01:35:06

+0

我知道的唯一方法就是使用Maven。 – Renato 2012-03-28 03:22:43