最近学着在一台远程服务器上部署dotcms,服务器用的ubuntu系统,jdk是1.7.0,数据库用的mysql5.5.
按照开发文档上的步骤安装之后,运行catalina.sh run,会卡在Using CATALINA_BASE:   /root/dotcms/dotserver/tomcat
Using CATALINA_HOME:   /root/dotcms/dotserver/tomcat
Using CATALINA_TMPDIR: /root/dotcms/dotserver/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.7.0
Using CLASSPATH:       /root/dotcms/dotserver/tomcat/bin/bootstrap.jar
Usage: catalina.sh ( commands ... )
commands:
  debug             Start Catalina in a debugger
  debug -security   Debug Catalina with a security manager
  jpda start        Start Catalina under JPDA debugger
  run               Start Catalina in the current window
  run -security     Start in the current window with security manager
  start             Start Catalina in a separate window
  start -security   Start in a separate window with security manager
  stop              Stop Catalina, waiting up to 5 seconds for the process to end
  stop n            Stop Catalina, waiting up to n seconds for the process to end
  stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
  stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running
  version           What version of tomcat are you running?
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined接着就没了下文。远程输入IP地址发现无法访问,回头查看数据库发现里面没有写入任何新东西。于是反回去查看错误日志dotcms.log,发现有如下情况[05/12/12 01:44:20:176 UTC]  INFO startup.HostConfig: Deploying web application directory ROOT
[05/12/12 01:44:20:428 UTC] ERROR loader.WebappClassLoader: A web application registered the JBDC driver [org.h2.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
[05/12/12 01:44:23:769 UTC]  INFO util.Config: Initializing properties reader.
[05/12/12 01:44:23:796 UTC]  INFO util.Config: Loading dotCMS Properties...
[05/12/12 01:44:23:854 UTC]  INFO util.Config: Assigned default refresh interval: 5 minutes.
[05/12/12 01:44:23:854 UTC]  INFO util.Config: dotCMS Properties Loaded
[05/12/12 01:44:23:854 UTC]  INFO business.CacheLocator: loading cache administrator: com.doteting.business.DotGuavaCacheAdministratorImpl
[05/12/12 01:44:23:890 UTC]  INFO business.ESDistributedJournalFactoryImpl: Server IDs configured: [1]
[05/12/12 01:44:23:891 UTC]  INFO util.ConfigUtils: Using configured hostname: 1
[05/12/12 01:44:24:310 UTC]  INFO business.CacheLocator: loading cache administrator: com.doteting.business.DotGuavaCacheAdministratorImpl
[05/12/12 01:44:24:311 UTC]  INFO business.ESDistributedJournalFactoryImpl: Server IDs configured: [1]
[05/12/12 01:44:24:311 UTC]  INFO util.ConfigUtils: Using configured hostname: 1
[05/12/12 01:44:24:316 UTC] FATAL business.CacheLocator: Unable to load Cache Admin:com.doteting.business.DotGuavaCacheAdministratorImpl
[05/12/12 01:44:24:425 UTC] ERROR modeler.Registry: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/,J2EEApplication=none,J2EEServer=none
[05/12/12 01:44:24:425 UTC] ERROR startup.HostConfig: Error deploying web application directory ROOT
java.lang.NoClassDefFoundError: Could not initialize class com.sun.crypto.provider.SunJCE
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at java.lang.Class.newInstance0(Class.java:372)
        at java.lang.Class.newInstance(Class.java:325)
        at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221)
        at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
        at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
        at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
        at sun.security.jca.ProviderList.getService(ProviderList.java:330)
        at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
        at java.security.Security.getImpl(Security.java:695)
        at java.security.MessageDigest.getInstance(MessageDigest.java:159)
        at org.apache.catalina.session.ManagerBase.getDigest(ManagerBase.java:324)
        at org.apache.catalina.session.ManagerBase.generateSessionId(ManagerBase.java:999)
        at org.apache.catalina.session.StandardManager.start(StandardManager.java:631)
        at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4396)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
        at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:519)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
        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:601)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
[05/12/12 01:44:24:448 UTC]  INFO http11.Http11Protocol: Starting Coyote HTTP/1.1 on http-198.98.98.250-8080
[05/12/12 01:44:24:516 UTC]  INFO common.ChannelSocket: JK: ajp13 listening on /0.0.0.0:8009
[05/12/12 01:44:24:529 UTC]  INFO server.JkMain: Jk running ID=0 time=0/31  config=null
[05/12/12 01:44:24:530 UTC]  INFO startup.Catalina: Server startup in 10782 ms
[05/12/12 01:44:31:685 UTC]  INFO http11.Http11Protocol: Pausing Coyote HTTP/1.1 on http-198.98.98.250-8080
[05/12/12 01:44:32:695 UTC]  INFO core.StandardService: Stopping service Catalina
[05/12/12 01:44:32:696 UTC]  WARN startup.HostConfig: Error while removing context []
java.lang.NullPointerException
        at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:915)
        at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1319)
        at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1290)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:323)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1086)
        at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
        at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448)
        at org.apache.catalina.core.StandardService.stop(StandardService.java:587)
        at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
        at org.apache.catalina.startup.Catalina.stop(Catalina.java:648)
        at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:692)
[05/12/12 01:44:32:699 UTC]  INFO http11.Http11Protocol: Stopping Coyote HTTP/1.1 on http-198.98.98.250-8080请问一下是出了什么问题?多谢各位大牛指点!需要的话之后我可以贴出来ROOT.xml,server.xml的配置情况

解决方案 »

  1.   

    接下来贴一下我的配置设置。
    服务器IP是198.98.98.250,我需要能远程访问并且操作控制台。dotcms我下载的zip版本,解压在了/root/dotcms文件夹底下(自己建了个叫dotcms的文件夹);mysql中我建了一个叫dotcms_link的数据库,以及一个叫abc的用户,有对该数据库的全部权限,也可以在任何计算机上登陆该数据库(用的 grant all on dotcms_link.* to 'abc'@'%' identified by '123'),经测试在本机上用mysql -u abc -p -h198.98.98.250登陆成功。
    主要涉及到两个文件的配置:关于和数据库连接的ROOT.xml:
    <Context path="" docBase="../../dotCMS" debug="0" reloadable="true" crossContext="true">
            <Resource name="mail/MailSession" auth="Container" type="javax.mail.Session" mail.smtp.host="localhost" />
     <!-- MYSQL UTF8 -->
            <Resource name="jdbc/dotCMSPool" auth="Container"
                      type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
                      url="jdbc:mysql://localhost/dotcms_link?characterEncoding=UTF-8"
                      username="abc" password="123" maxActive="60" maxIdle="10" maxWait="-1"
                      removeAbandoned="false" removeAbandonedTimeout="60" logAbandoned="true"
                      validationQuery="SELECT 1" testOnBorrow="true"/>然后是关于接口和连接的server.xml:
    <Server address="198.98.98.250" port="8005" shutdown="SHUTDOWN" debug="0">
    <Service name="Catalina">
     <Connector address="198.98.98.250" maxThreads="150" connectionTimeout="20000" port="81" protocol="HTTP/1.1" redirectPort="8443"/>其他的部分应该没什么问题,之前也根据安装文档将dotcms/dotserver/tomcat/endorsed/底下的所有.jar文件都复制到了/usr/java/jdk1.7.0/lib底下……应该没什么问题了才对。