2012-09-28 23 views
2

我正在GWT(Google Web Toolkit)上开发项目,我需要调用Web服务(JAX-WS)。但问题是我不知道如何从GWT调用Web服务,所以我需要知道如何在GWT客户端访问该JAX-WS?我正在用eclips开发我的项目,我的服务在glassfish服务器上运行。如何在GWT客户端界面中调用JAX-WS?

请提供一些基本的指导来解决这个问题。

+2

一样其他应用程序。将JAX-WS库放入您的类路径中,从WSDL生成客户端,初始化客户端和调用方法。 –

回答

2

调用外部非gwt ws的正常方法是通过RequestBuilder类,虽然这并不困难,但当您需要在应用程序中准备几个调用时,这可能很乏味。

我建议你看看gwtquery又名gquery,它有一个Ajax类,允许以非常简单的方式调用ws。看看到documentation

这可能是一个JAX-WS服务JSON响应

@BindingType(JSONBindingID.JSON_BINDING) 
    public class MyService { 
    public Book get(@WebParam(name="id") int id) { 
     Book b = new Book(); 
     b.id = id; 
     return b; 
    } 

    public static final class Book { 
     public int id = 1; 
     public String title = "Java"; 
    } 
    } 

的例子,这可能是在客户端,客户端调用

import static com.google.gwt.query.client.GQuery.*; 
[...] 

    post(//GQuery post static method (you have get, ajax, getJSONP, etc) 
     "http://url_to_the_jax-ws.server/MyService", 
     $$("{get:{id:5}}"),      // GQuery json parses the parameters 
     new Function(){       // Callback 
     public void f() { 
      Properties p = getDataProperties(); // JSON response 
      alert("success " + p.get("title")); 
     } 
     } 
);