He leído sobre esto en la guía Tomcat here y algunas preguntas tan. Y creo que estoy haciendo lo mismo. Pero de alguna manera no puede lograr el éxito.¿Cómo establecer la ruta de contexto en Tomcat para poder ingresar al sitio sin agregar el nombre de la carpeta desplegada?
Antes que nada tengo que decir que mi aplicación se implementa en un servidor Tomcat compartido sobre el que no tengo control. Acabo de soltar mi archivo .war y se despliega.
Me trataron de empaquetar mi solicitud como ROOT.war pero no funcionó. El administrador me dijo que lo empaquetara como el nombre que quisiera y ellos se encargarían de eso. me he empaquetado como mi-application.war y se puso desplegado pero tengo que entrar en http://my-host/my-application para llegar a la página web.
Después de contactar con el administrador me dijeron que han puesto un elemnt contexto en mi anfitrión en el archivo de configuración de Tomcat como:
<Context path="" docBase="path of my-application deployed folder"/>
que debía establecer mi aplicación como aplicación por defecto para todas las solicitudes vienen a my-host
. Pero no fue así y siempre que entro http://my-host me sale:
HTTP Status 404 -/The requested resource (/) is not available
Pero de nuevo cuando entro http://my-host/my-application todo funciona bien. Cualquier sugerencia sobre lo que podría estar mal es definitivamente apreciada.
actualizaciones:
He intentado seguir los pasos descritos en la documentación de Tomcat en how to make the application default. Se describen 3 maneras y probé las tres formas y pude implementar mi aplicación como ROOT en localhost.
También traté de reproducir el problema que estoy enfrentando en el servidor remoto para poder encontrar el motivo y reportarlo al administrador. Encuentro un par de problemas.
- En server.xml fragmento que me envió administrador AutoDeploy y deployOnStartUp se establecen en true, mientras que deberían ser falsa si la definición explícita de elemento de Contexto en server.xml. Esto causará una implementación doble que crea una carpeta ROOT y una carpeta con el nombre del archivo .war. Al eliminar el .war se eliminará la carpeta correspondiente y se anulará la aplicación, pero ROOT permanece y se debe eliminar manualmente y requiere un reinicio de Tomcat. Hasta que se reinicie, cualquier implementación de ROOT.war fallará.
- Pensé que hay algunas razones que impiden la implementación de ROOT.war. Uno podría ser que un ROOT.xml existe en conf/{motor de nombre}/{host-name} o existe una carpeta raíz en AppBase del host o como he descrito anteriormente una aplicación raíz del despliegue anterior no es sin desplegar y requiere Tomcat reinicio .
De cualquier forma no pude determinar exactamente qué está impidiendo exactamente la implementación de ROOT.war, ya que requiere el acceso a los archivos de registro de Tomcat y los archivos conf para verificar los casos que describí anteriormente.
También, por lo que veo, mi administrador parece incapaz de mantener un servidor Tomcat y encontrar el problema. Así que decidí ir con un servidor Tomcat dedicado después de luchar con el servidor compartido.
¿Tomcat se usa de forma independiente y sirve HTTP o hay otro servidor manejando eso y comunicándose a Tomcat a través de AJP? Parece que hay algún hosting virtual en marcha. ¿Eso está definido en el 'server.xml' principal de Tomcat o hecho como un archivo de configuración específico del host separado bajo' conf/Catalina'? – laz
Acabo de intentar agregar la ruta de contexto al archivo server.xml de mi tomcat y me redirigió como un campeón. Todo lo que hice fue poner docBase = "mi-aplicación" y no una ruta absoluta ni nada de eso. En su código de ejemplo anterior, ¿eso es lo que significa "carpeta de ruta de mi aplicación desplegada"? –
Además, ¿tiene acceso al elemento completo que contiene el elemento ? Dependiendo de su configuración, puede evitar que la configuración de contexto funcione como era de esperar. –