我已经按照这个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
如果没有错误消息,就很难诊断您的问题。