无法从我的系统上正常工作的java连接到SQL Server 2008,而不是在服务器系统上工作

时间:2013-10-23 19:14:56

标签: java sql-server-2008

我想从java中提取远程服务器(Microsoft SQL Server 2008(SP1) - 10.0.2531.0)中的数据,我在服务器上几乎没有权限。我有权从该服务器访问数据库的视图。我使用sql express时没有问题,而且它在我的系统上工作正常(我可以从我的系统中从指定的服务器中提取数据),但它不能在应用程序系统上运行..

这是我正在使用的连接字符串

url="jdbc:sqlserver://<ipaddress>:1433;
Instance=;databaseName=CentralDB";
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driver); 
url = url + ";user=" + username + ";password="+ password ";"; 
Class.forName(driver);
Connection con1 = DriverManager.getConnection(url);

这里是错误的堆栈跟踪

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "CentralDB" requested by the login. The login failed.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2529)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1905)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1893)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1045)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:243)
    at com.noufal.db.ConnectDB.<init>(ConnectDB.java:27)
    at com.noufal.db.GetEmps.getEmps(GetEmps.java:48)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:78)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    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:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)
    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)
SQLState(S0001) vendor code(4060)

请帮助解决这个问题...

2 个答案:

答案 0 :(得分:0)

用户名密码问题

com.microsoft.sqlserver.jdbc.SQLServerException:无法打开登录请求的数据库“CentralDB”。登录失败。

答案 1 :(得分:0)

尝试打印url字符串变量,可能与形成连接字符串有关。如果您看不出任何错误,请尝试使用生成的网址进行连接。还要检查应用程序系统是否可以访问该IP地址