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"/>