JBoss + Tomcat

19 respostas
le-silva

Mais dúvidas! :?: :wink: :?: :wink: :?:

O meu problema tá sendo o seguinte…

Estou rodando o “jboss-3.0.3_tomcat-4.1.12”. Fiz o deploy de um SessionBean e acessei ele através de um programinha de console sem problema algum. Porém, o serviço web (Tomcat) eu não consigo acessar!

Quando eu faço uma requisição http pelo browser, eu recebo a seguinte mensagem de erro: “The server encountered an internal error (No Context configured to process this request) that prevented it from fulfilling this request”.

Alguém pode me ajudar?

Agradeço

:smiley:

19 Respostas

urubatan

este erro quer dizer que você não fez o deploy da sua aplicação web, ou então que esta escrevendo o nome dela errado :slight_smile:

como fez o deploy da aplicação web?? foi com um arquivo war??
se sim, tente acessar:
http://localhost:8080/nomedowarsemextencaowar

deve funcionar :slight_smile:

le-silva

Cara, legal, agora funcionou!

Só que tem mais um probleminha… :roll: …agora o JBoss não criou a referencia JNDI pro meu SessionBean, ou seja, não consigo acessa-lo!

O que eu faço agora? Tenho que ter uma .jar (como eu tinha antes) pros EJB’s e um .war pras JSP’s/Serlets?

Valeu!

R

Vc faz o deploy dos JARs com os EJBs e os arquivos de deploy para o diretório deploy do JBOSS, sua página jsp é um cliente que fica no container dela, webapps.

urubatan

exatamente, tem que ter um .jar para os EJBs e um war para os servlets, e se você quiser fazer o deploy de um arquivo só, pode colocar estes dois dentro de um .ear
:slight_smile:
só que não sei exatamente que informações tem que ter dentro do ear :frowning:
vou pesquisar e respondo depois :slight_smile:

R

No BES(servidor da Borland )geramos um EAR que contem um descritor informando onde fica os wars, jars e um monte de configurações do BES. Para o JBoss nunca fim um EAR.

urubatan

o EAR é um formato padrão, o EAR que você utilizar em um servidor tem que funcionar em qualquer outro (lógico, com exceção dos arquivos padrão do servidor como jboss.xml que pode ser utilizado pelo jboss para setar algumas propriedades extras, mas o “standard” funciona em todos)

le-silva

Galera, obrigado!

Agora estou entendendo melhor essa sopa de letrinha de extenções de arquivos…

Obrigado a todos!

R

Isso eu entendo, o que quero dizer é que nunca fiz um deploy de um EAR no JBoss e tb nunca usaei o JBoss com Tomcat, uso ele com o Jetty mesmo que é a versão padrão.

le-silva

Sabe o que tá acontecendo?

Eu não consigo acessar nenhuma página no Tomcat, nem as do site ROOT. Se eu subir só o Tomcat, aí dá pra acessar, mas, se subir o JBoss, aí dá aquela mensagem de erro que eu citei acima. No console do JBoss eu vi que ele tá recebendo as requisições HTTP, mas, só pau!

:slight_smile:

le-silva

E tem mais…

Aqui no meu trabalho, eles barraram todas as url’s que contém “jboss”, aí eu não consigo pegar nenhuma documentação na web.

É cada uma, né?

:roll:

L

As aplicacoes de demonstracao abaixo do subdiretorio do tomcat na distribuicao JBoss+Tomcat (ex: Root, examples, etc) nao ficam “disponiveis” para acesso, pois quem faz o deploy das aplicacoes no web container é o JBoss, e as web apps (.war, .ear) devem estar em $JBOSS_HOME/server/(default|minimal|all)/deploy.

le-silva

Então, obrigatoriamente eu tenho que criar um .war pra cada webapp? O JBoss é quem copia o .war lá pro “(tomcat)/webapps”?

L

Sim, deve ser criado um .war (ou .ear, .sar) para cada aplicacao web no JBoss. O JBoss faz o deploy e “descompacta” a aplicacao web no diretorio $JBOSS_HOME omcat-4.1.xworkMainEngine (pode verificar que ao subir o JBoss, sao copiados o invoker e o jmx-console neste dir). O diretorio tomcat/webapps nao eh utilizado pelo JBoss e acredito que so deve existir pq vem na distribuicao padrao do Tomcat.

le-silva

Pô, legal saber disso!

Mas, me dê uma dica: como organizo o meu ambiente de desenvolvimento?

Se eu estiver trabalhando com mais 3 pessoas (2 programadores e 1 designer), como nós fazemos pra testar o que estamos fazendo? Todas as vezes que alterarmos alguma coisa temos que fazer um novo deploy, ou tem algum mascete pra não precisar fazer isso?

Desde já, agradeço a todos que tem me ajudado…

L

Bom, depende muito da distribuicao das tarefas no projeto e do tamanho do projeto e da equipe. Se vc tiver disponibilidade para instalar um JBoss para cada desenvolvedor trabalhar localmente, fazendo testes unitarios e depois integrando seu codigo em um servidor JBoss centralizado, seria melhor. Os desenvolvedores podem fazer hot-deploy tambem, ou seja, alterar as classes diretamente no diretorio de deploy do JBoss (neste caso, o .war deve estar na estrutura de diretorios e nao compactado), mas particularmente, nao acho este processo muito eficiente.
Uma ideia inicial para um ambiente de desenvolvimento seria este :

  • Cada desenvolvedor trabalhar com seu proprio JBoss.
  • Utilizar Ant para fazer compilacao, empacotamento, testes unitarios (via JUnit, por exemplo) e deploy no JBoss local.
  • Uma vez que os testes unitarios estejam ok, fazer uma integracao deste codigo via Ant em um servidor JBoss para testes integrados de toda a aplicacao.

Se vc quiser mais referencias sobre esta forma de desenvolvimento, tem um artigo interessante do fowler em http://www.martinfowler.com/articles/continuousIntegration.html.

le-silva

Boa dica, valeu!

R

Ola pessoal !!!

Sou iniciante em J2ee e estou analizando os exemplos do tutorial do j2ee.
mas nao encontrei como fazer para rodar a aplicação em varias máquinas .
pergunto o seguinte : Em qual método eu informo o IP das máquinas que compõe a aplicação ?

Um abraço a todos !!

Renato

urubatan

como assim, rodar em varias maquinas???
quer fazer um cluster com o teu App Server??

se for o JBOss, é só habilitar o cluster nele, e setar uma propriedade no arquivo jboss.xml da tua aplicação dizendo queis os beans devem ser clusterizados e pronto, os servidores estando na mesma rede lógica, eles se encontram sozinhos, você pode adicionar mais um quando todos ja estiverem rodando, remover um deles, …

para habilitar o clustering do jboss, basta copiar para o diretório deploy do server que você esta rodando (se não sabe qual é, deve ser o default :slight_smile: ) o arquivo
cluster-service.xml

e se quiser cluster do serviõ web do jboss também, é só copiar também o arquivo: jbossha-httpsession.sar

eles estão disponiveis no diretório $JBOSS_HOME\server\all\deploy

ahh, e para quem quer saber por que nas minhas mensagens aparece a “barra” é só colocar de duas em duas :slight_smile:

A

Olá pessoal,

Estou com um probleminha…
Depois que criei o meu arquivo ear, com um jar e um war vou rodar a aplicação http://localhost:8080/Console que é o meu contexto dá o seguinte erro:
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: -1 in the jsp file: null

Generated servlet error:

E:jboss-3.0.4_tomcat-4.1.12	omcat-4.1.xworkMainEnginelocalhostConversorindex_jsp.java:7: . expected

import ConversorMoedas;

^

E:jboss-3.0.4_tomcat-4.1.12	omcat-4.1.xworkMainEnginelocalhostConversorindex_jsp.java:8: . expected

import ConversorMoedasHome;

^

E:jboss-3.0.4_tomcat-4.1.12	omcat-4.1.xworkMainEnginelocalhostConversorindex_jsp.java:18: cannot resolve symbol

symbol  : class ConversorMoedas

location: class org.apache.jsp.index_jsp

private ConversorMoedas conversor_moedas = null;

^

Estes arquivos eu já coloquei dentro do war, no root, no WEB-INF, em WEB-INF/classes e ainda assim ele diz que não consegue importar e daí???

alguma sugestão?

Muito obrigado…

Criado 5 de fevereiro de 2003
Ultima resposta 18 de fev. de 2003
Respostas 19
Participantes 6