GWT编译bean引用(没有源代码可用于类型)

时间:2011-06-29 13:19:55

标签: gwt smartgwt gwt-ext

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

我所有的bean都位于服务器端。所以当我在客户端导入bean时,它没有任何问题。

但是在编译时它提出了引用问题。它给出了如下问题:

[ERROR] 'file:/ E:/NTWrokSpace1June2011/AdminClient/src/com/nextenders/client/util/factory/DocumentMetadataFactory.java'中的错误

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

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

我所有的bean都位于服务器端。所以当我在客户端导入bean时,它没有任何问题。

但是在编译时它提出了引用问题。它给出了如下问题:

[ERROR] 'file:/ E:/NTWrokSpace1June2011/AdminClient/src/com/nextenders/client/util/factory/DocumentMetadataFactory.java'中的错误

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

这里AdminClient是我的客户项目。

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

但编译时它会给出问题。

请帮助我。

4 个答案:

答案 0 :(得分:1)

错误消息表明该类

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

引用(导入)gwt无法编译为javascript的一个或多个java类。

答案 1 :(得分:1)

通常的做法是将项目分成三个包:serverclientshared

client中,您将GWT代码放在server中,显然是服务器代码。在shared中,您放置了属于客户端和服务器的代码:最值得注意的是通过RPC的类。

你必须告诉GWT你的来源。您必须在.gwt.xml中引用这两个(如果您的gwt.xml文件位于客户端上方且已共享):

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

答案 2 :(得分:1)

我怀疑您的部分问题出在您的模块定义中。 GWT编译器将查看您在模块文件中定义的源路径,以确定尝试编译为Javascript的类。您可能从客户端代码引用了Table类,但该模块xml文件中指定的任何源路径中都不存在该bean。

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

答案 3 :(得分:0)

如果您使用Maven,它会对您有所帮助。

带参数maven-gwt-plugincompileSourcesArtifacts将下载-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>