2015-01-28 2 views
0

Вот мой CXF Rest WS:Rest WS @post потребляет HttpServletRequest не работает

@POST 
@OPTIONS 
@Path("/push") 
@Produces({ MediaType.APPLICATION_JSON }) 
@Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) 
public Response push(@FormParam(value="agentId") String agentId); 

Я использую его с формой:

<form id="form1" METHOD=POST ACTION="http://localhost:8080/uwv_interfacing-0.2.0-SNAPSHOT/api/rest/callHistory/push?AppKey=536f47d5-184f-3041-850c-bcad9f3afa49"> 
    <input type="hidden" name="agentId" value="ofize"> 
    <button type="submit" name="modifier" value="1">Submit</button> 
</form> 

Я хотел бы получить HttpServletRequest вместо каждый поля, но когда я заменяю «String agentId» на HttpServletRequest, он пуст, у меня нет файлов. Я попытался заменить «@FormParam (value =« agentId ») на« @Context », но я не уверен в хорошем использовании. Любая идея?

+0

Какая техника вы используете, трикотаж/cxf и т. Д., Чтобы разоблачить конечную точку отдыха? – SMA

+0

Я использую cxf, извините – Lempkin

+0

Не уверен, если бы мог обратиться к этому вопросу, чтобы получить некоторые данные? (использует данные с несколькими частями) http://stackoverflow.com/questions/28062986/rest-service-that-can-consume-both-json-and-multipart-form/28063353#28063353 –

ответ

0

Вы можете придать MessageContext в своем классе, как

import javax.ws.rs.core.Context; 
import org.apache.cxf.jaxrs.ext.MessageContext; 
... 
@Context 
private MessageContext messageContext; 
... 
// in your restful method, you could do something like 
HttpServletRequest httpServletRequest = messageContext.getHttpServletRequest(); 
+0

Я получаю exaccty то же самое без параметров – Lempkin

+0

не понял? Что вы имеете в виду ? – SMA

0

Вы можете непосредственно получить HttpServletRequest с помощью @Context(qualified name: javax.ws.rs.core.Context) Поэтому ваш код shouls выглядеть как-то, как показано ниже.

@POST 
@OPTIONS 
@Path("/push") 
@Produces({ MediaType.APPLICATION_JSON }) 
@Consumes({ MediaType.APPLICATION_FORM_URLENCODED }) 
public Response push(@FormParam(value="agentId") String agentId, final @Context HttpServletRequest request);