Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Jersey设置AbstractBinder_Java_Tomcat_Servlets_Jersey_Hk2 - Fatal编程技术网

Java 如何在Jersey设置AbstractBinder

Java 如何在Jersey设置AbstractBinder,java,tomcat,servlets,jersey,hk2,Java,Tomcat,Servlets,Jersey,Hk2,我试图在Jersey中,在servlet/tomcat上下文中实现我的HK2绑定 我知道,在扩展org.glassfish.jersey.servlet.ServletContainer的servlet中: @Override public void init(ServletConfig config) throws ServletException { super.init(config); // BinderInjection extends org.glassf

我试图在Jersey中,在servlet/tomcat上下文中实现我的HK2绑定

我知道,在扩展org.glassfish.jersey.servlet.ServletContainer的servlet中:

  @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,如果我生成一个抽象外观,它将

  @PersistenceContext(unitName = "myunit")
  private EntityManager em;
。。。以及:

  @Override
  protected EntityManager getEntityManager()
  {
    return em;
  }
但是,当我调用该服务时,em为null。所以我想是@PersistenceContext不起作用

如果我使用的解决方案都很有魅力,但我不喜欢使用静态变量private static entitymanager factory emf;对于实体管理器


谢谢。

下面是我将Spring注入的jersey资源绑定到Jetty Web服务器的示例。ResourceConfig实用程序由Jersey提供。希望这个例子有帮助。 p、 restService是一种Spring注入的依赖项

    ResourceConfig config = new ResourceConfig(CustomRestService.class);
                config.register(new AbstractBinder() {

                    @Override
                    protected void configure() {
                        bind(restService).to(CustomRestService.class);
                    }
                });

                restService.start();
                ServletHolder apiServlet = new ServletHolder(new ServletContainer(config));
                ServletHolder apiServlet = new ServletHolder(new HttpServletDispatcher());
                servletContainer.addServlet(apiServlet, "/api/v1*//*");

如果您可以使用Jersey 2.0,那么HK2依赖项注入将集成到框架中。请阅读此处的相关问题:。您到底想绑定什么?在
应用程序
ResourceConfig
)实例中注册您的
BinderInjection
还不够吗?请同时咨询。你好,乔斯卡森和米哈尔·加伊多斯。谢谢你的帮助和评论。请参阅我的编辑。