当前位置: 首页 > 知识库问答 >
问题:

Google Appengine with Jersey 2.1x在开发服务器中运行良好,但在Appengine服务器中无法正常运行

阙繁
2023-03-14

我一直在将泽西v2.19与Google AppEngine v1.9.22一起使用,它在本地devserver中运行良好,没有任何问题,但当我尝试将应用程序部署到appEngine时。我得到了多个异常

使用的框架:

AppEngineJava1.9.22

泽西2.19

具体化5.1.5

Guice 3. x

格拉德勒

以下是我在日志中得到的例外:

org.glassfish.jersey.internal.Errors日志错误:检测到以下警告:警告:检测到未知的HK2故障:

多重异常堆栈1/4

java.安全性。AccessControlException:在java.lang.SecurityManager.checkPermission(SecurityManager.java:549)的com.google.appengine.runtime.Request.process-84bc59f0ba240851(Request.java位于org.jvnet.hk2.internal.ProxyUtilities$1.run(ProxyUilities.java:95)的java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1606org.jvnet.hk2.internal.ProxyUtilities.secureCreate(ProxyUilities.java:90),网址为org.jvnet.hk2.internal.ProdyUtilities.generateProxy(ProdyUilities.java:206),网址:org.jvnet.hk2.International.Utilitives.createService(Utilitics.java:2038),网址是org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImple.java:105),网址org.jvnet.hk2.internal.SystemDescriptor.create上的org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:214)上的org.glassfish.jersey internal.inject.ContextInjectionResolver.resolver(ContextInjection Resolver.java:126)(SystemDescriptor.java:470)位于org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:82)位于org.jvnet.hkh2.internal.IngletonContext$1.compute(Singleton Context.jafa:70)位于org.glassfish.hk2.utilities.cache.cache$OriginThreadAwareFuture$1.call(cache.java:197)位于java.util.concurrent.FutureTask.run(FutureAttask.java:260)org.glassfish.hk2.utilities.cache.cache$OriginThreadAwareFuture.run(cache.java:154),位于org.jvnet.hk2.uptilities.cache.cache.compute(cache.java:199),位于.org.jvnet:hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:121),位于org.glassfish.jersey.internal.inject.Providers.getAllRankedProviders(Providers.java:247)上的org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImple.java:87),org.glaslfish.jeersey.server.ApplicationHandler.getProcessingProvidersorg.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:183),地址为org.glaslfish.jeersey.service.ApplicationHandler$3.callorg.glassfish.jersey.internal.Errors.processWithException(Errors.java:255),位于org.glaslfish.jerrey.server.ApplicationHandler.(ApplicationHandler.java:346),位于org.glassfish.jersery.servlet.WebComponent.(WebComponent.java:339),位于org.mortbay.jetty.servlet.servlet.Context.startContext(Context.java:140)的org.motbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)的org.mortbay.jetty.ServletHandler.initialize(ServletHandler.java:662)位于com.google.tracing.TraceContext$TraceContext$TraceContextRunnable$1.run(TraceContin.java:444)的org.motrbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)位于com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInInContext(CurrentContext.java:230),位于com.gougle.tracingjava.lang.Thread.run(Thread.java:745)

多例外堆栈 2(共 4 个)

java.lang.非法描述例外: 在尝试为 javax.servlet.创建代理时,在范围组织中请求,在组织.jvnet.hk2.internal.proxyUtility..java generate在组织.jvnet.hk2.internal.ProxyUtility.generate上创建代理时发生了错误。.jvnet.hk2.internal.实用程序.createService(实用程序.java:2038) 在 org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:105)组织.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87) at org.glassfish.jersey.internal.inject.inject.contextInectionResolver.resolve(上下文注射解决者.java:126)

…已修剪

多异常堆栈3/4

非法描述异常:在尝试解析 com...app.webapp.过滤器.WebApi身份验证的依赖项时发现错误

多异型堆栈 4(共 4 个)

java.lang.非法状态异常: 无法执行操作: 在 com...webapp.filters.WebApiAuthFilter 上解析.app

我已经搜索了可能的修复程序,但找不到任何与我的问题相关的东西,我没有使用JDO或JPA,所以ASM jar不兼容不是原因。

你知道如何解决这个问题吗?

更新:

我试图找出这个异常的原因,我有一个过滤器,我在其中注入了HttpServletRequest,因此引发了异常,但不知道为什么。

@Provider
@WebApiAuth
public class AuthFilter implements ContainerRequestFilter {

 // problem is because of injecting this 
  @Context
  protected HttpServletRequest servletRequest;
}

共有1个答案

卫君博
2023-03-14

这对您来说可能太晚了,但为了帮助他人,我在尝试访问request.getRemoteAddr()时也遇到了同样的问题。注入HttpServletRequest在运行时引发了此错误,并且没有任何环境变量、请求属性或标头包含远程地址。

https://stackoverflow.com/a/23590606/3037408

提供一个工作解决方案,将“remote_addr”头添加到jersey/jaxrs头中。如果您需要从HttpServletRequest访问remote_addr以外的其他内容,那么您可能可以将相关数据插入header或其他一些属性,以便以后访问。

 类似资料:
  • 尽管CAS服务器在Tomcat下工作得很好,但我有一些问题要使它在WebLogic12c下工作。在Weblogic上部署之前,我遵循以下指南:https://github.com/gentics/gentics-sso-cas/wiki/oracle-weblogic-configuration在webcontent/web-inf/with content中添加文件Weblogic.xml:

  • 问题内容: 我有Jenkins作业的阶段,可以使用docker测试和部署我的nodejs,我在端口3000上运行docker,但是当我尝试浏览我的docker时,它不起作用,并且我的docker没有运行 这是我的Jenkinsfile Dockerfile: 我在ubuntu服务器上通过docker- compose运行Jenkins,是我丢失还是出错了?因为我的目标是使用Jenkins来测试我的

  • 我开发了一个React应用程序,它使用Laravel作为API。我已经通过Passport添加了登录,并且已经相当成功地使用了个人访问客户端方法。我可以添加新用户和令牌,我可以撤销令牌,我可以重置密码...所有的API调用(除了登录和注册)都由API中间件保护,它可以工作。如果我从任何这些调用的头中删除,则由于->middleware('auth:api')包装器,它将返回401未经验证。 一切都

  • 我碰壁了,没有帮助我过不去。 我正在尝试使用Java Servlet为我的Android应用程序进行简单的登录和注册,问题是当我在Tomcat/Eclipse上本地运行它时,一切都正常,但当我在Heroku free服务器上部署WAR文件时,数据库部分似乎根本不起作用。 我怀疑这实际上是驱动程序的问题,但我无法获取日志,因为我通过我的Android应用程序连接到它。 我在freesqldataba

  • ` ` 在TOmCAT服务器中。我无法运行这个项目。? ` 严重:web应用程序[/SpringMvc4]中的Servlet[spring]抛出了load()异常Java。伊奥。FileNotFoundException:无法打开组织上的ServletContext资源[/WEB-INF/spring servlet.xml]。springframework。网状物上下文支持ServletCont

  • 问题内容: 我在CI和CD上创建了Jenkinsfile,Dockerfile,Dockerfile.test到CI和CD,在GitHub上构建了我的服务器API,我在Jenkins上构建了该构建,并且构建成功,并且我的docker在Jenkinsfile阶段也在容器上运行,我创建了用于测试和部署在服务器API上,并使用docker作为容器 我也使用docker-compose在docker上运行