0

我有一个返回 JAXB 对象的 REST Web 服务。我已将 Mediatype 作为 JSON 提供给该方法。我正在使用 ajaxForm 插件向这个 WebService 发送一些数据。

问题是,尽管在 web 服务中将 JSON 作为媒体类型并在客户端 Javascript 中将其作为数据类型,但我仍然只得到 xmlDocument 作为返回的对象。

这是网络服务签名。我正在使用 Glassfish 3.1,并且所有功能都可以正确执行(在 server.log 中看到消息)。

@Path("GetJson")
public class GetJson
{
    private static  Logger   logger = Logger.getLogger("GetJson");
    @POST
    @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    public Exceldatalist getJson(@Context HttpServletRequest request)
{

这是客户端代码。形式是:

<form id="form3" action="http://comp1:8080/RestWSGS/jersey/GetJson" style="display:none"
         enctype="multipart/form-data" method="post">
         <input id ="username" name="username" type="hidden" />
         <input id ="purpose" name="purpose" type="hidden" value="new"  /> 
        <input id ="filename" name="filename" type="hidden" />
        <input id ="password" name="password" type="hidden"  value="abc"/>
        <input id ="company" name="company" type="hidden" value="Third"/>
        <input id ="ignoreSheet" name="ignoreSheet" type="hidden" />
        <input type="submit"  style="display:none" />
</form>

ajaxForm 调用是:

$('#form3').ajaxForm({
     url: 'http://comp1:8080/RestWSGS/jersey/GetJson', 
        async: false,
        type: 'POST',
        cache: false,
        dataType: 'json', 
        contentType: "multipart/form-data",
        processData: false,
        success: function(data)
         {
          myData = data;
          alert('success '+myData);
          
         }
}); 

除此之外,只需要submit()表格。

我不明白我做错了什么。我被困在这里一段时间了......请帮我解开这个问题!

4

1 回答 1

0

这就是我为解决这个问题所做的。

我从我的项目中删除了所有球衣和杰克逊罐子。

从 glassfish 安装目录/模块中删除所有 jersey 和 jackson jar。从泽西那里得到所有最新的罐子,然后把它们放在那里。

然后从 glassfish 中删除 osgi-cache 并重新启动服务器。这解决了我的问题,虽然我不能说到底发生了什么变化!!

于 2012-01-06T05:40:56.993 回答