2011-12-01 24 views
5

Me estoy conectando a mi base de datos en una aplicación web JSF que estoy tratando de desarrollar. Usando Windows 7, NetBeans 6.9.1, SQLServer 2008, Glassfish 3.3.No se puede conectar a la base de datos SQLServer en la aplicación Java

estoy usando el sqljdbc4.jar controlador que he copiado de mi sistema XP donde he conectado correctamente a SQL Server 2005.

He comprobado que SQL Server 2008 se está ejecutando en mi sistema y se puede conectar a la base de datos a través de SQL Server Management Studio usando el nombre de usuario y la contraseña que estoy tratando de usar en la aplicación. El Administrador de configuración de SQL Server muestra que el puerto de conexión IP es 1433. Por lo tanto, creo que mi base de datos está configurada correctamente.

Creo que estoy haciendo las cosas correctamente, pero simplemente no puedo conectarme a la base de datos. ¿Alguien tiene alguna sugerencia sobre por qué esto está fallando y qué puedo verificar?

Gracias.

Aquí está mi código de conexión:

public void connectDB() 
{ 
    try 
    { 
     String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=ROVRDEV;user=rovrdevuser;password=rovrdevuser"; 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection con = DriverManager.getConnection(connectionUrl); 
     System.out.println("Database connection = "+con); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
     System.out.println("Error connecting to database. Error: "+e.getMessage()); 
    } 

} 

Cuando intento ejecutar este, consigo la excepción siguiente en el registro del servidor:

SEVERE: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.". 
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1049) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833) 
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716) 
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841) 
    at java.sql.DriverManager.getConnection(DriverManager.java:582) 
    at java.sql.DriverManager.getConnection(DriverManager.java:207) 
    at rmsbackoffice.SessionBean1.connectDB(SessionBean1.java:130) 
    at rmsbackoffice.SessionBean1.doInit(SessionBean1.java:107) 
    at rmsbackoffice.SessionBean1.beforePhase(SessionBean1.java:88) 
    at rmsbackoffice.org$jboss$weld$bean-web-ManagedBean-class_rmsbackoffice$SessionBean1_$$_WeldClientProxy.beforePhase(org$jboss$weld$bean-web-ManagedBean-class_rmsbackoffice$SessionBean1_$$_WeldClientProxy.java) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:234) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) 
    at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43) 
    at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.UIViewRoot.notifyPhaseListeners(UIViewRoot.java:1050) 
    at javax.faces.component.UIViewRoot.notifyBefore(UIViewRoot.java:845) 
    at javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:959) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1754) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) 
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:662) 

Respuesta

8
The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port. 

Comprobar configuración permite que el servidor SQL Server aceptar conexiones TCP/IP. Habilite TCP/IP y reinicie SQL Server. Luego prueba tu código nuevamente.

enter image description here

enter image description here

+0

¿Cómo hago eso? – Burferd

+1

Eso fue todo, revisé las otras entradas en Config Mgr, pero la entrada de red no estaba habilitada. Gracias. – Burferd

1

En el Administrador corporativo de ir a Propiedades-> Conexiones y compruebe "Permitir conexiones remotas con este servidor." También asegúrese de que el puerto 1433 no esté bloqueado en el Firewall de Windows. Finalmente, dejaría de usar el jar de Microsoft JDBC. Tuve mucha mejor suerte con jTDS.

1

He intentado cambiar el nombre de host con IP

"jdbc:sqlserver://localhost:1433;databaseName=ROVRDEV;user=rovrdevuser;password=rovrdevuser"; 

convierten

"jdbc:sqlserver://127.0.0.1:1433;databaseName=ROVRDEV;user=rovrdevuser;password=rovrdevuser"; 

tal vez sólo porque éste ->

enter image description here

1

instanceName no se encuentra en su Cadena de conexión.

Si el nombre de la instancia del servidor SQL es "SQL2005", entonces debe ser como .....

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;instanceName=SQL2005;databaseName=ROVRDEV","rovrdevuser","rovrdevuser"); 
0

También puedes ver el Explorador de SQL Server se ejecuta en el servicio no -> Explorador de SQL Server -> inicio

Cuestiones relacionadas