AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 24604
Accepted
Antitribu
Antitribu
Asked: 2009-06-13 00:35:27 +0800 CST2009-06-13 00:35:27 +0800 CST 2009-06-13 00:35:27 +0800 CST

OpenCMS 在 TomCat 启动时抛出 Java 异常

  • 772

设置:-

  • 在 TomCat5.5 上运行的 OpenCMS
  • 使用 DiabloJVM 在 FreeBSD 上运行的系统

OpenCMS 系统正在工作,然后在重新启动 TomCat 后停止加载。在不同主机上运行的数据库服务器 (postgres) 已重新启动并正确响应。

有什么建议让它运行吗?

当 TomCat 启动时,标准输出中出现以下错误:

org.apache.openejb.OpenEJBException: org.apache.xbean.recipe.ConstructionException: Error invoking constructor: public org.apache.openejb.tomcat.catalina.TomcatSecurityService(): Error invoking constructor: public org.apache.openejb.tomcat.catalina.TomcatSecurityService()

...

6/12/09 10:11:29 AM (I) WebappClassLoader.validateJarFile : validateJarFile(/usr/local/tomcat5.5/webapps/opencms/WEB-INF/lib/servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

`

6/12/09 9:21:08 AM (S) HostConfig.deployDirectory : Error deploying web application directory opencms
java.lang.ArrayIndexOutOfBoundsException: 26
    at org.apache.openejb.asm.ClassReader.readClass(Unknown Source)
    at org.apache.openejb.asm.ClassReader.accept(Unknown Source)
    at org.apache.openejb.asm.ClassReader.accept(Unknown Source)
    at org.apache.openejb.util.AnnotationFinder.readClassDef(AnnotationFinder.java:251)
    at org.apache.openejb.util.AnnotationFinder.find(AnnotationFinder.java:157)
    at org.apache.openejb.config.DeploymentLoader.discoverModuleType(DeploymentLoader.java:1090)
    at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:540)
    at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:234)
    at org.apache.openejb.tomcat.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:58)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
tomcat java freebsd
  • 4 4 个回答
  • 1051 Views

4 个回答

  • Voted
  1. Best Answer
    elcocolio
    2009-06-18T12:30:06+08:002009-06-18T12:30:06+08:00

    当我尝试在同一个 Tomcat 实例上部署 OpenCMS 和 OpenEJB 时,我也遇到了这个异常。似乎 OpenCMS 和 OpenEJB 互不喜欢。

    但是,我找到了一个解决方法:在 Tomcat 启动时部署 OpenCMS 后,我使用 The Manager webapp 上传并运行 OpenEJB。它对我来说很好。

    • 2
  2. Robert Munteanu
    2009-06-13T00:48:32+08:002009-06-13T00:48:32+08:00

    看起来您的应用程序文件已损坏:

    6/12/09 9:21:08 AM (S) HostConfig.deployDirectory : Error deploying web application directory opencms 
    java.lang.ArrayIndexOutOfBoundsException: 26 at
    org.apache.openejb.asm.ClassReader.readClass(Unknown Source) at
    org.apache.openejb.asm.ClassReader.accept(Unknown Source) at 
    org.apache.openejb.asm.ClassReader.accept(Unknown Source) at 
    org.apache.openejb.util.AnnotationFinder.readClassDef(AnnotationFinder.java:251)
    

    应用服务器可能保留了旧的工作/临时目录。尝试在它停止并重新部署时删除。

    • 1
  3. Antitribu
    2009-06-13T03:15:57+08:002009-06-13T03:15:57+08:00

    此错误似乎是由另一个有故障的应用程序引起的。可能在服务器已经启动之后加载,所以直到重置 OpenCMS 才受到影响。可能的罪魁祸首是openjb。

    通过删除所有 Web 应用程序并一一替换它们,直到所有基本服务器都上线,解决了这个问题。

    遗憾的是,我目前无法进行更多测试以找出确切的错误。

    • 1
  4. Dave Cheney
    2009-06-13T03:36:59+08:002009-06-13T03:36:59+08:00
    Offending class: javax/servlet/Servlet.class
    

    对于 java 应用程序,这是一个相当常见的警告。因为 web 应用程序容器的类加载器同时提供了 servlet 规范的 api 和实现,所以禁止 web 应用程序提供自己的版本。

    但是,作为 wep 应用程序的开发人员,在没有工具支持的情况下编译您的类有点困难,因此很容易将其包含servlet.jar在您的lib/目录中。这也很容易意外地.war随它一起发货。

    因此,Tomcat 会在加载所有类时对其进行扫描,如果找到,它会阻止加载该类并呈现此错误。

    • 1

相关问题

  • 为什么 Apache Tomcat 可能不会在退出时释放端口?

  • 如何在 FreeBSD 中查找文件

  • 如何以尽可能少的依赖项在 FreeBSD 上安装 Java JRE

  • 阿帕奇的替代品

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve