Glassfish 4.1上的JAX-RS返回Http状态代码1而不是200

Glassfish 4.1上的JAX-RS返回Http状态代码1而不是200,http,glassfish-4,Http,Glassfish 4,我使用以下方法在Glassfish 4.1上创建了一个简单的JAX-RS类: @GET @Produces("application/json") public ArrayList<VendorDTO> getVendorsJson() { VendorModel model = new VendorModel(); return model.getVendors(ds); } 如果我检查Chrome工具中的http头,我会看到状态代码是1,而不是我认为应该是200:

我使用以下方法在Glassfish 4.1上创建了一个简单的JAX-RS类:

@GET
@Produces("application/json")
public ArrayList<VendorDTO> getVendorsJson() 
{
   VendorModel model = new VendorModel();
   return model.getVendors(ds);
}
如果我检查Chrome工具中的http头,我会看到状态代码是1,而不是我认为应该是200:

Request URL:http://localhost:8080/APPOCase1/webresources/vendor
Request Method:GET
**Status Code:1 OK**
Request Headersview source           Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,es;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Host:localhost:8080
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,   like Gecko) Chrome/40.0.2214.111 Safari/537.36

这正常吗,我怎么能强迫它是200

这看起来不正常,但我认为您的设置没有问题。您可以使用另一个工具(如Firebug)来检查响应状态代码,以确保其正确性

要发送状态代码200,您还可以在代码中执行以下操作:

@GET
@Produces("application/json")
public Response getVendorsJson() 
{
   VendorModel model = new VendorModel();
   return Response.ok(model.getVendors(ds)).build();
}
如果这导致JSON的消息正文编写器出错,请尝试以下操作:

@GET
@Produces("application/json")
public Response getVendorsJson() 
{
   VendorModel model = new VendorModel();
   GenericEntity<List<VendorDTO>> result = new GenericEntity<List<VendorDTO>>(model.getVendors(ds)){ };
   return Response.ok(result).build();
}

结果是CORS的问题。我使用的服务器端代码最初是为glassfish 4.0编写的。有一次,我用Glassfish 4.1在Netbeans中建立了一个新的web项目,并添加了一个Rest服务,Netbeans为其生成一个CORS过滤器类。状态代码开始返回预期代码

@GET
@Produces("application/json")
public Response getVendorsJson() 
{
   VendorModel model = new VendorModel();
   GenericEntity<List<VendorDTO>> result = new GenericEntity<List<VendorDTO>>(model.getVendors(ds)){ };
   return Response.ok(result).build();
}