我有一个使用 Tomcat 服务器启动 CC war 文件的特定需求。我创建了两个 war 文件 - 一个使用“warTomcatDbcp”命令,另一个使用“warTomcatJndi”命令。但是,当我尝试启动 Tomcat 服务器时,我在这两个战争中都遇到了错误。为了确保这不是 tomcat 的问题,我部署了一个从小型 Java 项目创建的 war 文件,并且没有出现任何问题。
“gwb warTomcatDbcp”或“gwb warTomcatJndi”是在 Guidewire 中构建 war 文件的正确方法吗?此外,正确构建 war 文件是否还需要任何其他步骤或配置?
请注意 - 我正在尝试使用 OOTB 版本进行此操作,并且没有进行任何代码更改,而且我也能够从 studio jetty 服务器启动服务器。
这是当我尝试从 tomcat 启动服务器时收到的 cc 日志。
31-Oct-2023 09:02:57.488 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [com.guidewire.pl.system.websocket.WebSocketServletContextListener]
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2352)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:800)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1317)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:491)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:473)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4349)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4860)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:975)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1952)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:776)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1659)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
... 51 more
Run Code Online (Sandbox Code Playgroud)
对于此事的任何帮助或指导将不胜感激。
谢谢!
您能否澄清一下这是否是 PC 的 GWCP 云版本?还是自我管理?如果您可以粘贴project-version.properties 的内容,这将有助于缩小范围。
从我在平台支持矩阵(可通过登录在community.guidewire.com上获得)中可以看到,不支持在本地Tomcat实例上运行云版本 - 可用的Jetty服务器被认为足以满足大多数情况。在 GWCP 环境中,最新版本在 Apache Tomcat 9.0.78 和更高版本的 9.0.x 上运行。您可以检查您的版本(或与您的版本相关的版本)以确保它不是兼容性问题。
小智 6
warTomcatDbcp 和 warTomcatJndi 的区别在于,前者将数据库驱动程序打包到 war 文件中,而后者则没有。造成这种区别的原因是,后一个 ant 任务假设您将使用由 servlet 容器(在您的示例中为 Tomcat)管理的数据库连接的 JNDI 查找,而不是管理其自己的连接池。如果您使用 JNDI,则不需要数据库驱动程序。
不过,这些都与您的问题无关。许多 servlet 包在 Tomcat 10 及更高版本中被重命名,Guidewire 产品不支持这些。如果您降级到 Tomcat 9,您应该已准备就绪。
归档时间: |
|
查看次数: |
138 次 |
最近记录: |