Starten van Tomcat mislukt vanaf Netbeans

Ik heb een probleem met het starten van Apache Tomcat 6 vanuit Netbeans IDE 7.4 (in versie 7.3 had ik dezelfde problemen. Andere mensen zeiden dat dit probleem ook in andere versies bestaat, zoals 8.0 enz.).

Wat heb ik gedaan:

  • verwijder geïnstalleerde Tomcat 7 (zonder het te verwijderen, ik had dezelfde problemen)
  • nieuwe server toevoegen, gedownload van Apache Tomcat-website (versie apache-tomcat-6.0.39, met andere versie had ik dezelfde problemen)
  • mijn serverlocatie: D:\apache-tomcat-netbeans
  • systeemvariabele CATALINA_HOME: D:\apache-tomcat-netbeans
  • systeemvariabele JAVA HOME: C:\Program Files\Java\jdk1.7.0_51\
  • tomcat-gebruiker: ik heb netbeans een nieuwe gebruiker laten maken, genaamd tomcat met wachtwoord tomcat. Wanneer ik het bestand {tomcat}\conf\tomcat-users.xml open nadat ik de server heb toegevoegd, is er informatie over mijn gebruiker:

    < gebruikerswachtwoord=”tomcat” rollen=”manager,admin” gebruikersnaam=”tomcat”/ >

Toen ik nu op “start” klik, krijg ik “Starting of Tomcat failed“.

Mijn vermoedens:

  • Ik werk als beheerder aan Windows 7, dus ik denk dat dit geen probleem is met rechten voor bestanden.
  • Het uitschakelen van de proxy heeft niet geholpen.
  • Logs: er is maar één logbestand aangemaakt: localhost.2014-03-06.log en het is helemaal leeg.
  • Netbeans “als administrator” starten hielp niet.
  • Vanaf de opdrachtregel is alles in orde, ik heb geen problemen met opstarten in de normale of debug-modus (catalina.bat jpda startof startup.bat)

Antwoord 1, autoriteit 100%

Het is van invloed op ten minste NetBeans-versies 7.4 tot en met 8.0.2. Het werd voor het eerst gemeld vanaf versie 8.0 en opgelost in NetBeans 8.1. Het zou het probleem hebben gehad voor elke Tomcat-versie (bevestigd voor versies 7.0.56 tot en met 8.0.28).

Specificaties worden beschreven als Netbeans-bug #248182.

Dit probleem houdt ook verband met berichten die de volgende foutoutput vermelden:

‘127.0.0.1*’ wordt niet herkend als een interne of externe opdracht, bruikbaar programma of batchbestand.

Voor een kater die vanuit het zip-bestand is geïnstalleerd, heb ik dit opgelost door het bestand catalina.batin de map tomcat binte wijzigen.

Zoek de balgconfiguratie in uw catalina.bat-bestand.

:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
:noJuliManager
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"

En verander het zoals hieronder door de dubbele aanhalingstekens te verwijderen:

:noJuliConfig
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%

Sla nu uw wijzigingen op en start uw kater vanuit NetBeans.


Antwoord 2, autoriteit 48%

Dit heeft invloed op:

  • Alle versies van Tomcat vanaf 8.5.3 en later.
  • Alle versies van Netbeans tot 8.1 (dit is opgelost in Netbeans 8.2).

Dit komt omdat Netbeans niet ‘ziet’ dat de kater is gestart, hoewel hij prima is gestart.

Ik heb Bug #262749 bij NetBeansingediend.

Tussenoplossing

Voeg in het bestand server.xmlin het element Connectorvoor HTTP/1.1 het volgende kenmerk toe: server="Apache-Coyote/1.1".

Voorbeeld:

<Connector
  connectionTimeout="20000"
  port="8080"
  protocol="HTTP/1.1"
  redirectPort="8443"
  server="Apache-Coyote/1.1"
/>

Oorzaak

De reden daarvoor is dat vóór 8.5.3 de standaardinstelling was om de serverheader in te stellen als Apache-Coyote/1.1, terwijl deze standaard sinds 8.5.3 nu is gewijzigd in blanco . Blijkbaar controleert Netbeans deze header.

Misschien kunnen we in de toekomst een oplossing verwachten in netbeans om dit probleem op te lossen.

Ik heb het kunnen herleiden tot een wijziging in de documentatie.

Tomcat 8.5:

“Overschrijft de serverheader voor het http-antwoord. Indien ingesteld, wordt de waarde
want dit attribuut overschrijft elke Server-header die is ingesteld door een web
sollicitatie. Indien niet ingesteld, is elke waarde die door de toepassing is opgegeven:
gebruikt. Als de toepassing geen waarde opgeeft, dan is er geen server
koptekst is ingesteld.”

Tomcat 8.0:

“Overschrijft de serverheader voor het http-antwoord. Indien ingesteld, wordt de waarde
voor dit attribuut overschrijft de Tomcat-standaard en elke Server-header
ingesteld door een webapplicatie. Indien niet ingesteld, kan elke waarde gespecificeerd door de
applicatie wordt gebruikt. Als de toepassing geen waarde opgeeft, dan
Apache-Coyote/1.1 wordt gebruikt. Tenzij je paranoïde bent, heb je geen
deze functie.”

Dat verklaart de noodzaak om het serverkenmerk expliciet toe te voegen sinds versie 8.5.3.


Antwoord 3, autoriteit 13%

Het is ook zeer waarschijnlijk dat probleem met proxy-instellingen.

Iedereen die het startprobleem van Tomact niet heeft overwonnen, – probeer in NetBeans en kies Geen proxyin de Tools -> Opties -> Tabblad Algemeen.

Het heeft me geholpen.


Antwoord 4, autoriteit 9%

Geen van de antwoorden hier heeft mijn probleem opgelost (per februari 2020), dus ik heb een probleem gemeld op https://issues.apache.org/jira/browse/NETBEANS-3903en Netbeans hebben het probleem opgelost!

Ze werken aan een pull-verzoek, dus de oplossing zal binnenkort in een toekomstig .dmg-installatieprogramma staan, maar in de tussentijd kun je een bestand kopiëren waarnaar in de bug wordt verwezen en er een vervangen in je map met netbeans-modules.

Tip – als u met de rechtermuisknop op Toepassingen > Netbeans en kies Toon pakketinhoud Show Package Contentsdan kun je het bestand org-netbeans-modules-tomcat5.jarwaarnaar ze verwijzen in uw Netbeans-map, bijv. binnen /Applications/NetBeans/Apache NetBeans 11.2.app/Contents/Resources/NetBeans/netbeans/enterprise/modules


5, Autoriteit 2%

Ik had hetzelfde probleem, maar geen van de bovenstaande antwoorden werkte.
De oplossing voor mij was om de manager webapplicatie dat te herstellen is gebundeld met Tomcat.

Other episodes