Instalando Solr em um servidor tomcat hospedado
-
07-07-2019 - |
Pergunta
Eu tenho instalado e configurado tomcat + Solr na minha máquina linux pessoal e janelas também. Eu era capaz de levá-los a trabalhar bem. Eu sou muito novo para Java e como funciona a estrutura de arquivo. (Ou seja, saber onde colocar os arquivos de guerra e que WEB-INF é) Então agora que estou pronto para instalar Solr e configurá-lo em meus clientes plano de hospedagem compartilhada, as direções são diferentes do que eu fiz antes. Eu não quero estragar isso e, aparentemente, o servidor reinicia diária e eu não acho que posso fazer isso manualmente, o que significa que eu tenho uma chance de isso todos os dias.
Aqui está as instruções para a instalação de um servlet tomcat em seu provedor de hospedagem: http://www.apluskb.com/scripts/Where_do_I_put_my_answer1186.html
Como você pode ver eu preciso instalar Solr no diretório html / WEB-INF, mas ler o que diz .. é muito confuso:
"Todos os Servlets devem ser carregados na / html / WEB-INF / classes diretório. Quaisquer classes personalizadas descompactado e os recursos devem ser carregados nos / html / WEB-INF / classes diretório, enquanto as classes e recursos embalado em Jar arquivos devem ser enviados para / html / WEB-INF / lib . "
uhh ... então qual é? /Aulas? ou / lib? Eu não acho que eles explicam que muito bem e eu estou um pouco confuso com essa afirmação. Também o que exatamente eu instalo? Com instalar um Solr normal, Solr é colocado em outro lugar, o arquivo de guerra é copiado para tomcat e no resto do Solr é referenciado usando algum tipo de arquivo de configuração XML.
Além disso, desde que eu sou um pouco novo para Java e servlets, alguém pode explicar a estrutura do arquivo tomcat para mim (em grande detalhe vai definitivamente ter um +1 de mim) e onde as coisas devem ir e por quê?
Agradecemos antecipadamente!
Solução
estrutura de aplicativo da Web é definido pela J2EE spec, não é limitado (ou específica) para Tomcat per se. Aqui é um detalhado tutorial cobrindo seu layout. Resumidamente, no entanto, é a seguinte:
- Há uma base (raiz, em casa, o que você quiser chamá-lo) pasta que serve como raiz do aplicativo web, tudo o resto vai sob ele.
- Todo o material pública (html, imagens, CSS, javascript, JSP, o que você tem) vai sob essa pasta (diretamente ou através de subpastas).
- Há uma pasta especial, também localizado diretamente na raiz, chamado
WEB-INF
. Ele contém o material não pública, como descrição do aplicativo (web.xml
), classes (que vão para a pastaWEB-INF/classes
), bibliotecas (WEB-INF/lib
) e, possivelmente, os arquivos de configuração. - A aplicação pode ser implementada utilizando a estrutura expandida acima ou como WAR (arquivo de teia) que é basicamente um arquivo que continha tudo acima iniciando a nível pasta raiz (mas não incluindo a raiz).
A distinção entre pastas classes
e lib
é simples: todas as bibliotecas embalados (arquivos JAR) necessidade de entrar em lib
; todas as classes não embalados (e arquivos de recursos que precisam ser no classpath) tem que ir para classes
preservando sua estrutura de diretório (classe por exemplo com.mypackage.Blah
deve entrar em classes/com/mypackage/
)
No seu caso, parece que você só pode ter aplicação um web implantado e tem que ser implantado para a pasta /html
. Se você estiver implantando um arquivo de guerra, é preciso extraí-lo para esse diretório (por exemplo, a partir de dentro que /html
pasta jar xvf solr.war
corrida ou seja lá o que é chamado).