2

我已按照以下 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时,它只是永远加载,等待响应。如果我尝试关闭 tomcat,我会得到:

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)

当tomcat开始时没有运行时会发生这种情况。在部署 sakai 之前,我能够测试 tomcat 是否正在运行,而之后,它无法加载网页。

有谁知道发生了什么?

4

2 回答 2

2

在开始 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 邮件列表,因为您可以通过在那里发布问题来获得更快的支持。

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

于 2012-06-18T08:30:01.227 回答
1

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

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

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

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

  • 查看是否在您的数据库中创建了任何表。如果不是,那么它是一个数据库连接问题。如果是这样,您应该有大约 377 桌左右,具体取决于 Sakai 版本。

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

KNL-1290

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

于 2014-09-26T19:27:42.620 回答