因此,我们使用Grizzly/Jersey构建了一个we应用程序。运行生成的jar文件,然后它提供REST端点,允许从数据库中提取数据并创建新条目等。出于某种原因,我们现在希望迁移到we服务器,如Payara或Glassfish等。我很难让它正常工作。现在,它被编译成一场战争,并被部署到Payara。在Deploying jersey web services on Payara 4 doesn´t expose methods之后,我让它至少承认有端点。但是,它们依赖于注入的EntityManager,我们在ResourceConfig子类中定义/绑定它(以及它的依赖项),这个子类没有被加载,所以它崩溃了。有人知道怎么加载ResourceConfig吗?此外,还需要做些什么才能让它正常工作?
发布于 2017-01-22 04:52:43
如果你要从你的链接帖子中得到答案
@javax.ws.rs.ApplicationPath("API_PATH_FOR_JAXRS")
public class SampleApplication extends Application {
}
这将解释您所看到的行为。用@ApplicationPath
注释的空Application
将导致Jersey引导程序扫描类路径中的@Path
和@Provider
类,并注册这些类。
但是您正在使用ResourceConfig
自己完成所有的注册。碰巧的是,ResourceConfig
实际上是Application
的子类。因此,无需创建新的Application
子类来添加@ApplicationPath
注释,只需添加ResourceConfig
子类即可。
如果您以前没有对ResourceConfig
进行子类化,例如
ResourceConfig config = new ResourceConfig()
.packages("...")
.register(...);
那么现在就子类化它吧
@ApplicationPath("...")
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("...");
register(...);
}
}
https://stackoverflow.com/questions/41787002
复制