2016-04-15 61 views
2

我在rhel機器上使用TomEE plus 1.7.1。 我已經爲持久性存儲設置了jdbc存儲來將會話數據存儲在mysql數據庫中。 jdbc存儲在rhel機器上不起作用。即使在文件中的持久性不起作用。 以下是我所做的設置。TomEE sesison持久性存儲不起作用

在/conf/context.xml加入這個

<Manager className="org.apache.catalina.session.PersistentManager" 
     maxIdleBackup="0"> 
    <Store className="org.apache.catalina.session.JDBCStore" 
     connectionURL="jdbc:mysql://dbservername:3306/someName?user=[user]&amp;password=[pass]" 
     driverName="com.mysql.jdbc.Driver" 
     sessionAppCol="app_name" 
     sessionDataCol="session_data" 
     sessionIdCol="session_id" 
     sessionLastAccessedCol="last_access" 
     sessionMaxInactiveCol="max_inactive" 
     sessionTable="TOMCAT_SESSIONS" 
     sessionValidCol="valid_session"/> 
</Manager> 

我有一個TomEE啓動腳本下面的內容。 2線涉及JDBC存儲

export JAVA_OPTS="-Djava.awt.headless=true -Dawt.toolkit=sun.awt.HToolkit" 
export CATALINA_OPTS="-Dorg.apache.catalina.session.StandardSession.ACTIVITY_CHECK=true" 
sh catalina.sh start 

創建表在MySQL以下

created following table 
create table tomcat_sessions (
    session_id  varchar(100) not null primary key, 
    valid_session char(1) not null, 
    max_inactive int not null, 
    last_access bigint not null, 
    app_name  varchar(255), 
    session_data mediumblob, 
    KEY kapp_name(app_name) 
); 

加入與/ lib 以下錯誤觀察

錯誤的MySQL連接器-java.jar觀察到 -

對於在Apache中部署的每個應用程序,我得到這些錯誤

SEVERE: Error manager.start() 
org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.PersistentManager[/tomee]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5499) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247) 
     at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.JDBCStore[org.apache.catalina.session.PersistentManager[/tomee]]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.session.PersistentManagerBase.startInternal(PersistentManagerBase.java:864) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 12 more 
Caused by: java.lang.NullPointerException 
     at org.apache.catalina.session.JDBCStore.open(JDBCStore.java:961) 
     at org.apache.catalina.session.JDBCStore.getConnection(JDBCStore.java:893) 
     at org.apache.catalina.session.JDBCStore.startInternal(JDBCStore.java:1064) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 14 more 



SEVERE: Error manager.start() 
org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.PersistentManager[/myAppname1]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5499) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) 
     at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.JDBCStore[org.apache.catalina.session.PersistentManager[/myAppname1]]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.session.PersistentManagerBase.startInternal(PersistentManagerBase.java:864) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 12 more 
Caused by: java.lang.NullPointerException 
     at org.apache.catalina.session.JDBCStore.open(JDBCStore.java:961) 
     at org.apache.catalina.session.JDBCStore.getConnection(JDBCStore.java:893) 
     at org.apache.catalina.session.JDBCStore.startInternal(JDBCStore.java:1064) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 14 more 



     SEVERE: Error manager.start() 
org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.PersistentManager[/myAppname2]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5499) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) 
     at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.JDBCStore[org.apache.catalina.session.PersistentManager[/myAppname2]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.session.PersistentManagerBase.startInternal(PersistentManagerBase.java:864) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 12 more 
Caused by: java.lang.NullPointerException 
     at org.apache.catalina.session.JDBCStore.open(JDBCStore.java:961) 
     at org.apache.catalina.session.JDBCStore.getConnection(JDBCStore.java:893) 
     at org.apache.catalina.session.JDBCStore.startInternal(JDBCStore.java:1064) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 14 more 


     SEVERE: Error manager.start() 
org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.PersistentManager[/myAppname3]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5499) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649) 
     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083) 
     at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.session.JDBCStore[org.apache.catalina.session.PersistentManager[/myAppname3]]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     at org.apache.catalina.session.PersistentManagerBase.startInternal(PersistentManagerBase.java:864) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 12 more 
Caused by: java.lang.NullPointerException 
     at org.apache.catalina.session.JDBCStore.open(JDBCStore.java:961) 
     at org.apache.catalina.session.JDBCStore.getConnection(JDBCStore.java:893) 
     at org.apache.catalina.session.JDBCStore.startInternal(JDBCStore.java:1064) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 14 more 

回答

0

就我而言,這是因爲我使用了錯誤的JDBC URL,尤其是方案部分。

我用:

postgres:// 

(這是正常的psql,而不是JDBC)。正確的是:

jdbc:postgresql://