Java >> Java opplæring >  >> Tag >> Tomcat

Hvorfor liker tomcat å slette filen context.xml?

Løsning 1:

Raskt sammendrag :det er flere betingelser (som å endre krigsfilen, slette webappen eller erstatte den med nytt innhold) under hvilke tomcat vil avinstallere konteksten, inkludert fjerning av kontekstfilen.

Detaljer :Hvorvidt tomcat gjør autoDeployment eller ikke (betyr å se etter endringer i .xml-beskrivelsen din samt sjekke endringer i webapp-katalogen) er drevet av:

  1. server.xml lokalisert i $CATALINA_HOME/conf/server.xml-delen:

    autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

  2. Du kan også angi denne egenskapen i kontekstfilen din og overbelaste verdien

Siterer dokumentet for tilfeller der autoDeploy=true kan føre til fjerning av kontekstfilen din:

  • Sletting av en WAR-fil vil utløse en uimplementering av applikasjonen med fjerning av eventuelle tilknyttede utvidede kataloger, kontekstfiler og arbeidskatalog.
  • Sletting av en katalog vil utløse en uimplementering av applikasjonen med fjerning av tilknyttede kontekstfiler og arbeidskatalog.
  • Oppdatering av en WAR-fil vil utløse en undistribusjon av applikasjonen med fjerning av tilhørende utvidet katalog, kontekstfil og arbeidskatalog.
  • Oppdatering av en katalog (ikke kataloginnholdet) vil utløse en uimplementering av applikasjonen med fjerning av tilhørende kontekstfiler og arbeidskatalog.

Utømmende detaljer :http://tomcat.apache.org/tomcat-6.0-doc/config/host.html#Automatic%20Application%20Deployment

Løsning 2:

Hvis du ikke vil ha autoDeploy funksjon, i produksjonsmiljøer for eksempel, kan du vurdere følgende attributter i kontekstfilen conf/Catalina/localhost:

  • autoDeploy="false"
  • og deployXML="false"

autoDeploy="false" fungerer kanskje ikke alene fordi applikasjonen context.xml (i META-INF) kan overstyre server.xml-innstillingene for autoDeploy.

  • Appens META-INF/context.xml vil bli brukt i utviklingsmiljøet, med autoDeploy
  • Conf/Catalina/localhost-konteksten i produksjon, uten autoDeploy.

deployXML-attributtdokumentasjon attributtdokumentasjon er verdt å lese (§ Standardimplementering).

Uttømmende autoDeploy-brukertilfelle, og når konteksten er fjernet:dvs. applikasjon ikke implementert, kan brukertilfelle dokumenteres her.

Løsning 3:

Kan ikke svare på Hvorfor bit.

Denne lenken sier imidlertid at du kan stoppe dette ved å angi autoDeploy="false" i server.xml


Java Tag