【问题标题】:How to make Interaction with GWT - Spring RestTemplate如何与 GWT 进行交互 - Spring RestTemplate
【发布时间】:2012-10-26 07:34:44
【问题描述】:

这是issue的延续

我目前正在处理具有GWTRestfulSpring Framework 环境的任务。

它有两个应用程序; Application #1 通过 Restful Webservice 公开一些信息,Application #2 使用该服务并在 GWT 中显示这些详细信息。

对于应用程序#2,我使用Spring RestTemplate 使用Restful Webservice 并通过接口返回详细信息列表。而在GWT端,有一些DataListProviderGWT-DataGrid中设置Data List。

现在的问题是,我不知道如何使用我的 DetailService 类与 GWT DataListProvider 进行交互(这会在方法中返回 List<Details>)。当我在GWT- OnModule() 方法中直接调用服务类时,在GWT Compile 期间,我面临一些UnResolved Type Error,由于该类间接调用Spring Libraries 类,因此GWT 无法编译它.

com.google.gwt.dev.jjs.InternalCompilerException: Failed to get JNode
    at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:140)
    at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:71)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap.getType(BuildTypeMap.java:730)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap.createField(BuildTypeMap.java:570)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap.access$300(BuildTypeMap.java:99)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap$BuildDeclMapVisitor.visit(BuildTypeMap.java:180)
    at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse(FieldDeclaration.java:285)
    at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1232)
    at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap.createPeersForNonTypeDecls(BuildTypeMap.java:637)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap.exec(BuildTypeMap.java:514)
    at com.google.gwt.dev.jjs.impl.BuildTypeMap.exec(BuildTypeMap.java:523)
    at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:599)
    at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:284)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
    at com.google.gwt.dev.Compiler.run(Compiler.java:232)
    at com.google.gwt.dev.Compiler.run(Compiler.java:198)
    at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
    at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
    at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
    at com.google.gwt.dev.Compiler.main(Compiler.java:177)
      [ERROR] <no source info>: public class org.springframework.web.client.RestTemplate
    extends org.springframework.http.client.support.InterceptingHttpAccessor
    implements : Unresolved type org.springframework.web.client.RestOperations

请提供您对如何在这些服务类和 GWT 之间进行交互的建议。

【问题讨论】:

  • 请为我们提供一些源代码/配置和堆栈跟踪。
  • @AndersRostgaardBystrup:在 POST 中添加了这些详细信息。

标签: spring gwt resttemplate gwt-compiler


【解决方案1】:

您不能在客户端代码中使用 Spring。

可用的选项有:

presenter 中的回调,其中异步接口对服务控制器(在 App#2 的服务器端)进行 GWT-RPC 调用。您可以有一个 @RequestMapping 注释方法,其内部使用 RestTemplate。

让演示者使用 RequestFactory 并为您的有效负载使用 GWT 覆盖功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多