Это мой код:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, false);//suggested by fge
Socket s = new Socket("127.0.0.1",port);
mapper.writeValue(s.getOutputStream(),anObjectRequest);//this works
Aresponse res = mapper.readValue(s.getInputStream(),AresponseClass.class);
Я понимаю, что сокет закрыт.
Но, если посмотреть на wirehark, я вижу, что сервер правильно получает запрос и правильно отправляет ответ тоже! В чем проблема?
http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#getOutputStream()
Закрытие возвращаемого OutputStream закроет связанный сокет
Какой тип картограф? Этот метод:
mapper.writeValue(s.getOutputStream(),anObjectRequest);//this works
вызвать закрыть объект OutputStream
?
Предполагая, что вы используете ObjectMapper
:
Примечание: метод не закрывает базовый поток явно здесь; однако JsonFactory, использующий этот mapper, может выбрать закрытие потока в зависимости от его настроек (по умолчанию он попытается закрыть его, когда JsonGenerator, который мы построим, закрыт).
Вы должны будете обратить внимание на то, какой JsonFactory
вы используете.