1


GWT Web アプリのシリアル化を最適化しようとしています。
アプリケーションは Maven ベースで、3 つのモジュール (project/project-gwt/project-gwt-shared) があり、メソッドの 1 つはクライアント側に大量の情報を返す必要があります。この方法では大量の同じ DTO のリストが返され、シリアライズとデシリアライズにかなりのメモリと時間が消費されます。
custom_DTOserializator を作成しましたが、時間は速くなりますが、改善できると思います。

解決策を探していると、GWT で動作する JSON-RPC 1.1 の実装であるgwtjsonrpcが見つかりました。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

そして、私はそれをすべてのポンポンに入れました

<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>

Readme Instruction に従って、新しい Service、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"

コマンドは jar をインストールします[情報] 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

あなたの問題は、2 つではなく単一の JAR をインストールしていることだと思いgwtjsonrpc-1.3.jarます。次のコマンドを使用します。sourcesjava-sourcejar

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 ビルドする必要はありません!

gwtjsonrpc は Maven リポジトリのhttp://gerrit-maven.storage.googleapis.comの GAVgwtjsonrpc:gwtjsonrpc:1.3の下にあります。そのため、POM に追加する<repository>か、リポジトリ マネージャーでプロキシするだけで、JAR を手動でインストールする必要はありません。 . 少なくとも、適切な依存関係を持つ正しい POM が得られます。

于 2013-11-13T13:57:55.933 に答える