Я пытаюсь реализовать свою привязку HK2 в Джерси в контексте сервлета/tomcat.Как установить AbstractBinder в Джерси
я, в сервлет, который простирается org.glassfish.jersey.servlet.ServletContainer:
@Override
public void init(ServletConfig config) throws ServletException
{
super.init(config);
// BinderInjection extends org.glassfish.hk2.utilities.binding.AbstractBinder
getConfiguration().register(new BinderInjection());
}
... но я получаю:
java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:270)
at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:218)
at org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:448)
at A_Servlet.init(RestServlet.java:45)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1190)
Так как я могу сделать мой собственный HK2 связывание?
Почему этот вопрос? (изменить)
Это для EntityManager и JPA в Джерси.
С Netbeans, если я генерировать AbstractFacade подстава
@PersistenceContext(unitName = "myunit")
private EntityManager em;
... и:
@Override
protected EntityManager getEntityManager()
{
return em;
}
Но, когда я называю обслуживание, эм равно нулю. Итак, я полагаю, что это @PersistenceContext, который не работает?
Если я использую решение Tutorial: Put JPA in your Web App (tomcat, EclipseLink) and provide Rest JSON output все работают как шарм, но мне не нравится использовать статическую переменную private static EntityManagerFactory emf; для менеджера объектов.
Спасибо.
Если вы можете использовать Джерси 2.0, инъекция зависимости HK2 интегрирована в структуру. Ознакомьтесь с соответствующим вопросом здесь: http://stackoverflow.com/questions/16216759/dependency-injection-with-jersey-2-0/17133081#17133081. – joscarsson
Что именно вы хотите связать? Не регистрирует ваш 'BinderInjection' в экземпляре' Application' ('ResourceConfig')? Проконсультируйтесь также с [Custom Injection and Lifecycle Management] (https://jersey.java.net/documentation/latest/ioc.html). –
Привет joscarsson и Михал Гайдос. Спасибо за вашу помощь и комментарий. См. Мое редактирование. – Istao