0

我尝试使用 jQuery 来使用 JSON JAX-WS Web 服务,将JAX-WS RI 用于 JSON

我尝试按照他们的指示进行操作,但无法从 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>

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

如果有任何使用 jQuery over JSON 来使用 JAX-WS 服务的解决方案,我们也将不胜感激。

预先感谢。

4

1 回答 1

0

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

第一个是在客户端的 javascript 中使用 XMLHttpRequest(这与 jQuery 并不真正相关),并像我在问题中提到的那样对 JSON 服务器进行“POST”调用。

第2个如下。

在服务器端,我使用库JAX-WS JSON Web 服务创建了一个 JSON JAX-WS Web 服务

@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";
    }

}

在客户端,只需使用 jQuery 库进行这样的 json 调用。

$(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" ) ; 
       }
    })
}
于 2012-05-07T01:44:16.987 回答