<Context antiJARLocking="true" path="/NCellLive"> <Resource name="jdbc/Gis_WebApp" auth="Container" type="javax.sql.DataSource" username="uname" password="pword" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Gis_WebApp;SelectMethod=cursor;" maxActive="8" /> <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Gis_WebApp;" connectionName="uname" connectionPassword="pword" userTable="app_user" userNameCol="username" userCredCol="password" userRoleTable="app_user_group" roleNameCol="groupname"/> </Context>
现在,所有数据库连接都可以正常工作,但是在添加领域之后,引发了以下错误,我已经在库中添加了sqljdbc4.jar。
Jan 31, 2012 11:28:24 AM org.apache.catalina.realm.JDBCRealm authenticate SEVERE: Exception performing authentication java.sql.SQLException: com.microsoft.sqlserver.jdbc.SQLServerDriver at org.apache.catalina.realm.JDBCRealm.open(JDBCRealm.java:701) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:352) at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:295) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:450) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
可能是什么问题?
Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
告诉您在类路径中找不到sql库。 它必须在您的tomcat / lib文件夹中。
从文档:
要将Tomcat设置为使用JDBCRealm,您将需要执行以下步骤: 如果尚未这样做,请在数据库中创建符合上述要求的表和列。 配置供Tomcat使用的数据库用户名和密码,该用户名和密码至少具有对上述表的只读访问权限。(Tomcat绝不会尝试写入这些表。) 将要使用的JDBC驱动程序的副本放在$ CATALINA_HOME / lib目录中。请注意,只能识别JAR文件! 如下所述,在$ CATALINA_BASE / conf / server.xml文件中设置一个元素。 如果Tomcat 6已经在运行,请重新启动它。
要将Tomcat设置为使用JDBCRealm,您将需要执行以下步骤: