В настоящее время мы выполняем переход с Oracle Web Logi c на Tomcat 9.
Мы столкнулись с проблемой на Tomcat, когда клиенты отправляют XML в веб-службу с Content-Type
из application/x-www-form-urlencoded
. Из фильтра дампа запросов Tomcat мы видим, что он обрабатывает XML как несколько параметров. Кроме того, XML содержит специальные символы, такие как lt;
, gt;
, et c.
Однако в Web Logi c, когда тот же XML отправляется с тем же типом контента, он может успешно обработать запрос. Код был изменен только для включения дополнительных операторов отладки, которые помогут устранить эту проблему.
Существует ли параметр конфигурации Tomcat, внешняя библиотека или фильтр Tomcat, позволяющий поместить этот XML в строку запроса в тело или каким-либо образом получить к нему доступ?
Буду признателен за любую помощь в этом вопросе.
Из запроса фильтра демпфера запроса (конфиденциальная информация удалена; только фрагмент кода - XML правильно сформирован):
https-openssl-nio-443-exec-5 contentLength=1234
https-openssl-nio-443-exec-5 contentType=application/x-www-form-urlencoded
https-openssl-nio-443-exec-5 contextPath=
https-openssl-nio-443-exec-5 header=accept-encoding=gzip,deflate
https-openssl-nio-443-exec-5 header=content-type=application/x-www-form-urlencoded
https-openssl-nio-443-exec-5 header=authorization=Basic abc
https-openssl-nio-443-exec-5 header=content-length=1404
https-openssl-nio-443-exec-5 header=host=host
https-openssl-nio-443-exec-5 header=connection=Keep-Alive
https-openssl-nio-443-exec-5 header=user-agent=Apache-HttpClient/4.1.1 (java 1.5)
https-openssl-nio-443-exec-5 locale=en_US
https-openssl-nio-443-exec-5 method=POST
https-openssl-nio-443-exec-5 parameter=requesterId=1234
https-openssl-nio-443-exec-5 parameter=<?xml version="1.0"?>
<RootElement>
<Element1>2019-12-13</PrivateDate1>
<Element2>2019-12-18</PrivateDate2>
https-openssl-nio-443-exec-5 parameter=lt;a href=http://www.google.com/
https-openssl-nio-443-exec-5 parameter=gt;
Link
https-openssl-nio-443-exec-5 parameter=lt;/a=,
https-openssl-nio-443-exec-5 parameter=gt; =
https-openssl-nio-443-exec-5 parameter=gt;Notes=