FIX: Tomcat Catalina Service Fails to Start after Service Restart

Error: From log files: C:Tomcatlogscatalina.2014-01-07.log

Jan 7, 2014 7:25:17 AM org.apache.catalina.startup.Catalina start
SEVERE: Catalina.start:
LifecycleException:  Exception opening database connection:  java.sql.SQLException: ORA-12154: TNS:could not resolve service name

    at com.myclasses.security.tomcat.JDBCRealm2.start(Unknown Source)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1005)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Jan 7, 2014 7:25:17 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4672 ms

 

Cause:

C:Tomcatconfserver.xml has an entry for “com.myclasses.security.tomcat.JDBCRealm2”  that connects tomcat to Oracle server.  If the servername/TNS mentioned for that connection is invalid/incorrect, then you’ll end up with the above error messages and Catalina will NOT start.

 

Fix:

 

Ensure Oracle Server TNS entry is correct for “connectionURL” as shown below.  In my case it was pointing to orasrvuk02 which is incorrect and when I changed it to orasrvus02, Catalina started fine.

 

<

p><Realm className="com.myclasses.security.tomcat.JDBCRealm2"
                 connectionName="my-secured-connection"
          connectionPassword="password"
          connectionURL="jdbc:oracle:oci8:@orasrvus02"
          driverName="oracle.jdbc.driver.OracleDriver"
          roleNameCol="rolename"
          userCredCol="password"
          userNameCol="login"
          userRoleTable="my_rolelist_v"
          userTable="my_auth_v"
          validate="true"/>

Leave a Reply

Your email address will not be published. Required fields are marked *