Drivermanager仅在tomcat上返回无效连接(在玻璃鱼上工作正常)



几天前升级Tomcat 7至7.0.26(Centos 7 YUM更新)后,我的情况很奇怪。DriverManager无法自动识别MySQL驱动程序,并在Tomcat Server上部署Servlet时返回NULL DB Connection。另一方面,我的Netbeans上的Glassfish Server效果很好。

简单的测试servlet代码如下:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter())
    {
        Connection c = MySQLConnector.connect("DBFoobar", "username", "passwd");
        String message = null;
        if (c == null)
            message = "Connection returned null";
        else
            message = "C is returned: " + c.toString();
        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<body>");
        out.println(message);
        .
        .
        .

和在MySQLConnector中,jdbc调用定义如下:

public class MySQLConnector
{
    private static final String dbURLPrefix
            = "jdbc:mysql://dbfoobar.xxx.uswest2.rds.amazonaws.com:3306/";
    public static Connection connect(String dbName, String username, String password)
    {
        Connection connection = null;
        try
        {
           Class.forName("com.mysql.jdbc.Driver");
           connection = DriverManager.getConnection(dbURLPrefix + dbName 
                + "?useUnicode=yes&characterEncoding=UTF-8&useSSL=false", username, password);
           .
           .
           .

当Servlet在Glasshfish服务器上运行时,它会正确显示Connection对象,但在Tomcat Server上显示Connection returned null消息。

对此有什么想法吗?到目前为止,我试图将MySQL连接器JAR文件放在/usr/share/tomcat/lib目录下,但无济于事。war软件包正确包含MySQL连接器JAR文件。Tomcat 7的先前版本工作正常。

最终找到了答案。这是由于Selinux。我尚未检查详细信息,但是SELINUX似乎可以阻止DriveManager执行。我修改了配置文件/etc/selinux/config和禁用的Selinux:

SELINUX=permissive    # changed from enforcing

好吧。我放弃。:)我唯一能够发现的事情如下。我正在使用Centos 7。

  • 从tomcat 7.0.69升级到7.0.76似乎已经从DriverManager中损坏了Connection的生成
  • /var/log/yum.log中,OpenJDK(1.8.0)也已升级
  • 将整个虚拟EC2实例恢复到先前的备份(使用Tomcat 7.0.69)之后,代码运行而无需任何问题
  • yum update再次导致上述错误

希望这会有所帮助。

相关内容

  • 没有找到相关文章

最新更新