gpt4 book ai didi

java - 无法使用谷歌应用程序引擎显示图像

转载 作者:行者123 更新时间:2023-12-01 19:08:09 26 4
gpt4 key购买 nike

编辑:这已经开始工作,我没有改变任何东西,这是我第二次遇到这个问题,我的应用程序工作了一段时间,然后突然停止工作。GAE对于Spring来说不可靠吗?还有其他人遇到过类似的 GAE 问题吗?

我无法在 jsp 页面上显示动画 gif。 gif 在本地显示,但当我将其放在应用程序引擎服务器上时,会引发错误。这是我的设置:

我已在 appengine-web.xml 中添加了图像目录:

<static-files> <include path="/images/**.*" /> </static-files>

我的项目结构:

enter image description here

I load the image using html code : `<img src="/images/ajax-loader.gif"/>`

但我收到错误:

enter image description here

管理控制台中抛出了 java.lang.NoSuchMethodError: 错误,但我不明白这怎么可能与加载 gif 图像有关?我使用的gif来自http://www.ajaxload.info/ & 指标类型为“指标”

java.lang.NoSuchMethodError: org.springframework.jndi.JndiLocatorDelegate.isDefaultJndiEnvironmentAvailable()Z
at org.springframework.web.context.support.StandardServletEnvironment.customizePropertySources(StandardServletEnvironment.java:85)
at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:101)
at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54)
at org.springframework.web.context.support.StandardServletEnvironment.<init>(StandardServletEnvironment.java:43)
at org.springframework.web.servlet.HttpServletBean.<init>(HttpServletBean.java:90)
at org.springframework.web.servlet.FrameworkServlet.<init>(FrameworkServlet.java:211)
at org.springframework.web.servlet.DispatcherServlet.<init>(DispatcherServlet.java:303)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:422)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:695)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:679)

外部库: enter image description here

最佳答案

NoSuchMethodError 几乎总是由于使用不兼容版本的库而引起。在这种情况下,您可能使用不同版本的 Spring 库。例如spring-web-3.1.0.jarspring-context-3.0.x.jar。因此,尝试将所有 Spring jar 更新到最新版本。

如果您告诉我们您使用的是哪个版本,也许我们可以为您提供更多帮助。

编辑: pom.xml 中的 Spring 依赖项

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
...
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
</dependencies>

编辑:

好吧,这个NoSuchMethodError告诉我们的是您的应用程序正在执行一个StandardServletEnvironment,它相信JndiLocatorDelegate有一个名为 isDefaultJndiEnvironmentAvailable() 的方法,但实际调用时该方法并不存在。但这个方法存在于org.springframewor.context-3.1.1.jar中,如你所见here (version 3.1.0) .

所以,问题可能有以下几个方面:

  • 类路径中有多个 JndiLocatorDelegate。如果您使用另一个库作为metrics.collector,这是可能的。 。在 Eclipse 中,您可以按 Ctrl+Shift+T 并输入 JndiLocatorDelegate,以确保在项目中只找到一个这样命名的类,并查看该类是否包含 isDefaultJndiEnvironmentAvailable() 方法。

  • 由于某种奇怪的原因,您没有执行当前的代码。尝试清理您的项目、临时文件夹和 Tomcat 工作目录。

如果这对您没有帮助,请向我们提供您的 war 中包含的所有 jar 列表。

关于java - 无法使用谷歌应用程序引擎显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340765/

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