1


我正在尝试优化 GWT Web 应用程序的序列化。
该应用程序基于 maven,具有 3 个模块(project/project-gwt/project-gwt-shared),其中一种方法必须向客户端返回大量信息。这种方法给我发回了大量相同DTO的列表,在序列化和反序列化过程中消耗了相当多的内存和时间。
我们制作了一个 custom_DTOserializator,但虽然时间更快,但我们认为它可以改进。

在寻找解决方案时,我发现gwtjsonrpc它是适用于 GWT 的 JSON-RPC 1.1 的实现。它集成在gerrit上,所以我决定尝试一下。
我下载了 gwtjsonrpc-1.3.jar 并尝试安装它:

mvn install:install-file -Dfile=gwtjsonrpc-1.3.jar 
    -DgroupId=com.google.gwtjsonrpc -Dpackaging=jar -DartifactId=gwtjsonrpc 
    -Dversion=1.3 -Dclassifier=sources

我把它放在我所有的poms里

<dependency>
    <groupId>com.google.gwtjsonrpc</groupId>
    <artifactId>gwtjsonrpc</artifactId>
    <version>1.3</version>
</dependency>   
<dependency>
    <groupId>com.google.gwtjsonrpc</groupId>
    <artifactId>gwtjsonrpc</artifactId>
    <version>1.3</version>
    <classifier>sources</classifier>
    <type>jar</type>
</dependency>

按照自述文件的说明,我创建了一个新的服务、serviceImpl 和 ServiceAsyn (AppJsonService),并尝试在我的应用程序的旧模块上使用它,将

<inherits name='com.google.gwtjsonrpc.GWTJSONRPC'/> 
<servlet path='/AppJsonService' class='com.company.project.server.AppJsonServiceImpl'/>

用这一行编译它(permgem 内存问题的额外行 id)

mvn clean  install:install-file -e -Dfile=gwtjsonrpc-1.3.jar 
-DgroupId=com.google.gwtjsonrpc -Dpackaging=jar -DartifactId=gwtjsonrpc 
-Dversion=1.3  -Dclassifier=sources install -Dmaven.test.skip=true 
-Dgwt.extraJvmArgs="-XX:MaxPermSize=512M -Xmx1024M"

命令 install the jar [INFO] 安装 C:\Users\me\Desktop\project\version\pom\gwtjsonrpc-1.3.jar 到 C:\Users\me.m2\repository\com\google\gwtjsonrpc\gwtjsonrpc\1.3 \gwtjsonrpc-1.3-sources.jar

但是在编译 gwt 模块时,它给了我一个我不知道如何解决的错误

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] GWT Module com.google.gwtjsonrpc.GWTJSONRPC not found in project sources or resources.

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: GWT Module com.google.gwtjsonrpc.GWTJSONRPC not found in project sources or resources.
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
   ...
Caused by: org.apache.maven.plugin.MojoExecutionException: GWT Module com.google.gwtjsonrpc.GWTJSONRPC not found in project sources or resources.
        at org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(CompileMojo.java:447)
        at org.codehaus.mojo.gwt.shell.CompileMojo.compile(CompileMojo.java:308)
        at org.codehaus.mojo.gwt.shell.CompileMojo.doExecute(CompileMojo.java:237)
        at org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute(AbstractGwtShellMojo.java:142)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
        ... 17 more
Caused by: org.codehaus.mojo.gwt.utils.GwtModuleReaderException: GWT Module com.google.gwtjsonrpc.GWTJSONRPC not found in project sources or resources
.
        at org.codehaus.mojo.gwt.AbstractGwtModuleMojo.readModule(AbstractGwtModuleMojo.java:205)
        at org.codehaus.mojo.gwt.GwtModule.getLocalInherits(GwtModule.java:189)
        at org.codehaus.mojo.gwt.GwtModule.getInherits(GwtModule.java:149)
        at org.codehaus.mojo.gwt.GwtModule.getEntryPoints(GwtModule.java:114)
        at org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(CompileMojo.java:361)
        ... 22 more
4

1 回答 1

1

我认为你的问题是你正在安装一个 JAR,而不是 2:一个没有分类器 ( gwtjsonrpc-1.3.jar),一个有分类器sources(实际上在 Maven 中它是 type java-source,而不是 type jar)。您将使用以下命令:

mvn install:install-file \
   -DgroupId=gwtjsonrpc -Dpackaging=jar -DartifactId=gwtjsonrpc -Dversion=1.3 \
    -Dfile=gwtjsonrpc-1.3.jar -Dsources=gwtjsonrpc-1.3-sources.jar

install-file 哦,在构建你的模块时不需要!

请注意,您可以在 GAV 下的http://gerrit-maven.storage.googleapis.com的 Maven 存储库中找到 gwtjsonrpc gwtjsonrpc:gwtjsonrpc:1.3,因此只需将其添加<repository>到您的 POM 或在您的存储库管理器中代理它,而不必费心手动安装 JAR . 至少你会有正确的 POM 和适当的依赖关系!

于 2013-11-13T13:57:55.933 回答