下面是我的cxf Rest WS:
@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而不是每个字段,但是当我用一个HttpServletRequest替换"String agentId“时,它是空的,我没有字段。我尝试将"@FormParam(value="agentId")“替换为"@Context”,但我不确定使用哪种方法更好。有什么想法吗?
发布于 2015-01-28 17:18:26
您可以在类中注入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();发布于 2015-02-03 15:43:42
您可以使用@Context( qualified name: javax.ws.rs.core.Context)直接获取HttpServletRequest,因此您的代码应该如下所示。
@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);https://stackoverflow.com/questions/28187741
复制相似问题