2012-05-02 37 views
0

我试图使用jQuery的消耗JSON JAX-WS Web服务,使用JAX-WS RI for JSONjQuery的消耗JSON JAX-WS Web服务

我试图按照他们的指令,但不能从JavaScript客户端拨打电话到JAX-WS Web服务,尽管Web服务已成功构建。

这里是我的代码:

服务器端:

@BindingType(JSONBindingID.JSON_BINDING)  
@WebService 
public class Greeting 
{  
    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"; 
    } 

} 

客户端:

<header> 
<script src="http://localhost:8080/webservice/soap/greeting?js"> </script> 
    $(document).ready(function() { 
     $("#btnJson1").click(function() { 
      document.getElementById("jsonprompt").innerHTML="Start JSON --- "; 
      GreetingService.get(
       {id:5}, 
       function(r) { 
        document.getElementById("jsonprompt").innerHTML="Book Title: " + r.title; 
        } 
      ); 
    }); 
</header> 

的任何意见或建议,将不胜感激。

如果有任何解决方案使用JSON通过JSON使用JAX-WS服务,我们将高度赞赏。

提前致谢。

+0

Firebug上的错误日志:GreetingService未定义。 – Thinhbk

回答

0

我找到了2个解决方案来解决我的问题。

第一个在客户端的javascript中使用XMLHttpRequest(这与jQuery没什么关系),并且像我在我的问题中提到的那样向JSON服务器发出“POST”调用。

第二个如下。

在服务器端,我利用图书馆JAX-WS JSON web service

@SOAPBinding(style = SOAPBinding.Style.RPC) 
@WebService (name="SchedulerService", targetNamespace="http://my.target.namespace.vn/json/") 
public class Scheduler 
{ 
    @WebMethod 
    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"; 
    } 

} 

在客户端,只需打个电话JSON像这样使用jQuery库做一个JSON JAX-WS Web服务。

$(document).ready(function() { 
    $("#btnJson").click(function() { 
    alert("Start JSON --- "); 
    $.post("http://localhost:8080/webservice/json/scheduler", 
      '{"get":{"id":5}}', 
       function(r) { 
      alert("Book Title: " + r['return'].title); 
      }, 
      "json") ; 
     } 
    }) 
} 
+0

这看起来不对。在你的答案中,你有一个SOAPBinding,但你正在讨论使用JSON。 –

+0

我只想实现一个Jax-ws web服务,它支持jQuery的JSON调用,幸运的是这个解决方案解决了我的问题。 你有什么建议吗?这将非常感激。 – Thinhbk