【问题标题】:Placing MySQL connector JAR in WEB-INF/lib of my WAR instead of in tomcat lib making j_security_check fail将 MySQL 连接器 JAR 放在我的 WAR 的 WEB-INF/lib 中,而不是放在 tomcat lib 中,从而导致 j_security_check 失败
【发布时间】:2011-07-22 20:17:23
【问题描述】:

我希望我的 webapp 使用 web-inf/lib 中的 MySQL 连接器 JAR。但是当我这样做时,j-security_check 不起作用。当我将 jar 放在 tomcat lib 文件夹中时,它工作正常。但是我已经购买了一个共享的tomcat托管,他们不会让我在tomcat lib中放一个jar。 是否可以在没有tomcat lib中的jar的情况下使用j_security_check和连接池。

以下是我的 META-INF/context.xml

<Resource name="jdbc/myDB" auth="Container" type="javax.sql.DataSource"
          maxActive="600" maxIdle="30" maxWait="20000" removeAbandoned="true" logAbandoned="false"
          username="usr_1" password="password1" driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/daname?autoReconnect=true"/>


<Realm name="myRealm" className="org.apache.catalina.realm.DataSourceRealm" debug="99"
       dataSourceName="jdbc/myDB" localDataSource="true"
       userTable="user" userNameCol="username" userCredCol="pass"
       userRoleTable="user_roles" roleNameCol="role_name"/>

【问题讨论】:

    标签: mysql tomcat6 connector context.xml


    【解决方案1】:

    你可以,例如可以配置 Hibernate 来创建和管理它自己的连接池,但是如果你想让容器管理资源(包括数据库连接),那么它需要能够看到类,因此需要公共文件夹中的类,而不是附加到单个 Web 应用程序

    【讨论】:

    • 在您的情况下,创建一个会话上下文侦听器,当应用程序启动时,您可以初始化连接池并将其绑定到 JNDI。
    • 谢谢,问题解决了,但我还是不知道怎么解决。当我在运行的 tomcat webapps 目录上上传战争时,它工作正常(不需要在其 lib 中的 jar),但是当我将文件(在 webapps 中)并启动 tomcat 时,它失败了(将 jar 放入Tomcat库)。因此,甚至不确定问题是否首先出在罐子上。
    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 2016-02-06
    • 2010-11-29
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多