Olá pessoal,
meu estágio é pra dar manutenção de um sistema.
É a primeira vez que mexo com algo que preciso ir pra um servidor. MInha experiencia passada eu soh usava o tomcat pra rodar as aplicações.
Aqui no servidor da empresa está localizada a pasta do projeto web que já foi desenvolvido.
Minha dúvida é, caso eu queria mudar alguma servlet ou qualquer outra funcionalidade do tipo, é só eu pegar .class da classe que foi alterada e jogar no servidor? (na pasta onde o antigo que foi atualizado estava).
abrasss
Vamos lá…
Quando você está desenvolvendo e vai realizar um teste, a IDE que utiliza (seja qual for) gera um arquivo WAR e disponibiliza ele na pasta webapps (caso do Tomcat). Como o servidor está rodando, ele automaticamente “desempacota” o conteúdo desse WAR, lê os arquivos de configuração (XMLs existentes em WEB-INF) e disponibiliza o acesso ou gera erro.
Supondo que você pegue um .class dali, modifique e jogue ali novamente. Há uma grande chance de dar erro.
Qual a forma correta?
Na maioria das empresas é utilizado algum servidor de controle de versão, assim como uma ferramenta para isto (SVN, Subversion, CVS, etc).
Além do WAR existe um outro tipo de “empacotamento”, o EAR, “consumido” por outros tipos de servidores (naverdade, application servers, como WebLogic, WebSphere, JBoss).
O mais correto é fazer as alterações necessárias e, assim que concluir, refazer o deploy no servidor em questão.
[quote=skaterzin]Olá pessoal,
meu estágio é pra dar manutenção de um sistema.
É a primeira vez que mexo com algo que preciso ir pra um servidor. MInha experiencia passada eu soh usava o tomcat pra rodar as aplicações.
Aqui no servidor da empresa está localizada a pasta do projeto web que já foi desenvolvido.
Minha dúvida é, caso eu queria mudar alguma servlet ou qualquer outra funcionalidade do tipo, é só eu pegar .class da classe que foi alterada e jogar no servidor? (na pasta onde o antigo que foi atualizado estava).
abrasss
[/quote]
Depende do container em uso…tem alguns que possui um recurso chamado HOT-DEPLOY!
Esse recurso consegue atualizar o war quando vc joga algum recurso dentro dos diretórios do WAR.
Consulte o doc do seu provedor de container para saber das implicações da uso continuo disso.
[quote=drsmachado]Vamos lá…
Quando você está desenvolvendo e vai realizar um teste, a IDE que utiliza (seja qual for) gera um arquivo WAR e disponibiliza ele na pasta webapps (caso do Tomcat). Como o servidor está rodando, ele automaticamente “desempacota” o conteúdo desse WAR, lê os arquivos de configuração (XMLs existentes em WEB-INF) e disponibiliza o acesso ou gera erro.
.[/quote]
Isso eu sabia, porém não sei como que o tomcat ta aqui nesse trem.
Eu abro o servidor pelo executar aqui e dentro dele há várias pastas, sendo que uma delas é o do meu projeto.
Usando um cvs, assim q eu alterar um arquivo.java, será alterado o .class dele no servidor?
[quote=skaterzin][quote=drsmachado]Vamos lá…
Quando você está desenvolvendo e vai realizar um teste, a IDE que utiliza (seja qual for) gera um arquivo WAR e disponibiliza ele na pasta webapps (caso do Tomcat). Como o servidor está rodando, ele automaticamente “desempacota” o conteúdo desse WAR, lê os arquivos de configuração (XMLs existentes em WEB-INF) e disponibiliza o acesso ou gera erro.
.[/quote]
Isso eu sabia, porém não sei como que o tomcat ta aqui nesse trem.
Eu abro o servidor pelo executar aqui e dentro dele há várias pastas, sendo que uma delas é o do meu projeto.
Usando um cvs, assim q eu alterar um arquivo.java, será alterado o .class dele no servidor?[/quote]
Sim…o tomat faz sim…eu uso direto.
Na versão 6x tem umas questões de gastos de memoria…mas na versão 7 ja foi corrigido.
Vale lembrar que quando vc atualiza um recursos…todas as sessões existente serão descartadas…e vc deve tratar corretamente isso na sua solução.
Cara, se bem entendi, queres saber uma forma de atualizar tua Aplicação em um Servidor remoto sem ter que parar a aplicação ??? É isso ???
Bom, normalmente em clientes que já prestei consultoria, o cara possuia uma máquina servidora onde só ele tinha o poder de alterar, eu como mero mortal, gerava um novo .war ou .ear (dependendo da app e do server) e eles atualizavam lá…
Localmente, o Tomcat atualiza pra ti, logo não precisas se preocupar, a nível de produção, a menos que tenha uma restrição muito grande, aconselho a parar o serviço e mandar um novo arquivo para deploy… enfim… precisaria saber sua real dúvida e o cenário do seu cliente.
Abs [] e sucesso na solução…
Como disseram, geralmente as empresas tem algum controle de versão (SVN).
Quando vc faz um “commit”, as alterações que você fez “alimentam” o que esta no servidor.
Na empresa onde trabalho, além do SVN, usamos tbm o ‘Ant’. Fazemos o deploy por ele, testamos, depois “comitamos”.
Verifica como é o padrão de desenvolvimento na sua empresa. =)
[quote=Mstanguine]Como disseram, geralmente as empresas tem algum controle de versão (SVN).
Quando vc faz um “commit”, as alterações que você fez “alimentam” o que esta no servidor.
Na empresa onde trabalho, além do SVN, usamos tbm o ‘Ant’. Fazemos o deploy por ele, testamos, depois “comitamos”.
Verifica como é o padrão de desenvolvimento na sua empresa. =)
[/quote] Bom, uso o SVN somente para repositório de códigos.
Acho que a dúvida dele é mais sobre atualizar a versão da aplicação, não do código…
Se quiser fazer as 2 coisas, pode começar a verificar o uso de uma ferramenta de Integração Contínua… Recomendo o Jenkins.
Abs []
EH pq eh assim pessoal,
esse eh o primeiro estagio em que eu mexo com uma aplicacao que ja ta num servidor.
Aí eu entrei e to meio perdido pq não sei como farei na hora q precisar atualizar alguma funcionalidade.
um ex pra vcs terem ideia.
Numa selecao numa jsp lá não há o botao de deletar, entao digamos que eu precise implementá-lo.
Eu vou trocar uma servlet lá e talz, depois q eu fizer isso vou ter q fzer um .war e mandar todos os arquivos pro servidor, mesmo aqueles que nao foram alterados?
eu n acho as pastas do tomcat la no servidor, apenas a pasta do meu projeto e de mais outros la q não estao relacionados.
Minha maior dúvida é… por que não abriu a dúvida no fórum de web?
Nem tudo é Java Básico.
Tópico movido.
Engano meu hehe,
mas alguem tem ideia disso ai que eu falei por ultimo?