这是我的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而不是每个字段,但当我替换&#34; String agentId&#34;使用HttpServletRequest它是空的,我没有文件。 我试图替换&#34; @FormParam(值=&#34; agentId&#34;)&#34;用&#34; @ Context&#34;但我不确定使用的良好的anotation。 有什么想法吗?
答案 0 :(得分: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();
答案 1 :(得分:0)
您可以使用@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);