2012-05-02 100 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