0

当我尝试在 cloudbees SDK 的 tomcat 服务器中运行 ZK 应用程序时,我遇到了从 DHtmlLayoutServlet 到 Servlet 的类转换异常。

当我在本地 tomcat 服务器中启动我的应用程序时,这工作正常。

来自 cloubseed sdk 的异常跟踪...

信息:启动 Servlet 引擎:Apache Tomcat/6.0.35 2013 年 1 月 15 日上午 8:13:54 org.apache.catalina.core.ApplicationContext 日志信息:将 servlet zkLoader 标记为不可用 2013 年 1 月 15 日上午 8:13:54 org .apache.catalina.core.StandardContext loadOnStartup 严重:Servlet 抛出 load() 异常 java.lang.ClassCastException:org.zkoss.zk.ui.http.DHtmlLayoutServlet 无法在 org.apache.catalina 中转换为 javax.servlet.Servlet。 core.StandardWrapper.loadServlet(StandardWrapper.java:1149) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)在 org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 在 org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 在 org.apache.catalina.core.StandardEngine .start(StandardEngine.java:463) 在 org.apache.catalina.startup.Embedded.start(Embedded.java:825) 在 com.staxnet.appserver.TomcatServerBase.startContainer(TomcatServerBase.java:120) 在 com.staxnet。 appserver.TomcatServerBase.start(TomcatServerBase.java:190) 在 com.staxnet.appserver.StaxSdkAppServer.launchServer(StaxSdkAppServer.java:69) 在 com.staxnet.mojo.tomcat.RunMojo.runWar(RunMojo.java:217) 在 com .staxnet.mojo.tomcat.RunMojo.execute(RunMojo.java:171) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven 的 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) .lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在 org.apache.maven.DefaultMaven。在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 的 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 的 org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 执行(DefaultMaven.java:156) .maven.cli.MavenCli.main(MavenCli.java:141) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在 org.codehaus。 plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:第409章)

我用谷歌搜索了一段时间并最终进入了这个链接,但这对我的问题没有帮助。

4

1 回答 1

1

这里也有类似的异常,例如 启动 tomcat 加载 servlet 时的 java.lang.ClassCastExceptionJBoss & Java 6 中 Annotated WebService 中的 ClassCastException 等。你可以谷歌搜索关键字standardwrapper servlet ClassCastException。我不确定,但这个答案对类路径中同一库的多个副本或版本提出了建议。你的情况可能zk.jar就是这样。对您提供的链接的评论似乎是相同的:

我试图将 zk 集成到另一个框架中,并且我得到了由不同加载器加载的多个 servlet 库,这就是错误的原因。

因此,您可以尝试zk.jar从类路径中查找和删除额外版本,包括您的 app lib 文件夹或 tomcat 全局 lib 文件夹。

于 2013-01-15T07:25:16.467 回答