因此,我们使用 Grizzly/Jersey 构建了一个 webapp。您运行生成的 jar 文件,然后它提供 REST 端点,允许从数据库中提取数据并创建新条目等。出于某种原因,我们现在想要迁移到 Web 服务器,例如 Payara 或 Glassfish 之类的。我很难让它工作。它现在编译为战争,并被部署到 Payara。在Payara 4 上部署 jersey web 服务不公开方法之后,我得到它至少承认有端点。但是,它们依赖于注入的 EntityManager,我们在 ResourceConfig 子类中定义/绑定(连同它的依赖项),它没有被加载,所以它崩溃了。有人知道如何加载 ResourceConfig 吗?还,
问问题
230 次
1 回答
0
如果您要从链接的帖子中获得答案
@javax.ws.rs.ApplicationPath("API_PATH_FOR_JAXRS")
public class SampleApplication extends Application {
}
这将解释您所看到的行为。Application
带有注释的空@ApplicationPath
将导致 Jersey 引导程序扫描类路径以查找@Path
和@Provider
类,并注册这些类。
但是您正在使用 aResourceConfig
自己完成所有注册。它只是碰巧ResourceConfig
实际上是Application
. 因此,与其创建一个新的Application
子类来放置@ApplicationPath
注释,不如把它放在你的ResourceConfig
子类上。
如果您之前没有进行子类ResourceConfig
化,例如
ResourceConfig config = new ResourceConfig()
.packages("...")
.register(...);
然后现在就对其进行子类化
@ApplicationPath("...")
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("...");
register(...);
}
}
于 2017-01-22T04:52:42.517 回答