REST使用Jersey 2(在使用Guice的GAE Java应用程序上)在服务器上不起作用

时间:2019-01-14 17:33:54

标签: java google-app-engine google-cloud-platform jersey guice

我们正在将使用Jersey 2的REST集成到使用Guice for DI的GAE Java应用程序中。我们可以在本地Dev服务器上执行此操作。当我们将其部署到应用程序引擎时,它无法在提供的包中找到bean(Rest类),而在本地运行时可以找到bean(Rest类)。

代码看起来像这样

**** Code to add all available bean classes in the package. ****
rest("/api/*").packages("com.l3.server.mart.rest");

**** Code being used to read all beans in the package provided. ****
String resourcePath = packge.replace(".", "/");
URL resource = getClass().getClassLoader().getResource(resourcePath);

它在本地开发服务器上正确返回资源URL,但在其运行的App-Engine服务器上返回null。

请在这里提出问题?

谢谢 阿德哈尔(Aadhaar)

1 个答案:

答案 0 :(得分:1)

尝试了多种方法来调试问题之后,我发现了appengine-web.xml中的配置是罪魁祸首。

配置为

<staging>
  <enable-jar-classes>true</enable-jar-classes>
</staging>

删除此配置可解决此问题。