Поэтому я использую старую версию Mule (3.3.1) и Джерси (1,6) -очень новый обоим и не в состоянии upgrade- и имеет аналогичную проблему с "null in FormParam with “charset=UTF-8” in Jersey 2.0" в том, что данные формы HTML @POST
ed всегда null
, но с использованием curl (для принудительной кодировки без UTF-8) не имеет значения, мои @FormParam
s по-прежнему null
.Как подкрасться мое тело сообщения мимо Джерси, возможно, с помощью Mule
<flow name="repo" doc:name="Repository application">
<inbound-endpoint ref="RepositoryInternalEndpoint">
<not-filter>
<wildcard-filter pattern="/favicon.ico"/>
</not-filter>
</inbound-endpoint>
<!-- All seems fine at this point -->
<!--<custom-interceptor class="TestInterceptor"/>-->
<!-- Inside the RepositoryService class, @FormParam args are null -->
<jersey:resources doc:name="Repository Service Component">
<component>
<spring-object bean="repositoryService"/>
</component>
</jersey:resources>
</flow>
Кажется, что Джерси просто ест мое тело запроса. Учитывая, что если я вставляю TestInterceptor
(в комментариях выше), который просто выводит свойства сообщения, включая тело сообщения, и @FromParam
s, все ожидаемые данные есть. Есть ли способ остановить Джерси это сделать или получить данные заранее?
Ожидаемые @FormParam
аргументы все String
как таковой ...
@POST
@Path("/my/url")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
public Response myMethod(@FormParam("o_serviceId") String serviceId){}
curl команда была использована
curl -X POST -H "content-type: application/x-www-form-urlencoded" -d "o_serviceId=12345y" localhost:8889/my/url
Что такое ожидаемый 'Content-Type' метода, аннотированный с помощью' @ FormParam'? Какую команду 'curl' вы использовали? –
Оба добавили к вопросу. –
Спасибо. Все выглядит прекрасно, поэтому кажется, что это ошибка. Можете ли вы потенциально развернуть приложение в более позднем Mule, чтобы проверить, исправлена ли проблема? –