ジャージーを使用してフォームからデータを取得しようとしていますが、簡単に実行できますが、何かを投稿しようとするとエラーが発生します。
Caused by: java.lang.IllegalStateException: The @FormParam is utilized when the content type of the request entity is not application/x-www-form-urlencoded
at org.glassfish.jersey.server.internal.inject.FormParamValueFactoryProvider$FormParamValueFactory.ensureValidRequest(FormParamValueFactoryProvider.java:126)
at org.glassfish.jersey.server.internal.inject.FormParamValueFactoryProvider$FormParamValueFactory.getForm(FormParamValueFactoryProvider.java:111)
at org.glassfish.jersey.server.internal.inject.FormParamValueFactoryProvider$FormParamValueFactory.get(FormParamValueFactoryProvider.java:94)
at org.glassfish.jersey.server.internal.inject.AbstractHttpContextValueFactory.provide(AbstractHttpContextValueFactory.java:65)
at org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:80)
... 36 more
これがスタックトレースの関連部分だと思います。今私が使用しているコードのために:
@POST
@Path("/delete")
@Produces("application/json")
public String delete(@FormParam("id")String id){
そして、次のようなテスト html ページを使用して POST しようとしています。
<form action="<path to the server>/delete" method="post">
primary_id: <input type="text" name="primary_id" /><br />
<input type="submit" value="Submit" />
</form>
私はそれを機能させようとしてきましたが、チャンスはありません。multipart-form-data で @Consumes() アノテーションを追加しようとしましたが、実際には機能しません。誰かが私に手を貸してくれることを願っています。