Перехватчик CXF видит только "" для больших сообщений в PRE_STREAM - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь сделать преобразования сообщений на основе похожих примеров отсюда, и у меня есть что-то на 3.0.4 вроде

public MessageXMLDecodeOutInterceptor() {
   super(Phase.PRE_STREAM);
}

public void handleMessage(Message message) {
   try (OutputStream outStream = message.getContent(OutputStream.class); CachedOutputStream cachedStream = new CachedOutputStream();) {
      message.setContent(OutputStream.class, cachedStream);
      message.put(Message.ENCODING, charset.name());
      message.getInterceptorChain().doIntercept(message);
      cachedStream.flush();
      String origMessage = IOUtils.toString(cachedStream.getInputStream(), charset);
      String newMessage = // modify the message
      IOUtils.write(header, outStream, charset);
      IOUtils.write(newMessage, outStream, charset);
   } catch (IOException e) {
      logger.errorf("Could not transform message", e);
   }
}

, и оно работает, пока сообщение не станет большим (~ 200k?), А затем внезапноorigMessage является "".Большие сообщения как-то кэшируются / обрабатываются по-разному?

Заранее спасибо, Ник

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