CDI injectionpoint?@httpparam??
質問
?????doc
?????4.11?? InjectionPoint??????
HTTP????????????????????????????
CDI????????????????NetBeans????????????????????????????????????????
org.jboss.weld.exceptions.DeploymentException:??????001408?????????????????????:java.lang.String?com.test.HttpParamProducer.getParamValue(javax.enterprise.inject.spi.InjectionPoint?javax.servlet.ServletRequest)??????1????:[@ javax.enterprise.inject.Default()]
????????????????????
public class HttpParamProducer {
@HttpParam("")
@Produces
String getParamValue(
InjectionPoint ip, ServletRequest request) {
return request.getParameter(ip.getAnnotated().getAnnotation(HttpParam.class).value());
}
}
解決 2
2????????????
???????????? ???????????HttpServletRequest??????????????????CDI?????????????
???
??????????????@WebListener
public class HttpServletRequestProducer implements ServletRequestListener {
private final static ThreadLocal<HttpServletRequest> holder = new ThreadLocal<HttpServletRequest>();
@Override
public void requestDestroyed(ServletRequestEvent sre) {
holder.remove();
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
holder.set((HttpServletRequest)sre.getServletRequest());
}
@Produces @RequestScoped HttpServletRequest get() {
return holder.get();
}
}
?@Inject?HttpServletRequest?????????????
?????????
他のヒント
????????????????????????????(??????)???????????????????????API??ServletRequest???????
所属していません StackOverflow