StreamCorruptedException: неверный заголовок потока: - PullRequest
0 голосов
/ 03 апреля 2012

Я получаю исключение StreamCorruptedException и понятия не имею, почему или как это происходит.Любая помощь будет потрясающей!Вот клиент:

ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
Map params = new HashMap<String, Object>();     
Order[] orders = odao.getOpenOrdersByTenant(tenantID);

JSONObject jObj = new JSONObject();
jObj.put("params", params);
jObj.put("sourcePath", System.getProperty("user.dir") + "/reports/OpenOrders.jasper");
jObj.put("method", "html");
jObj.put("datasource", orders);

ClientResponse response =       service.path("rest").path("jasper").path("getJasperReport").type(MediaType.APPLICATION_JSON).post(ClientResponse.class,jObj);

Сервер:

@POST
@Path("/getJasperReport")
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_JSON)
public void getJasperReport(@Context HttpServletRequest servletRequest, @Context HttpServletResponse servletResponse, @Context UriInfo uriInfo )
                throws ServletException, IOException{

ObjectInputStream objInputStream = new ObjectInputStream(servletRequest.getInputStream());
JSONObject jobj =  (JSONObject) objInputStream.readObject();         

От второй до последней строки выдается исключение java.io.StreamCorruptedException: неверный заголовок потока: 7B227061

1 Ответ

1 голос
/ 03 апреля 2012

ObjectInputStream предназначен для чтения сериализованных данных Java, а не данных в формате JSON.

Возможно, вы хотите что-то вроде new JSONObject(new JSONTokener(servletRequest.getReader())).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...