ジャージーのドキュメントはhow to inject HttpSession on resourcesの例を示しています。 "Content-Type:application/x-www-form-urlencoded"のリクエストで送信されたフォームパラメータをどのように注入する必要がありますか?私はこれらがparameters on methods, and do not seem to be annotatedとして渡されているのを見て、ここにいくつかの奇妙なことがあると信じさせてくれますか?注入されたマルチバリューマップ(アプリケーション/ x-www-form-urlencoded)を持つ注入プロバイダ
JerseyHttpServletRequestWrapperは自分のクラスの一つである私は現在、次のように実装されて働いている(ナイーブ)工場、:
import org.glassfish.hk2.api.Factory;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MultivaluedMap;
public class JerseyHttpServletRequestWrapperFactory implements Factory<JerseyHttpServletRequestWrapper> {
private final HttpServletRequest request;
private final MultivaluedMap<String, String> formParams;
@Inject
public JerseyHttpServletRequestWrapperFactory(HttpServletRequest request, MultivaluedMap<String, String> formParams) {
this.request = request;
this.formParams = formParams;
}
@Override
public JerseyHttpServletRequestWrapper provide() {
return new JerseyHttpServletRequestWrapper(request, formParams);
}
@Override
public void dispose(JerseyHttpServletRequestWrapper jerseyHttpServletRequestWrapper) {
}
}
私は、エンティティプロバイダがインスタンスに注入する必要があることを、ここで考えています実際にリクエストとともに送信されたエンティティがあるかどうかを確認できます。直接でMultivaluedMapエラーを注入しようとしている:あなたは
@POST
public Response post(MultivaluedMap<String, String> params) {}
この方法を行うと
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=MultivaluedMap<String,String>,parent=JerseyHttpServletRequestWrapperFactory,qualifiers={},position=1,optional=false,self=false,unqualified=null,2067821943)
これは、あなたがSOで尋ねるべき質問の種類ではありません。これまでに行ったことを示す必要があります。コードを教えてください。 –