2011-06-29 53 views
2

我在我的应用程序中使用gwt2.0.3版本。此应用程序中有两个项目。一个用于客户端,另一个用于服务器端。在客户端项目我已经提供了服务器端项目的参考。因此,我能够将服务器端的所有方法和属性都获取到客户端。GWT编译bean引用(没有源代码可用于类型)

我的所有bean都位于服务器端。因此,虽然我在客户端导入bean,但它没有给出任何问题。

但在编译的时候它给referencing.and它给像下面问题的问题:

[错误] 错误在“文件:/ E:/ NTWrokSpace1June2011 /的AdminClient/src目录/ COM/nextenders /client/util/factory/DocumentMetadataFactory.java'

[错误]第26行:没有源代码可用于com.nextenders.facadeimplementation.beans.metadata.Table类型;你忘了继承一个必需的模块吗?

你好全部 我在我的应用程序中使用gwt2.0.3版本。在这个应用程序中有两个项目。一个用于客户端,另一个用于服务器端。在客户端项目中,我已经给出了服务器端项目的参考所以我能够将服务器端的所有方法和属性都放到客户端。

我的所有bean都位于服务器端。因此,虽然我在客户端导入bean,但它没有给出任何问题。

但在编译的时候它给referencing.and它给像下面问题的问题:

[错误] 错误在“文件:/ E:/ NTWrokSpace1June2011 /的AdminClient/src目录/ COM/nextenders /client/util/factory/DocumentMetadataFactory.java'

[错误]第26行:没有源代码可用于com.nextenders.facadeimplementation.beans.metadata.Table类型;你忘了继承一个必需的模块吗?

这里AdminClient是我的客户项目。

和com.nextenders.facadeimplementation.beans.metadata包在服务器端。而在导入时,它不会给出任何问题。

但编译时间是给出问题。

请帮我解决这个问题。

+0

我解决了一些其他trick.So的解决方案,我想和大家分享它。我做了另一个GWT项目和推杆所有的豆类在project.Followed这个步骤右击项目>选择属性>库选项卡>添加其他项目 然后转到项目选项卡>添加其他项目 把它放在project.gwt.xml文件中 - > 转到调试配置>项目>类路径>用户条目>添加项目 然后添加src文件夹> g oto高级>添加文件夹>选择src文件夹 –

回答

1

我怀疑你的问题的一部分是在你的模块定义。 GWT编译器会查看你在模块文件中定义的源代码路径,以确定试图编译成Javascript的类。您可能从客户端代码引用Table类,但该模块不存在于模块xml文件中指定的任何源路径中。

让豆子在一个单独的项目中可能会导致问题,但我没有自己测试过。在你的模块文件中指定的源路径是相对路径而不是我认为的包路径,所以它可能根本不起作用。

+0

我也试过把一个Jar在客户端的bean,仍然没有工作。任何工作? –

+1

最好的办法是让您的服务器和客户端代码与Peter建议的项目设置保持一致。这允许Google编译器抓取正确的目录。我不认为它有能力选择性地抓取jar文件来查找客户端兼容的代码。 –

1

该错误消息指示所述类

com.nextenders.facadeimplementation.beans.metadata.Table; 

引用(进口)一种或不能由GWT被编译为JavaScript多个Java类。

+0

当我开始编译时会出现这个问题。并且如果我在客户端项目中放置了一个jar的jar,它就可以正常工作。那时候它得到了引用。我没有得到eclipse没有在导入它们时遇到任何问题,但编译GWT编译器时无法获取bean的引用? –

+2

没有gwt编译器不能简单地交叉编译从java到javascript的所有内容都有限制。例如,当你的客户端有一个导入java.util.calendar的时候,你不能在你的客户端使用任何java类,因为gwt不能将java.util.calendar编译成javascript ... –

1

正常的方法是将您的项目分为三个包:server,clientshared

client你把GWT码,在server显然是服务器代码。在shared中,您放置属于客户端和服务器的代码:最显着的是通过RPC的类。

你必须告诉GWT你的来源在哪里。你必须引用您的.gwt.xml这两个(如果你的gwt.xml文件是略高于客户端文件夹和共享):

<source path='client'/> 
<source path='shared'/> 
0

如果你使用Maven,那么它会帮助你。

带有参数compileSourcesArtifactsmaven-gwt-plugin将下载-sources.jar并且编译GWT模块而不向所产生的jar添加源。

例的pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <dependencies> 
     <dependency> 
      <groupId>com.my.group</groupId> 
      <artifactId>my-artifact</artifactId> 
      <version>1.0</version> 
     </dependency> 
    </dependencies> 

    <!-- ... --> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>gwt-maven-plugin</artifactId> 
       <version>2.5.0</version> 
       <!-- ... --> 
       <configuration> 
        <compileSourcesArtifacts> 
         <compileSourcesArtifact>com.my.group:my-artifact</compileSourcesArtifact> 
        </compileSourcesArtifacts> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
相关问题