gpt4 book ai didi

java - Netflix Karyon 不使用 Governator 创建资源类

转载 作者:行者123 更新时间:2023-12-01 14:19:23 30 4
gpt4 key购买 nike

我正在玩 Karyon,遇到了一个问题,Jersey 而不是 Governator 正在尝试实例化我的其余资源类。我正在尝试做一个比 hello world 示例更强大的示例,我可以在其中指定我自己的 Guice 模块进行注入(inject)。

如果我使用 @InjectParam 注释 Jersey 会找到它并说我缺少构造函数的映射。如果我只使用 @Inject 注释,那么 Jersey(而不是 Guice)会提示我无法注入(inject)构造函数。

我找到了这个帖子,https://java.net/projects/jersey/lists/users/archive/2011-01/message/102 ,这准确地描述了我遇到的问题,但使用了 Jersey 的另一个方面。我不确定 Karyon 中的等效问题类别是什么。还有其他人在创建自己的模块时遇到过这个问题吗?

休息资源开始

@Path("/")
public class CrudRoot {

private final CrudService service;

@Inject
public CrudRoot(CrudService service) {
super();
this.service = service;

我的模块

protected void configure() {
bind(CrudService.class).to(InMemCrudService.class);
}

web.xml

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ">

<servlet>
<servlet-name>KaryonCrud</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.example.karyon.server</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>KaryonCrud</servlet-name>
<url-pattern>/rest/v1/*</url-pattern>
</servlet-mapping>

<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>com.example.karyon.server.CrudServletContextListener</listener-class>
</listener>
</web-app>

最佳答案

这里有几点:

  1. 您必须指定 com.netflix.karyon.server.guice.KaryonGuiceContextListener 作为 servlet 上下文监听器。我不确定您在示例中指定的监听器是否扩展了此类。
  2. 为了正确使用 Jersey ,您必须使用 JerseyServletModule 。 Karyon 的示例目前尚未证明这一点,但它应该如此。

关于java - Netflix Karyon 不使用 Governator 创建资源类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754007/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com