Tomcat 在从源代码部署 sakai 后不会启动



我已经按照这个URL中的说明进行操作: http://pmungai.wordpress.com/sakai-developer-guide/sakai-linux-cheatsheet/并且能够编译和部署Sakai,但是,重新启动Tomcat后,它将向我显示以下内容:

root@ip-10-72-129-39:/opt/sakai# sh /opt/tomcat/bin/startup.sh
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.6.0-openjdk-amd64
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar

这意味着 Tomcat 成功启动,但是当我尝试从浏览器打开 URL 时,它只是永远加载,等待响应。如果我尝试关闭雄猫,我会得到:

root@ip-10-72-129-39:/opt/sakai# sh /opt/tomcat/bin/shutdown.sh
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr/lib/jvm/java-1.6.0-openjdk-amd64
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar
2012-05-24 15:26:34,357 ERROR main org.apache.catalina.startup.Catalina - Catalina.stop:
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
        at java.net.Socket.connect(Socket.java:546)
        at java.net.Socket.connect(Socket.java:495)
        at java.net.Socket.<init>(Socket.java:392)
        at java.net.Socket.<init>(Socket.java:206)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:395)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:344)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:435)

当雄猫一开始没有跑的时候就会发生这种情况。我能够在部署 sakai 之前测试雄猫是否完全运行,之后,它无法加载网页。

有谁知道发生了什么?

在开始 Sakai 开发环境之前,我会尝试 Sakai 2.8.x 演示,它将提供一个内部数据库并具有一些大多数标准功能。

您应该从以下位置下载演示项目:https://testdrivesakai.com/portal

习惯了流程、配置等后,您应该使用自己的 sakai 架构设置自己的实例。但是,当您这样做时,还要确保您至少有一些可用的最低硬件设置以及以下tomcat启动参数:

-Xms512m
-Xmx1024m
-XX:PermSize=128m
-XX:MaxPermSize=256m
-XX:NewSize=192m
-XX:MaxNewSize=384m
-Djava.awt.headless=true
-Dhttp.agent=Sakai
-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
-Dsun.lang.ClassLoader.allowArraySyntax=true

还要确保您加入 sakai-dev 邮件列表,因为通过在那里发布问题,您将获得更快的支持。

加入酒井开发列表的链接:http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

根据我的经验,这通常与数据库有关。您使用的是开箱即用的 hsqldb 还是 MySQL?当你第一次启动Tomcat时,使用Maven编译并部署到你的tomcat目录中后,它必须自动创建一堆表。在许多情况下,这可能由于几个原因而失败。

我假设您正在使用MySQL,因为hsqldb的问题很少:

  • 有时,初始tomcat启动可能会关闭您的mysql服务,并且不允许它再次启动备份。这通常是因为它无法在 my.cnf 文件中指定的位置创建错误日志文件。尝试注释掉使用这些日志的任何实例,然后重新启动服务。然后重试启动。

  • 在 Linux 上使用"# ./catalina.sh run"而不是调用启动 shell 脚本。这将生成第二个终端窗口,并显示 Tomcat 尝试启动时发生的所有事情(包括任何错误)。

  • 查看数据库中是否创建了任何表。如果不是,则为数据库连接问题。如果是这样,您应该有大约 377 张桌子左右,具体取决于堺版本。

  • 如果您在 tomcat 日志中收到"缓存未激活"错误,这是已知的争用条件。您可能需要禁用表自动创建(假设这些表已经从以前的启动试用中制作)并应用此处概述的修补程序:

KNL-1290

如果没有错误消息,就很难诊断您的问题。

相关内容

  • 没有找到相关文章

最新更新