如何创建一个可以接受三个字符串数组的jersey restful方法

时间:2017-02-24 12:25:57

标签: javascript java rest jersey

我一直在尝试将字符串数组发送到一个宁静的服务而没有任何运气。我写了这个

@GET   
@Produces(MediaType.TEXT_PLAIN)
public String getBackgroundImages(@QueryParam("missions") String[] missions, 
                                  @QueryParam("objects")String[] objects, 
                                  @QueryParam("dates")String[] dates) {

 ........       


  return generateTxt();  

}

在javascript方面我有这个

   var missions = new Array("One", "Two");
          var objects = new Array("objOne" ,"objTwo");
          var dates = new Array("1967-11-07","1977-12-17");                        
         $.ajax({
            url: "myurl/rest/UploadBackgroundFile/",
            data: {'missions':missions,'objects':objects,'dates':dates},

            success: function (data) {                    
                 arr = JSON.parse(data);
                $('.container-fluid').css('background-image','url('+arr[0].img+')');    
            }
        });       

我的问题是这不起作用,我得到了这个例外

  

org.apache.catalina.core.ApplicationContext.log StandardWrapper.Throwable   org.glassfish.jersey.server.model.ModelValidationException:应用程序初始化期间应用程序资源模型的验证失败。   [[致命]没有找到类型参数的注入源   public java.lang.String UploadBackgroundFile.getBackgroundImages(java.lang.String [],java.lang.String [],java.lang.String [])

如果我将参数更改为普通字符串并从javascript端发送字符串,则方法将起作用。

所以问题是如何从jquery ajax发送和接收字符串数组到jersey restful方法。

问候,

ES

1 个答案:

答案 0 :(得分:2)

服务器端,您必须将字符串数组更改为List<String>才能使其正常工作。

客户端,您可以看到this 来帮助您发送数据。我知道它的标题是写PHP,但它解释得很好。