MSSQL Exception & Connection String

Tach,

mal wieder die Leier eines Connection Strings. Ich habe mich an die offizielle Dokumentation gehalten. Der Connection String sieht Folgendermaßen aus:

Code:
Connection con = DriverManager.getConnection(
                    "jdbc:sqlserver://myDekstop\\blub:1433;databaseName=model;user=username;password=mypassword");
Ich kriege jedenfalls die Exception:

Code:
No suitable driver found for jdbc:sqlserver...............

Ich hatte zudem mit Rechtsklick auf den Projektnamen ->Properties -> Java Build Path -> Add External JARs geklickt und mysql-connector-java-8.0.18.jar hinzugefügt.

Port 1433 hatte ich auch soweit in der Firewall freigeschaltet. Obwohl es nur Local läuft...

Aber es geht noch immer nicht. Jemand ne Idee? :S
 
*narf*

Den hatte ich aber auch schon :) Ich hab den jetzt nochmal genommen. Also den MS SQL-Server Driver. Noch immer die gleiche Exception.

Der Java Build Path sieht jetzt so aus:

12649

In dem Zusammenhang: Kann mir wer sagen wo der Unterschied ist zwischen

mssql-jdbc-7.4.1.jre12.jar

und

mssql-jdbc-7.4.1.jre12-shaded.jar

?
 
Es will einfach nicht klappen -.-

Immer diese Verbindungs-Grütze.

ich hab jetzt https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15

Diesen Treiber runtergeladen... Rechtsklick auf den Projektnamen ->Properties -> Java Build Path -> Add External JARs.

Hier nochmal der ConString:

Code:
Connection con = DriverManager.getConnection(
                    "jdbc:sqlserver://Desktop\\SQLEXPRESS:1433;databaseName=ChatDB", "accname", "password");
Das es am String liegt, kann ich beinahe ausschließen. Auf mein Laptop hab ich ein Projekt, dass auch mit SQL Express läuft. Der gleiche verf*** Treiber und die gleiche DB und der gleiche Con-String. Dort geht alles :D

Wuuuuuusa....

Kann das mit Tomcat zusammenhängen?
 
Immernoch das gleiche:

No suitable driver found for jdbc:sqlserver://.....................at:

Code:
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at myServletPackage.LoginServlet.checkAccountDetails(LoginServlet.java:65)
    at myServletPackage.LoginServlet.doPost(LoginServlet.java:46)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:830)



Das ist der Treiber:

mssql-jdbc-7.2.2.jre11.jar
 
Hatte mich an ein Tutorial gehalten von WC3. in meinem anderen projekt, ist es auch im Modulepath. Ich habs aber grad mal in Classpath rein. Keine Änderung. Gleiche Exception.
 
Erzeugst Du ein WAR oder ein EAR? Kannst Du da mal nachschauen, an welcher Stelle sich der JDBC-Treiber befindet?

(Abgesehen davon kenne ich das so, dass man den JDBC-Treiber in ein Lib-Verzeichnis des Application-Servers kopiert und nicht jedesmal mit der Anwendung ausliefert)
 
Der Treiber befindet sich gerade da, wo ich ihn hin gedownloaded habe.

Da musst du mir kurz auf die Sprünge helfen :)

Was meinst du mit WAR oder EAR?

Ich hatte gelesen, das manche diese jar Datei in den WEB-INF/lib Ordner tun und es dann auf wundersame Weise funktioniert. Fehlanzeige. Allerdings hat sich jetzt grad was getan, nachdem ich den Treiber in das Tomcat/lib Verzeichnis getan habe.

Jetzt ist der Fehler verschwunden, habe aber einen neuen bekommen. Aber damit kann ich wieder arbeiten

Die Frage ist, ob das jetzt ein Fortschritt ist oder ein Rückschritt.


Code:
Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'Servername', Port 1433. Fehler: 'Connect timed out. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird und am Port TCP/IP-Verbindungen akzeptiert. Vergewissern Sie sich, dass am Port keine TCP-Verbindungen durch eine Firewall blockiert werden.'.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:234)

Muss ich zwar erst noch prüfen, aber kann sein, dass dieser Fehler kommt, weil ich bei MS SQL eine Windows Authentication habe. Da muss ich dann nochmal den Con-String umbasteln.
 
Zuletzt bearbeitet:
Was meinst du mit WAR oder EAR?
Du erhältst ja am Ende des Build-Prozesses eine Datei. Das kann z. B. ein gewöhnliches JAR-File sein, ein WAR oder ein EAR (wobei mich EARs im Zusammenhang mit Tomcat wundern würden). Letztlich sind das alles ZIP-Dateien, die einfach nur einem bestimmten Aufbau folgen.

Die Frage ist, ob das jetzt ein Fortschritt ist oder ein Rückschritt.
Das ist ein Fortschritt. Den Treiber kannst Du dann aus Deiner Anwendung mal rausnehmen.

Wenn Du Dir sicher bist, dass die Einstellungen im Connection-String stimmen:
1. Muss man beim SQL-Server TCP-Verbindungen nicht auch aktivieren?
2. Firewall?
 
Ich hab gesehen, dass das jetzt eine neuere Version vom MS SQL Managment Studio ist. Ich kann nicht ausschließen, dass es da irgendwas neues gibt, dass da jetzt reinhackt.

Also bisher musste ich nie bei MS SQL irgendwie TCP Verbindungen aktivieren.

Das ich eine Windows Authentification habe, spielte offenbar mit rein. Jetzt habe ich 2 neue Exceptions. Diesmal mit Sockets.

Code:
Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'dontTryit', Port 1433. Fehler: 'Socket closed. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird und am Port TCP/IP-Verbindungen akzeptiert. Vergewissern Sie sich, dass am Port keine TCP-Verbindungen durch eine Firewall blockiert werden.'.
  at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:234)
Den Port 1433 hab ich freigegeben.

Evtl hat das alles was mit Tomcat zu tun. Da bin ich grad dabei die ersten Schritte zu gehen. Aber grundsätzlich funktioniert Tomcat. Aber irgendwo ist da der Wurm drinnen und ich bin zu unerfahren um zu sehen, woran es liegt.
 
Du hattest recht. Das hatte ich damals auch getan. Hatte es aber vergessen. Die TCP Verbindungen des Servers waren deaktivert. Es war auch ein falscher Port eingstellt. Hab es geändert und den Server neugestartet.

Er motzt zwar jetzt wegen dem Benutzer, aber das ist denke ich kein Problem. Jesus. Jetzt geht es.
 
Jetzt geht tatsächlich alles. Und die gelbe Farbe der Exceptions die sich auf die Bindehaut gebrannt hat, verschwindet langsam.

Hab aber viel gelernt. Und jetzt richtig.

Aber kannst du mri noch sagen, wo da der Unterschied ist?

mssql-jdbc-7.4.1.jre12.jar

und

mssql-jdbc-7.4.1.jre12-shaded.jar
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben