2

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

我所有的 bean 都位于服务器端。因此,当我在客户端导入 bean 时,它不会出现任何问题。

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

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

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

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

我所有的 bean 都位于服务器端。因此,当我在客户端导入 bean 时,它不会出现任何问题。

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

[错误] '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

4 回答 4

1

错误信息表明该类

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

引用(导入)一个或多个不能被 gwt 编译为 javascript 的 java 类。

于 2011-06-29T13:27:00.333 回答
1

正常的方法是将您的项目拆分为三个包serverclientshared.

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

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

<source path='client'/>
<source path='shared'/>
于 2011-06-29T13:44:53.453 回答
1

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

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

于 2011-06-29T13:46:45.063 回答
0

如果您使用 Maven,那么它将对您有所帮助。

带有参数compileSourcesArtifactsmaven-gwt-plugin将下载并编译 GWT 模块,而无需将源添加到生成的 jar 中。-sources.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>
于 2013-02-23T11:22:49.437 回答