简体   繁体   English

Jersey-Server响应无法发送byte []

[英]Jersey-Server response failed to send byte []

I want to send byte[] to Jersey Client. 我想将byte[]发送给Jersey客户端。 Here is my approach. 这是我的方法。

@POST
@Path("/userinfo/")
@Produces({ MediaType.APPLICATION_OCTET_STREAM })
public Response getResponse(String userID) {

    byte[] val=null;
    Response rezponse=null;
    try {
      val=getResponse(userID);//this returns a valid byte []         
        System.out.println("arry len : "+val.length);        
      rezponse=Response.ok(val).build();
      System.out.println("before response is null : "+(rezponse==null));
    } catch (Exception e) {
        e.printStackTrace();
        return Response.status(Status.INTERNAL_SERVER_ERROR).build();
    }
    return rezponse;
}

The system out in the last line of try block states the rezponse object is not null and the returning byte array is having data. 在try块的最后一行中的系统声明rezponse对象不为null并且返回的字节数组具有数据。 How ever, this throws exception as following. 但是,这会引发异常,如下所示。

 SEVERE: An I/O error has occurred while writing a response message entity to the container output stream.
org.glassfish.jersey.server.internal.process.MappableException: ClientAbortException:  java.net.SocketException: Connection reset
    at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:96)
    at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:149)
    at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1139)
    at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:574)
    at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:381)
...

Here is my Client request. 这是我的客户请求。

Client client = ClientBuilder.newClient();
WebTarget target = client.target(SERVER_URL);// String:SERVER_URL referes to the path
WebTarget getDomainPath = target.path("userinfo");
Builder getBuilder=getDomainPath.request();
Response response = getBuilder.post(Entity.entity("USER_005",MediaType.APPLICATION_OCTET_STREAM));
byte[] ins = (byte[]) response.getEntity();

How can I solve this problem? 我怎么解决这个问题?

好像客户端在实际从服务器读取响应之前关闭了套接字

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Jersey-server Maven - 无法解决项目的依赖关系 - Jersey-server Maven - Could not resolve dependencies for project 如何在不使用 tomcat 的情况下运行 jersey-server webservice 服务器 - How to run jersey-server webservice server without using tomcat Jersey 1.19.4 应用程序在 WEB-INF 中打包了所有依赖项,在 Tomcat 8.5 上为 jersey-server 抛出 FileNotFoundException - Jersey 1.19.4 application with packaged all dependencies in WEB-INF throws FileNotFoundException for jersey-server on Tomcat 8.5 Jersey:将标头添加到服务器响应中 - Jersey: adding headers to a server response 使用MongoDb的Jersey发送Json响应 - Send Json response using Jersey from MongoDb 无法使用Netty将byte []发送到Server - Not able to send byte[] to Server with Netty 上传图片并将其发送到服务器(AngularJS和Jersey) - Upload picture and send it to server(AngularJS & Jersey) 泽西服务器JSON响应引发MalformedChunkCodingException:分块的流意外结束 - Jersey server JSON response throwing MalformedChunkCodingException: Chunked stream ended unexpectedly 泽西休息服务器 - 如果值为0,则排除json响应中的整数 - Jersey rest server - Exclude integer in json response if value is 0 在队列中录制语音<byte[]>并将其发送到服务器 - record voice in a Queue<byte[]> and send it to the server
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM