只能在localhost上建立Microsoft JDBC Connection,而不能在Server上建立

时间:2015-03-24 16:23:20

标签: java sql sql-server ajax jdbc

我在开发Java Web应用程序时已经使用JDBC大约两个月了。我最近开始将所有内容迁移到开发服务器,但是从服务器运行时Web应用程序崩溃(而不是从localhost运行它成功运行),我今天发现了这个bug。我有一个调用Servlet的ajax函数,其中包含:

try 
{           
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection con = DriverManager.getConnection(Drivers.MICROSOFT_INTEG.driverURL);
    response.getWriter().write("established connection");
    ...
}
catch(Exception e)
{
    response.getWriter().write("entered catch");
}

所以当我提醒我的Ajax成功函数返回的'数据'时,我得到“输入捕获”。奇怪的是它在localhost上工作正常,所以我认为它不会与连接String或代码的任何部分有关。此外,为我的SQL Express实例启用了TCP / IP 。我的Web控制台上没有出现任何错误,因此很难说出它出的错误。但它肯定进入了捕获。有什么想法吗?

谢谢!

更新:

我把我的捕获改为:

catch(Exception e)
{
    response.getWriter().write(e.getMessage());
}

我得到“此驱动程序未配置为集成身份验证.ClientConnectionID:ce6e4873-127f-4b71-b6e2-8c853a1fa594”

1 个答案:

答案 0 :(得分:0)

您的服务器是否在Linux上运行?根据{{​​3}}和here,可能存在一些有关身份验证的问题:

  

对于不同的处理器体系结构(x86 / x64 / ia64),有不同版本的sqljdbc_auth.dll。您在SFS服务器上使用了哪一个?

     

您必须选择与运行SFS的JVM的体系结构相匹配的那个。因此,如果您在64位计算机上运行32位Java,则需要x86版本,而不是x64版本。

     

此外,可能需要查看它的日志,看看是否有任何有用的内容。

有许多可能存在的问题和解决方案,因此我建议您使用here例外情况并与客户/服务器要求进行比较。