Pregunta

También instalé y configuré tomcat + solr en mi máquina Linux personal y en Windows. Pude hacer que funcionaran bien. Soy muy nuevo en Java y cómo funciona la estructura de archivos. (es decir, saber dónde colocar los archivos de guerra y qué es WEB-INF). Ahora que estoy listo para instalar solr y configurarlo en el plan de alojamiento compartido de mis clientes, las instrucciones son diferentes de lo que hice antes. No quiero estropear esto y aparentemente el servidor web se reinicia a diario y no creo que pueda hacerlo manualmente, lo que significa que tengo una oportunidad todos los días.

Aquí están las instrucciones para instalar un servlet tomcat en su proveedor de hosting: http://www.apluskb.com/scripts/Where_do_I_put_my_answer1186.html

Como puede ver, necesito instalar solr en el directorio html / WEB-INF, pero lea lo que dice ... es muy confuso:

  

" Todos los Servlets deben cargarse en el directorio / html / WEB-INF / classes . Todas las clases y recursos personalizados desempaquetados se deben cargar en el directorio / html / WEB-INF / classes , mientras que las clases y los recursos empaquetados en archivos Jar se deben cargar en / html / WEB-INF / lib . "

uhh ... entonces, ¿cuál es? / clases? o / lib? No creo que lo expliquen muy bien y estoy un poco confundido por esta declaración. Además, ¿qué instalo exactamente? Con una instalación de solr normal, solr se coloca en otro lugar, el archivo war se copia en tomcat y se hace referencia al resto de solr utilizando algún tipo de archivo de configuración XML.

Además, dado que soy un poco nuevo en Java y en los servlets, ¿alguien puede explicarme la estructura del archivo tomcat (con gran detalle definitivamente obtendrá un +1 de mi parte) y dónde deberían ir las cosas y por qué?

¡Gracias de antemano!

¿Fue útil?

Solución

La estructura de la aplicación web está definida por la especificación J2EE, no está limitada (o específica) a Tomcat per se. Aquí hay un tutorial detallado que cubre su diseño. Brevemente, sin embargo, es como sigue:

  1. Hay una carpeta base (raíz, inicio, como se quiera llamar) que sirve como raíz de la aplicación web, todo lo demás se encuentra debajo de ella.
  2. Todas las cosas públicas (html, imágenes, CSS, javascript, JSP, lo que tienes) van debajo de esa carpeta (directamente o mediante subcarpetas).
  3. Hay una carpeta especial, también ubicada directamente debajo de la raíz, llamada WEB-INF . Contiene material no público, como descriptor de aplicación ( web.xml ), clases (que van a la carpeta WEB-INF / classes ), bibliotecas ( WEB- INF / lib ) y posiblemente archivos de configuración.
  4. La aplicación se puede implementar utilizando la estructura expandida anterior o como WAR (archivo web), que es básicamente un archivo que contiene todo lo anterior comenzando en el nivel de la carpeta raíz (pero sin incluir la raíz).

La distinción entre las carpetas classes y lib es simple: todas las bibliotecas empaquetadas (archivos JAR) deben ir a lib ; todas las clases no empaquetadas (y los archivos de recursos que deben estar en classpath) deben ir a classes preservar su estructura de directorio (por ejemplo, com.mypackage.Blah class debería ir a classes / com / mypackage / )

En su caso, parece que solo puede tener una aplicación web implementada y debe implementarse en la carpeta / html . Si está implementando un archivo war, debe extraerlo a ese directorio (por ejemplo, desde esa carpeta / html ejecute jar xvf solr.war o como se llame) .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top