O JBoss AS 7 é um servidor de aplicações que implementa parte da especificação Java Enterprise Edition 6. É um servidor rápido, leve e poderoso. A versão atual (7.0.1) já implementa completamente o Web Profile do JEE 6.
Para iniciar com JBoss, o primeiro passo é realizar o download. Acesse http://www.jboss.org/jbossas/downloads/ e efetue o download do arquivo. Você terá três opções: Web Profile Only (Java EE6 Certified), Everything (NOT Java EE6 Certified) e Quick Starts. O Quick Starts vem com exemplos de códigos a serem executados no JBoss. A primeira opção é só o Web Profile, que é mais que suficiente para várias aplicações. Já vem com Servet 3.0 JSF 2.0, EJB 3.1 (lite), JPA 2.0. A opção Everything, vem com tudo do Web Profile e mais uma parte de JMS e Webservices. Abaixo temos uma tabela obtida do site do JBoss com os recursos de cada versão:
Para instalar, basta descompactar o arquivo. No meu caso, vou utilizar a versão completa. Dentro do diretório, temos a seguinte estrutura:
- bin: Scripts de inicialização e configuração
- bundles: Localização dos pacotes OSGi
- docs: Licenças e definições dos XML Schemas (XSD) utilizados
- domain: Arquivos de configuração, deployments, bibliotecas externas (lib/ext) utilizadas por todo o JBoss (domain)
- modules: Módulos utilizados pelo servidor
- standalone: Arquivos de configuração, deployments, bibliotecas utilizadas por um server
- welcome-content: Conteúdo padrão para a página de boas vindas (/)
No diretório standalone ficarão suas aplicações e configurações de um único server. A estrutura de diretórios dele é auto-expicativa: configuration, para as configurações, data para dados persistentes (sobrevivem após o restart), deployments para suas aplicações, lib para bibliotecas, log para logs 🙂 e tmp são os arquivos temporários.
Para subir um server já temos algumas configurações pré-definidas dentro da pasta configurations em standalone. São 3 arquivos na minha versão:
- standalone.xml: Profile padrão com a especificação JEE 6 + JCA 1.6, RESTFul Web Services
- standalone-ha.xml:Profile com suporte à clustering - alta disponibilidade
- standalone-xts.xml: Profile com suporte à transação em Web Services. Mais informações nesse link
O modo standalone no JBoss é semelhante ao que se fazia nas versões anteriores. No JBoss AS 7.0, há um conceito novo: domain, que é um conjunto de servers que podem ser administrados de um único ponto.
Para iniciar o domain com o profile padrão, acesse a pasta $JBOSS_HOME/bin e execute o comando: ./domain.sh
Para iniciar como server standalone, execute o comando: ./standalone.sh
No windows, basta mudar a extensão sh para bat. Caso deseja iniciar com outro profile é só passar o parâmetro: "--domain-config=nomeDoProfile.xml" para o modo domain ou "--server-config=nomeDoProfile.xml" para o modo standalone. A saída deverá ser algo parecido com isso:
========================================================================= JBoss Bootstrap Environment JBOSS_HOME: /development/servers/jboss-as-web-7.0.1.Final JAVA: java JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman ========================================================================= 19:25:58,953 INFO [org.jboss.modules] (main) JBoss Modules version 1.0.1.GA 19:25:59,449 INFO [org.jboss.as.process.Host Controller.status] (main) Starting process 'Host Controller' [Host Controller] 19:25:59,674 INFO [org.jboss.modules] (main) JBoss Modules version 1.0.1.GA ...
O novo JBoss AS 7 é muito rápido.. por isso o nome "Zap" para a versão 7.0.1. Na minha máquina ele startou em menos de 3 segundos no modo domain.
JBoss AS 7.0.1.Final "Zap" started in 2842ms
E menos de 2 segundos no modo standalone.
JBoss AS 7.0.1.Final "Zap" started in 1956ms
Para verificar se deu tudo certo, acesse a página de boas vindas: http://localhost:8080 no modo standalone. Você terá o seguinte:
Para acessar o console, onde você pode configurar os datasources e realizar deploy, utilize a seguinte URL: http://localhost:9990/console
Em breve mais posts com o JBoss AS 7
Olá Thiago,
Sou ex-aluno da Fatec me formei agora no meio do ano, e estou trabalhando com desenvolvimento, mas a base que agente tem da faculdade é mto pouca pra ja entrar de cabeça assim então estou apanhando um pouco.
Estou trabalhando em um sistema de ensino (cursos online) e preciso criar um chat.. porém não sabia nem por onde começar, então pesquisando descobri a API JMS e com alguns turotiais consegui fazer funcionar apenas no console usando ActiveMQ, mas preciso que isso rode apartir de uma interface, e estou usando JSP, Servlet e o Tomcat 7 mas não tive sucesso, na hora de instanciar o TopicConnectionFactory ele da um erro dizendo que TopicCF não é obrigatorio nesse contexto então voltei a pesquisar e algumas pessoas falaram que o Tomcat não suporta JMS mas fiquei meio sem intender pq na verdade quem ta rodando o JMS é o ActiveMQ e não o Tomcat, mas enfim descobri que o JBoss é bem melhor e ja tem td o que eu preciso como vc citou no seu post. Queria saber se vc ja usou o JMS com JBoss se vc tem algum post ou material pra me orientar nesse sentido, que como eu disse não conheço nenhum do dois direito ainda estou aprendendo por isso estou meio perdido.
E também se JMS é realmente a melhor opção pra fazer o chat ou se tem algo melhor?
A configuração do JBoss é so isso msm que vc explicou no post? baixei a opção Everything creio que preciso usar o modo standalone sim?
Bom por enquanto é só tudo isso.. rsrs
desde já obrigado pela ajuda!!
No meu caso eu usaria socket pra fazer um chat em uma aplicação standalone e um server... JMS é meio pesado e mais trabalhoso para você fazer um chat... você acha que compensa?
Eh eu vi algumas opções com socket e thread mas achei que fosse ser mais complicado, porém não tenho experiência com nenhuma das duas formas por isso pedi sua opinião..
ahh que legal.. descobri que o NB 7 não tem suporte para JBoss AS 7.. e aii tem que voltar por 6 mesmo??
Monitore essa task: http://netbeans.org/bugzilla/show_bug.cgi?id=200132
A principio você pode desenvolver sem configurar o JBoss no netbeans e fazendo o deploy "na mão".
Thiago, sobre o chat que haviamos comentado, estou fazendo com socket como vc sugeriu, com uma classe servidor e uma classe cliente implementando threads, no padrão que se encontra mto por ai.. mas como eu disse estou fazendo em uma aplicação web com servlet e jsp dai tenho que chamar a classe servidor pela servlet mas essa classe tem um while que fica aguardando a conexão de um cliente então ele trava a execução pq ele fica num loop infinito e eu naum consigo instanciar o cliente. se eu coloco um main nessas classe e as executo manualmente funciona no console, mas não é isso que eu preciso..
Servidor:
public static void main(String[] args) throws IOException {
// inicia o servidor
new chatServidor(12345).executa();
}
public chatServidor (int porta) {
this.porta = porta;
this.clientes = new ArrayList();
}
public void executa () throws IOException {
ServerSocket servidor = new ServerSocket(this.porta);
System.out.println("Porta 12345 aberta!");
while (true) {
// aceita um cliente
Socket cliente = servidor.accept();
System.out.println("Nova conexão com o cliente " +
cliente.getInetAddress().getHostAddress()
);
// adiciona saida do cliente à lista
PrintStream ps = new PrintStream(cliente.getOutputStream());
this.clientes.add(ps);
// cria tratador de cliente numa nova thread
TrataCliente tc = new TrataCliente(cliente.getInputStream(), this);
new Thread(tc).start();
}
}
Vc sabe o que posso fazer pra resolver esse problema? tem uma semana que estou quebrando a cabeça com isso e não consigo..
Você não precisa chamar o servidor de uma servlet...
O servidor você tem que chamar standalone e dentro de um tread. Se ele for dentro de uma thread a sua aplicação não trava.
Vlw Thiago, vlw msm.. consegui fazer rodar!! Ufa...
Oii Thiago, desculpa ta te encomodando de novo, mas tenho mais uma dúvida e vc ta me ajudando bastante..
Tem como fazer um BufferedReader, Scanner ou alguem da classe IO receber uma variavel String ao invés de um System.in (teclado) ou um arquivo de texto?
pq preciso pegar o que o usuario digitou na tela (campo de texto do formulario)!
obrigado!
Assim?
new BufferedReader(new StringReader("Sua String"));
Olá Thiago, boa tarde.
Antes de tudo, quero te parabenizar pelo post. Muito boa a tua iniciativa.
Agora, preciso de uma ajuda sua, caso seja possível. Tive de realizar a troca do servidor de aplicação web de JBoss6 para JBoss7, então me deparei com os seguintes problemas: nas versões 7.0.0Final e 7.0.1Final (não importa se web ou não) minha aplicação (que funciona perfeitamente no JBoss6) encontra um erro na classe sun.font.FontManager (que pertence ao próprio JDK), dizendo que não é possível encontrar esta classe. Então, passei a utilizar a versão 7.0.2, a qual me apresentou outro erro:
Cannot instantiate component of type org.richfaces.panel.
Apesar das libs estarem dentro do projeto, de forma correta, existe algum problema ao tentar ler os componentes na página, causando esse erro. Em qualquer componente Richfaces/Ajax ele apresenta este erro.
Alguma sugestão do que pode ser??
Agradeço a ajuda.
Olá Kleber,
Esse erro é referente à incompatibilidade da implementação do richfaces que você está usando com a lib que vem no JBoss. Você sabe qual versão está utilizando?
Olá Thiago, bom dia.
Obrigado por responder.
Eu utilizo a versão 3.3.3 Final do richfaces, que é compatível com JSF1.2. Pensei em utilizar a versão 4Final, mas na documentação diz que não é compatível com JSF1.2. Penso que realmente deve ser alguma incompatibilidade entre alguma lib nativa do JBoss7.0.2 com as libs do meu projeto, mas ainda não consegui identificar qual delas está dando este problema.
Olá thiago.
bem olhei seou blog aki, e achei interessante o post.
nunca usei o jboss e gostaria de saber....
no site pra download tem o Web Profile Only (Java EE6 Certified), Everything (NOT Java EE6 Certified) ...
oq eles querem dizer com "NOT Java EE6 Certified)?
qualquer coisa me responda por email
abraços
Significa que no pacote Everything tem recursos que não seguem o padrão JEE 6.
Thiago, não consigo logar na parte de administração 9990, eu criei o usuário com o script add-user.sh mas ao logar ele não dá erro nenhum só que não entra, volta para a tela de senha.
tem que fazer alguma liberação desse usuário que criei?
valeu.
Cria um novo usuário para teste e monitora o arquivo de log.
Bom dia Thiago, tudo bem? Estou utilizando o Jboss na minha maquina, windows 7 perfeitamente, porém fui tentar executá-lo em um windows server 2012 e não consegui. Sabe dizer se existe alguma limitação para esse SO? Parabéns pela página, está excelente!
Abs.,
Aparece algum erro?
Achei uma dica para executar o "Standalone" pelo prompt a apareceu o seguinte :
Calling: "C:\Program Files\jboss-as-7.1.1.Final\bin>standalone.conf.bat"
JAVA_HOME is not set. Unexpected results may occur. set JAVA_HOME to the directory of your local JDK to avoid this message. 'findstr' is not recognized as an internal or external command, operable program batch file.
Para rodar o jboss deve ser incluído algo na JAVA_HOME? pois o tomcat eu rodava de boa nessa mesma maquina.
Você precisa setar o JAVAHOME com a localização do seu java.
Meu amigo, era isso mesmo! Para minha surpresa a JAVA_HOME realmente não estava criada, não entendi como o tomcat funcionava!! Além disso tive que incluir a "C:\WINDOWS\system32" na variável Path. Fica a dica, caso alguém de um mole desses = a mim! Muito obrigado! Abs.,
Estou com o mesmo problema, mas quando executo o standalone.bat abre outra janela do terminal escrito : Calling: "C:\Program Files\jboss-as-7.1.1.Final\bin>standalone.conf.bat" e fecha rapidamente.
Consegue abrir o cmd e executar por ele, assim ele vai te exibir a mensagem de erro. Ou olhar o que aparece nos arquivos de log e me enviar?
olá
olá 🙂
Gostaria de saber onde fazer curso online de jboss administrator as7 249. Você daria o curso ou saberia indicar?
Desconheço.
Thiago,
O post é muito interessante e estou iniciando no mundo java com apenas 1 ano de desenvolvimento.
Estou usando o jboss 7.1.1 com algumas configurações já feita pela equipe anterior. Verificamos que o sistema fica oscilando com relação a performance passando momento lentos e outros parecendo um foguete. Está sendo usado jboss, Framework Spring, jsp e um Framework de interface bootstrap. Temos algumas cron executando durante o horário que o pessoal utiliza o sistema.
Terias alguma dica para melhorar a performance?
Teria algum software para que monitorasse e me disse o que realmente é?
Você pode alterar os parâmetros da JVM para melhorar o desempenho e utilizar ferramentas de profiling para saber onde está o problema