Java Jersey服务器响应未能发送字节[]

Java Jersey服务器响应未能发送字节[],java,rest,jakarta-ee,jersey,socketexception,Java,Rest,Jakarta Ee,Jersey,Socketexception,我想将字节[]发送到Jersey客户端。这是我的方法 @POST @Path("/userinfo/") @Produces({ MediaType.APPLICATION_OCTET_STREAM }) public Response getResponse(String userID) { byte[] val=null; Response rezponse=null; try { val=getResponse(userID);//this retur

我想将
字节[]
发送到Jersey客户端。这是我的方法

@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;
}
try块最后一行中的system out表示
rezponse
对象不为null,返回的字节数组包含数据。然而,这会引发如下异常

 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)
...
这是我客户的要求

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();

如何解决此问题?

似乎您的客户端在实际读取服务器响应之前关闭了套接字

谢谢。。那我怎么解决这个问题呢?在客户端我应该做什么?我怎么能发送outputstream而不是byte[]。那么就没有问题了。看来错误在您的Jersey客户端中。也许你可以把代码贴出来。。。