2016-07-19 19 views
1

Ich versuche Tomcat als Dienst ausführen, aber es lädt Gerätetreiber DLL-Dateien nicht, und beim Start mit startup.bat funktioniert es perfekt.Tomcat als Dienst in Windows laden DLL-Dateien von Geräten nicht

Jeder bitte vorschlagen, alle Optionen auszuprobieren.

+1

Woher stammen die DLL-Dateien? Sind sie explizit in startup.bat konfiguriert? – aksappy

+0

Die DLL-Dateien sind Gerätetreiber, die während der Installation des Hardwaregeräts installiert werden. und in startup.bat sind sie nicht explizit konfiguriert. Die DLL-Dateien sind in system32 – Ash

Antwort

1

Wenn Windows Tomcat als Dienst startet, wird die Datei startup.bat nicht wie beim manuellen Start verwendet. Ich nehme an, dass sich Ihre DLL-Dateien an einer Stelle befinden, die normalerweise nicht auf dem Java/Tomcat-Pfad liegt, und Sie haben einige manuelle Ergänzungen/Änderungen an startup.bat oder catalina.bat vorgenommen, um sie Tomcat zur Verfügung zu stellen? In diesem Fall müssen Sie die Optionen für den Dienststart ändern, um sie auch dort zu definieren.

Navigieren Sie an einer Eingabeaufforderung zum tomcat-bin-Ordner. Führen Sie den Befehl tomcat6w.exe // MS // servicename (ersetzen servicename mit dem Namen Ihres Dienstes), um den Dienstdialog zu öffnen. Klicken Sie auf die Registerkarte Java und dort können Sie sehen, wo Sie zusätzliche Optionen definieren können, die beim Start an den Dienst übergeben werden. Sie müssen wahrscheinlich einen Wert für java.library.path definieren, um auf den Ordner zu verweisen, in dem sich Ihre DLLs befinden.

Tipp: Benennen Sie die Datei tomcat6w.exe servicename.exe (als Ersatz für service mit dem Namen Ihres Service) zu sein, und Sie können dann doppelklicken Sie einfach auf den Service-Dialog aufzurufen.

+0

Ich habe versucht, in Classpath hinzugefügt, aber es hat nicht funktioniert – Ash

+0

Ich hatte keine Probleme mit DLLs und Tomcat zuvor, so dass ich nicht sicher bin, die Antwort. Offensichtlich gibt es einen Einstellungsunterschied (wahrscheinlich Pfade, vielleicht JDKs) zwischen der Ausführung Ihres Tomcat von startup.bat und als Dienst. Also, wenn Sie herausfinden können (fügen Sie eine JSP mit einigen out.println Befehlen hinzu oder untersuchen Sie die Protokolle), was die Werte für Dinge wie PATH, CLASSPATH, java.library.path usw. in beiden Systemen sind, und Sie werden einen Unterschied sehen . Irgendein Pfad irgendwo in der startup.bat-Version bezieht sich auf einen Ort, an dem sich Ihre DLL befindet und offensichtlich hat die Service-Version diesen Ort nicht im korrekten Pfad. –