Baixe o app para aproveitar ainda mais
Prévia do material em texto
TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 1 de 47 Aula 03 - Servidores de Aplicação Java Sumário 1. Servidores de Aplicação JEE ............................................................................... 0 1.1. Visão geral ...................................................................................................... 0 1.2. JBoss ............................................................................................................... 2 Instalação e Configuração ................................................................................ 2 Administração .................................................................................................. 3 JBOSS_HOME ..................................................................................................... 3 Testando a instalação ........................................................................................ 3 Configurações ................................................................................................... 3 Tunning ............................................................................................................ 4 Clusterização ................................................................................................... 4 Mensageria ...................................................................................................... 4 Implantação de ambientes, implantação em nuvem ....................................... 4 Monitoramento e principais problemas ............................................................ 5 Questões Comentadas – JBoss ............................................................................... 6 1.3. Tomcat .......................................................................................................... 24 Versões do Tomcat .......................................................................................... 24 Tomcat Deployer ............................................................................................. 25 Tomcat Manager .............................................................................................. 26 Funcionalidades avançadas ............................................................................ 26 Questões Comentadas - Tomcat .......................................................................... 28 TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 2 de 47 1.4. WebLogic ...................................................................................................... 45 Questões Comentadas - Weblogic ....................................................................... 48 2. Conclusão ........................................................................................................ 50 3. Bônus – Questões Conceitos JEE ...................................................................... 51 Questões Comentadas – Conceitos JEE ................................................................ 52 4. Referências ....................................................................................................... 55 Saudações, concurseiros! Nesta aula iremos trabalhar o servidor web Apache e os servidores de aplicação Java, com foco no JBoss, e com uma abordagem voltada para administração de sistemas. Conseguimos montar ao final uma boa bateria de exercícios que ilustrará para vocês os tópicos que têm sido cobrados nas provas. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 3 de 47 1. Servidores de Aplicação JEE 1.1. Visão geral Primeiramente temos que definir o que é um Servidor de Aplicação. Ele é um ambiente disponível para a instalação e funcionamento de aplicações desenvolvidas em uma determinada tecnologia. Ele gerencia alguns recursos do Sistema Operacional para uso das aplicações, como memória, armazenamento, comunicação de rede. Através dos servidores de aplicações, são providas funcionalidades como alta disponibilidade, balanceamento de carga e geração de logs, entre outros. O servidor como falamos, é uma implementação para rodar aplicações em uma determinada tecnologia. No caso dos servidores de aplicação Java EE, eles implementam a especificação deste modelo. Mas o que é o Java EE? A plataforma Java EE (Enterprise Edition - antigamente conhecida como J2EE, anteriormente ao Java 5). Java EE é uma plataforma aberta e baseada em padrões, para o desenvolvimento, implantação e administração de aplicações corporativas multicamadas, com suporte a web, centradas em servidores e baseadas em componentes. O Java EE é também considerado um superconjunto do Java SE (Standard Edition), pois suporta os recursos dele adiciona especificações, bibliotecas, documentação e ferramentas. Como algumas vantagens de o Java EE ser aberto e baseado em padrões, podemos citar: • Há uma única especificação, porém há várias implementações competindo; • Há implementações estão disponíveis tanto abertas/livres como produtos de finalidade corporativa; • Uma grande quantidade de recursos disponibilizados pela comunidade: livros, tutoriais, guias, exemplos; • Um grande número de desenvolvedores; • Portabilidade das aplicações. Nós falamos que há várias implementações de servidores de aplicação Java EE, vamos listar então algumas das soluções mais conhecidas: TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 4 de 47 • Apache Tomcat:projeto da Apache foundation (mesma do Apache Http Server) container de servlets e páginas dinâmicas JSP; • IBM Websphere: solução da IBM para servidor de aplicações web Java; • GlassFish: é um servidor open source de aplicações Java EE. Desenvolvido inicialmente pela Sun. • JBoss AS (Application Server): O JBoss é uma implementação open source da suíte de serviços Java EE. Ele é um ambiente de execução em servidor para aplicações Java avançado e muito extensível. Foi escrito em Java. Devido a comunidade JBoss ter implementado muitas soluções levando o nome de JBoss, para evitar confusão, o JBoss AS foi rebatizado recentemente para “WildFly”. Guardem esse nome, mas a probabilidade de isso cair em provas é pequena, a nomenclatura JBoss AS ainda é a mais usual. 1.2. JBoss 1.2.1. Instalação e Configuração • Primeiramente, antes da instalação, o administrador deve verificar os requisitos básicos para a instalação: espaço em disco e uma instalação do java funcionando no sistema. • Em sistemas 64-bit, é recomendável instalar a versão da JVM também 64-bit, pois esta melhora a performance do uso da RAM pelo servidor. • A instalação do JDK pode ser feita baixando diretamente o pacote na página da Oracle, ou através dos repositórios da distribuição Linux, quando disponível (através do apt- get no Debian ou yum no Red Hat). • Deve ser criada uma variável JAVA_HOME no ambiente, apontando para o diretório onde está instalado o JDK. O diretório padrão geralmente fica em /usr/lib/jvm/jdk1.x.x_xx Deve ser também atualizada a variável PATH adicionando o caminho $JAVA_HOME/bin para permitir a execução do binário java da instalação do JDK que lá se encontra, para uso do sistema na linha de comando. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 5 de 47 Veja um exemplo de como criar a variável apontando para um diretório onde se encontra a instalação e atualizar a variável PATH: export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_24 export PATH=$PATH:$JAVA_HOME/bin 1.2.2. Administração JBOSS_HOME Antes de rodar o JBoss, você precisa assegurar que configurou a variável de ambiente JBOSS_HOME no .bashrc (arquivo de configuração do shell de comandos, que carrega as variáveis do usuário). export JBOSS_HOME=/usr/jboss/jboss-<release> export PATH=$PATH:$JBOSS_HOME/bin Testando a instalação Para iniciar o servidor, abrimos o diretório de instalação do JBoss JBOSS_DIST/jboss- <release>/bin e executamos o script run.sh (no Linux) ou o run.bat (no Windows). Em seguida, basta acessar http://localhost:8080 no browser (contando que o JBoss está usando esta porta 8080. Configurações A arquitetura do JBoss consiste basicamente no microcontainer (o servidor que roda os códigos Java EE); os beans, ou códigos carregados dentro do servidor; e uma coleção de deployers, que fazem a implantação de serviços adicionais no servidor. É possível tanto remover componentes não necessários do JBoss, quanto podemos integrar serviços adicionais conforme a necessidade. O JBoss AS vem com três tipos de configuração, que podemos encontrar dentro do diretório <Jboss_Home>/server: • minimal: instalação com o mínimo de serviços necessários para iniciar o JBoss; • default: instalação base contendo um conjunto básico de serviços, como clustering; • standard: a configuração que suporta o Java EE; • all: vem com todos serviços disponíveis habilitados; http://localhost:8080/ http://localhost:8080/ TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 6 de 47 • web: instalação leve com um perfil orientado para o Java EE web. 1.2.3. Tunning Existem inúmeras formas de melhorar a performance do JBoss. Vamos citar algumas: • configuração do garbage collector (recurso do Java que limpa a memória apagando objetos não utilizados; • usar vários nós de servidores (cluster) em vez de simplesmente aumentar a memória disponível até Máquina Virtual Java até torná-la gigante; • monitorar a memória livre; • otimizar o sistema operacional tornando mais rápida as opções de processamento dos pacotes TCP. 1.2.4. Clusterização As configurações de cluster no JBoss se encontram no diretório deploy/clustering. As configuraçẽos de comunicação dos serviços “clusterizados” podem ser feitas no cluster-service.xml. 1.2.5. Mensageria O JBoss possui uma ferramenta de envio de suporte a Mensageria, o JBoss Messaging. Esta ferramenta trabalha suportando o padrão JMS, Java Message Service, que compõe o padrão Java EE. Para quem não sabe, Mensageria nada mais é que a comunicação entre sistemas de modo que é controlada o envio, a entrega e o recebimento da mensagem de um para o outro. É um recurso muito utilizado para manter a consistência em sistemas transacionais que trafegam informações importantes. 1.2.6. Implantação de ambientes, implantação em nuvem Para fazermos a implantação de uma aplicação no JBoss, nós colocamos o arquivo exportado de deployment da aplicação, que pode ser um JAR, WAR ou EAR, no diretório deploy da instância do JBoss. Se estamos utilizando uma instância default, por exemplo, iremos colocar o arquivo em <Jboss_home>/server/default/deploy. Após isto, o JBoss irá importar o projeto e colocá-lo em produção, se tudo ocorrer corretamente, a aplicação “sobe”, caso contrário, são exibidos os erros. Fácil né? A esse recurso é dado o nome de Hot- deployment. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 7 de 47 Deployment na Nuvem Há uma ferramenta desenvolvida para trabalhar com implantação de aplicações no JBoss na nuvem, o OpenShift. Ela permite o gerenciamento e escalabilidade automática em aplicações JBoss AS 6 e 7 na nuvem, permitindo que se trabalhe como uma “plataforma como serviço”. 1.2.7. Monitoramento e principais problemas O monitoramento do servidor pode ser configurado através do arquivo de configuração monitoring-service.xml, que configura os alertas e o listener do console e dos e- mails usados pelas notificações feitas pelo JMX. O que é JMX? JMX nada mais é que a implementação da tecnologia de gerenciamento de extensões ao núcleo do JBoss, é um cara que fica se comunicando com os módulos do JBoss, como módulo de segurança, de gerenciamento, de Java Serve Pages, de Mensageria e de Bancos de Dados. Questões Comentadas – JBoss CESPE - 2014 - TJ-CE - Analista Judiciário - Ciências da Computação Assinale a opção correta acerca de servidor de aplicação Jboss 7. a) A hierarquia dos recursos de gerenciamento do Jboss pode ser representada de diversas formas, como, por exemplo, por meio da representação em árvore. b) Para declarar as portas e as interfaces de redes, utilizam-se os arquivosde configuração web.xml e interfaces.xml, localizados no diretório /etc. c) Os recursos administrativos para essa versão do Jboss estão disponíveisunicamente por meio do uso do console, ou seja, por linha de comando. d) Ao se executar history –disable, na interface de linha de comando, ohistórico será desabilitado, mas os comandos que já estavam salvos não serão apagados. e) O fator principal para a determinação escolha do modo de operaçãoStandalone Server ou Managed Domain a ser inicializado pelo Jboss está associado à sua capacidade de armazenamento em relação ao atendimento às solicitações do usuário. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 8 de 47 Comentário: Neste item eu mesmo não saberia que o item D é o correto antes de pesquisar, neste caso vamos explicar porque os demais itens não estão corretos. A. Por “recursos de gerenciamento” devemos entender os vários recursosque são gerenciáveis no servidor, como os nomes, configurações de rede (socket), perfis de aplicação, extensões, etc. Os recursos degerenciamento do JBoss são representados apenas em forma de árvore, e não de várias formas, por isso o erro deste item. Os segmentos de recursos são os níveis mais baixos e os nós são os itens mais particulares, onde um re- TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 9 de 47 curso é configurado. B. Os arquivos de configuração do JBoss ou da aplicação ficam no diretório da instalação do JBoss e no diretório onde é realizado o deploy da aplicação (após ser subido o arquivo .WAR que é o arquivo de deployment da aplicação). No JBoss, esses arquivos não ficam na pasta /etc. C. Há ferramentas de administração gráficas para o JBoss, como o WebConsole e o JMX Console, portanto não é correto dizer que a administração somente pode ser feita por console ou linha de comando. E. O Standalone Mode ou o Managed Domain são escolhidos de acordo com as necessidades de facilidade de gerenciamento de alta disponibilidade que o ambiente a ser implantado deverá ter, não por motivos de “capacidade de armazenamento”. O modo Domain facilita o gerenciamento de múltiplas instâncias nativamente pelo JBoss, ajudando a replicar o estado da aplicação entre os vários servidores, algo que é necessário para a alta disponibilidade, que nada mais é (de forma resumida) do que um servidor assumir o funcionamento do sistema em caso de falha de outro. Resposta: D CESPE - 2013 - SERPRO - Analista - Suporte Técnico Acerca de servidores de aplicação, julgue os itens que se seguem. Apache, Tomcat, Jboss, WebSphere, Redmine e ISS, são exemplos de servidores de aplicação. ( ) Certo ( ) Errado Comentário: Tomcat, JBoss e WebSphere são servidores de aplicação Java. Apache e IIS (não ISS) são servidores web. Só até aqui já temos dois erros. Temos ainda que o Redmine é uma ferramenta web para registro de bugs, gerenciamento do desenvolvimento de software. Portanto devemos registrar essa questão como errada, por esses vários motivos. É um bordão que as questões do CESPE geralmente estão erradas por mais de um motivo, mas nesta tivemos até mais que dois erros. Resposta: E TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 10 de 47 CESPE - 2012 - Banco da Amazônia - Técnico Científico - Suporte Técnico O servidor de aplicação JBoss fornece o aplicativo JMX para visualização do servidor, porém o acesso padrão é bloqueado até mesmo para o usuário admin. Para que esse acesso seja liberado, é necessário alterar as configurações no arquivo jmx-console-users.properties. ( ) Certo ( ) Errado Comentário: O JMX Console é uma ferramenta que permite a administração através de uma interface gráfica. Ela vem desabilitada por padrão na instalação do JBoss, necessitando de configuração para que seja ativada. Resposta: C CESPE - 2011 - TJ-ES - Analista Judiciário - Análise de Sistemas Julgue os itens que se seguem, acerca de linguagens de programação. Na arquitetura J2EE, o container web Apache Tomcat permite a execução de páginas JSP e servlets, que são classes Java que processam dinamicamente as requisições e constroem respostas na forma de páginas HTML. ( ) Certo ( ) Errado Comentário: O Apache Tomcat serve exatamente páginas JSP ou servlets (em caso de dúvida volte ao texto). O JSP utiliza classes Java junto com o código HTML para prover páginas dinâmicas. Os servlets fazem algo muito parecido, mas com uma abordagem diferente. Está tudo certo nessas afirmações. Resposta: C CESPE - 2008 - SERPRO - Analista - Suporte Técnico TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 11 de 47 No servidor JBoss, abaixo do diretório identificado por JBOSS_HOME, há o subdiretório bin/, que contém scripts para iniciar a execução do servidor, e o subdiretório webapps / que contém as aplicações implantadas (deployed); dados sobre os domínios de segurança são tipicamente armazenados em conf/domain-security.xml. ( ) Certo ( ) Errado Comentário: No JBoss abaixo do JBOSS_HOME contém o subdiretório bin/, e este por sua vez contém os scripts para iniciar o servidor (run.sh para o Linux ou run.bat no Windows). No entanto, não há esse diretório webapps, e sim o diretório server/<instanciadoserver>/deploy/ dentro do Jboss_Home que contém as aplicações implantadas, onde “instância” corresponde à opção de configuração da instância do servidor: default, all, standard, etc. Afirmação errada. Um administrador do servidor obviamente já precisou jogar o pacote no diretório correto para implantação, então basta saber que não existe o diretório webapps e sim o diretório server/.../deploy, tornando a meu ver esta uma questão bem elaborada. Resposta: E FCC – 2013 - TRT - 18ª Região (GO) - Técnico Judiciário - Tecnologia da Informação O JBoss Application Server 7, ou JBoss AS 7, é a mais nova versão do Servidor de Aplicação Java, de código aberto utilizado por desenvolvedores de aplicações corporativas baseadas na plataforma Java EE. As características que se destacam nessa nova versão são a sua velocidade de inicialização e os modos de trabalho, quais sejam: a) Standalone Mode e Kernel Mode. b) Standalone Mode e Domain Mode. c) Standard Mode, Domain Mode e Kernel Mode. d) Standard Mode e Cluster Mode. e) Domain Controller Mode, Host Controller Mode e Process ControllerMode. Comentário: TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 12 de 47 O JBoss AS 7, possui dois modos de operação, o Standalone e o Domain Mode. O Standalone Mode se refere ao modo de operação clássica, com apenas uma instância do JBoss operando. O Domain Mode é um modo de operação que permite várias instâncias rodando ao mesmo tempo e sendo gerenciadas nativamente pelo próprio JBoss, a partir deste recurso é possível implementar algumas funcionalidades avançadas, como o Farm Deployment, que ajuda a gerenciar a replicação de estado entre os vários nós de servidores do JBoss. Resposta: B FCC – 2013 - Órgão: TRT - 18ª Região (GO) - Prova: Analista Judiciário - Tecnologia da Informação A versão 7 do JBoss Application Server, JBoss AS 7, trouxe o modo de trabalho Domain Mode, que permite iniciar várias instâncias e também oferece uma maneira centralizada de gerenciamento dos recursos facilitando a administração das instâncias JBoss. Para iniciar o JBoss AS 7 no Domain Mode deve-se executar, de acordo com o sistema operacional, o script (que geralmente encontra-se na pasta JBOSS_HOME/bin) .....I.... O Domain Mode pode ser visto como uma unidade de instâncias que compartilham recursos e configurações e são administradas por um processo chamado ....II.... A lacuna I, que se refere ao script e a lacuna II, que se refere ao processo, são, respectivamente: a) /domain.lnx no Linux ou /domain.win no Windows - Server Controller b) /domainmode.sh no Linux ou /domainmode.bat no Windows - Farm Deplyment c) /domain.lnx no Linux ou /domain.win no Windows - Domain Controller d) /dmode.sh no Linux ou /dmode.bat no Windows - Server Controller e) /domain.sh no Linux ou /domain.bat no Windows - Domain Controller Comentário: TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 13 de 47 O JBoss AS 7 possui dois modos, o standalone (modo clássico), o modo domain, que é uma novidade. O script de inicialização do JBoss em Domain Mode é o domain.sh e o domain.bat, respectivamente no Linux e no Windows. Estas informações já seriam suficientes para responder esta questão corretamente. Na lacuna II, o processo que gerencia o Domain Mode é o Domain Controller. Resposta: E FCC - 2012 - MPE-PE - Analista Ministerial - Informática No JBoss Application Server 7, o servidor poderá ser iniciado para permitir o gerenciamento de múltiplasinstâncias do servidor (sejam elas físicas ou virtuais, a partir de um ponto único) ou para se comportar como um único processo independente. Essas formas de execução podem ser conseguidas respectivamente por meio da execução do(s) script(s) ......, presente(s) na pasta bin do JBoss no servidor. A lacuna pode ser preenchida corretamente por: a) run.sh. b) execute.sh. c) domain.sh e standalone.sh. d) shared.sh e standalone.sh. e) shared.sh e alone.sh. Comentário: Esta questão cobrando JBoss 7, a versão mais recente do servidor, mostra como o elaborador está antenado. O JBoss 7 passou por algumas reformulações, está agora mais modular e por consequência teve sua performance consideravelmente melhorada em comparação às versões anteriores. No JBoss 7, há também uma diferença funcional entre servidores standalone e servidores de domínio. Um domínio JBoss é usado para gerenciar um conjunto de várias instâncias do servidor. O JBoss AS 7 em modo domínio invoca múltiplas JVMs que constituem o domínio. Mais dois TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 14 de 47 processos são criados: o controlador de domínio que age como ponto de gerenciamento do domínio e o host controller que interage com o domain controller. O servidor standalone é o servidor clássico rodando em uma única instância, do modo como conhecemos. Rodar o standalone.sh equivale a FCC - 2012 - TJ-PE - Analista Judiciário - Análise de Sistemas Considere que o JBOSS está instalado de forma padrão na plataforma Windows, em c:\jboss. Nessas condições, o arquivo EAR deve ser instalado (copiado) no diretório: a) c:\jboss\server\conf. b) c:\jboss\server\bin. c) c:\jboss\server\default\deploy. d) c:\jboss\server\deploy. e) c:\jboss\server\deploy\dist. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 15 de 47 Comentário: No Windows, o JBOSS_HOME por padrão fica no c:\jboss. Todas as outras coisas relacionadas à localização de diretórios funcionam mais ou menos da mesma forma que no Linux. O arquivo EAR é um pacote contendo a aplicação pronta para ser implantada. Ele deve ser jogado dentro da pasta deploy, que por sua vez fica dentro do diretório server/<tipoDaInstancia>. Tipo da instância é as opções de carregamento do JBoss que comentamos: minimal, default, all, web. No caso, utilizando a opção default, teremos o diretório server/default/deploy, dentro do diretório home do JBoss. Resposta: C FCC - 2011 - TRT - 19ª Região (AL) - Analista Judiciário - Tecnologia da Informação Em relação a frameworks Java, considere: I. Especificação para o desenvolvimento de interfaces web com Java, queé baseada em componentes e eventos e especialmente integrada a ferramentas de desenvolvimento, o que facilita implementar recursos de validação, navegação e conversão. II. Implementa persistência de dados com eficiência; faz o mapeamentoentre objetos e tabelas do banco de dados; permite o uso de herança e de vários tipos de relacionamentos; e oferece recursos de cache e transações. III. Faz uso metodológico de tecnologias como Javascript e XML, providaspor navegadores, para tornar páginas web mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações. Os itens I, II e III referem-se, respectivamente, a a) JBoss Seam, EJB3 e Facelets. b) JSF, JPA e AJAX. c) JEE, JSF e Hibernate. d) JSF, Hibernate e AJAX. e) JBoss Seam, JEE e JPA. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 16 de 47 Comentário: Vamos tentar reconhecer do que se trata cada item: I. Desenvolvimento de interfaces, baseada em componentes e eventos. Se não está fácil, vamos guardar essa um pouco. II. Persistência de dados. Aqui está claro que é o Hibernate, o frameworkque facilita o armazenamento em bancos de dados. III. Javascript e XML para tornar as páginas web mais interativas. Não falou nada sobre Java. Uma observação importante, não confunda Java com Javascript, pois eles são totalmente diferentes. Estamos aqui claramente falando do AJAX (Asynchronous Javascript And XML). Resposta: D FCC - 2011 - INFRAERO - Analista de Sistemas - Rede e Suporte Em relação a servidores de aplicação JEE, considere: I. No JBoss, um load balancer pode ser implementado por software ouhardware, sendo que um load balancer externo implementa o seu próprio mecanismo para entender a configuração do cluster e prover sua forma de balanceamento de carga e failover. II. No JBoss, a alta disponibilidade está baseada em funcionalidades, taiscomo, criação de cluster, cache, failover, balanceamento de carga e implementação em ambientes distribuídos. III. Criação, edição e exclusão de perfis e grupos de usuários, atribuição deperfis aos usuários e validação de e-mail no cadastro de novos usuários, são algumas das ferramentas disponíveis na administração do JBoss. IV. No WebSphere, a capacidade de fornecer um ambiente de alta disponibilidade está embasada nas no Business Events, através da exploração da funcionalidade natural do Application Server Network Deployment. Está correto o que consta em a) I e II, apenas. b) I, II e IV, apenas. c) II e IV, apenas. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 17 de 47 d) II, III e IV, apenas. e) I, II, III e IV. Comentário: I. Este item afirma que podemos implementar balanceadores de carga tanto em software quanto em hardware. Quando o balanceador de carga é externo (um servidor fora dos servidores que recebem a carga), este tem o seu algoritmo de balanceamento e seus meios de verificar que os servidores estão funcionando. Em caso de falha ele passa a trabalhar direcionando a carga para um outro servidor do cluster, e a isto chamamos failover. Resposta: E FCC - 2011 - TRT - 1ª REGIÃO (RJ) - Analista Judiciário - Tecnologia da Informação J2EE é uma plataforma de programação para servidores na linguagem de programação Java, que integra uma série de especificações e containers, cada uma com funcionalidades distintas. Nesse contexto, é correto afirmar que são integrantes do J2EE: a) Servlets, Jcompany e JSP. b) JDBC, JSP, EJBs. c) EJBs, Servlets e JBoss. d) JDBC, Hibernate e JPA. e) JSP, JSF e Eclipse. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 18 de 47 Comentário: Essa pergunta se refere à arquitetura do J2EE. Vale à pena comentarmos esta questão para esclarecermos um pouquinho a sopa de letras. O enunciado nos pede especificações integrantes do padrão. As ferramentas implementadas em Java não são componentes do padrão J2EE, e sim aplicativos desenvolvidos na linguagem de programação Java. Podemos eliminar algumas questões apenas sabendo o que é cada coisa dentre esta sopa de letrinhas: • Servlets: tecnologia de rodar classes Java no servidor, com essas classes respondendo comunicação de rede; • JCompany: um framework de desenvolvimento em Java, é apenas um conjunto de classes desenvolvidas por um grupo de pessoas para agilizar o desenvolvimento, assim como vários outros frameworks, e não é um componente do padrão J2EE. • JBoss: servidor de aplicação, é um aplicativo; • Hibernate: é um framework para persistência (armazenamento de dados em bancos de dados) em Java, facilita a integração com bancos de dados nas aplicações desenvolvidas; • Eclipse: uma ferramenta IDE para desenvolvimento de aplicações. Aí já eliminamos A, C, D e E. O item B nos fala de JDBC, a API para conexão com bancos de dados; de JSP, a tecnologia de páginas dinâmicas em Java; e dos EJBs, ou Enterprise Java Beans, que são o componente da plataforma que define como serão as aplicações que irão rodar dentro do container do servidor de Aplicação.Resposta: B FCC - 2010 - TRT - 22ª - Analista Judiciário - Tecnologia da Informação Sobre JBoss AS 4.0, considere: (I) Não roda em sistemas operacionais na plataforma POSIX. (II) Suporta qualquer máquina virtual Java entre as versões 1.4 e 1.6. (III) Não roda em sistemas operacionais MS-Windows. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 19 de 47 Está correto o que se afirma APENAS em a) I. b) II. c) III. d) I e II. e) II e III. Comentário: I. O JBoss roda em sistemas Linux, que seguem o padrão POSIX. Item errado. II. O JBoss AS 4.0 roda nas versões 1.4 e 1.6. Se tiver dúvidas pode consultar a nossa tabelinha na sessão teórica. Este item deve ser irrelevado para feitos de estudos atuais, mas os demais itens se mantém atuais. III. O JBoss roda sim em Windows! Apesar do item II ser mais chatinho, podemos resolver a questão sem ele! Basta saber os conceitos básicos, que o JBoss roda em plataformas Unix-like e que ele roda em Windows! Apesar de você poder querer sanar a sua curiosidade de saber qual versão Java roda essa versão antiga (provavelmente já não devia estar totalmente atualizada na época da prova) do servidor, somente com os conceitos principais já conseguimos resolver a questão. Resposta: B FCC - 2010 - TRT - 22ª Região (PI) - Analista Judiciário - Tecnologia da Informação Sobre JBoss AS 4.0, considere: (I) Não roda em sistemas operacionais na plataforma POSIX. (II) Suporta qualquer máquina virtual Java entre as versões 1.4 e 1.6. (III) Não roda em sistemas operacionais MS-Windows.Está correto o que se afirma APENAS em a) I. b) II. c) III. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 20 de 47 d) I e II. e) II e III. Comentário: I. Errado, pois POSIX é o padrão de interoperabilidade de sistemas Unix, eo JBoss roda em sistemas Unix e Unix-like. II. O JBoss, no caso na versão citada, suporta as versões 1.4 a 1.6, nestecaso estamos falando da implementação do Java oficial, da Sun e agora Oracle. III. Incorreto, o JBoss roda em sistema Windows.Resposta: B FCC - 2010 - TRE-RS - Analista Judiciário - Analista de Sistemas Suporte Dentre diversos servidores de aplicação compatíveis com a especificação do J2EE 1.4. NÃO é um servidor compatível: a) JavaWeb. b) JBoss. c) GlassFish. d) Apache e) Objectweb Jonas. Comentário: Esta questão foi projetada para ter como resposta o item A, porém podemos observar algumas inconsistências e dificuldades de interpretação. O JavaWeb suporta a versão do Java citado, embora não seja uma aplicação “servidora”, e sim uma tecnologia para execução de programas Java localmente, baixadas pela internet durante a primeira execução. Outro ponto problemático é que o Apache é o servidor HTTP, ou a fundação Apache, enquanto o servidor Java compatível, desenvolvido pela fundação Apache é chamado Tomcat, ou Apache Tomcat, mas nunca “Apache” sozinho. Resposta: Gabarito original – A, questão anulada pela banca TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 21 de 47 FCC - 2010 - DPE-SP - Agente de Defensoria - Analista de Sistemas JBoss é a) um servidor de aplicação de código fonte fechado baseado na plataforma J2EE implementada completamente na linguagem de programação Java. b) um servidor de aplicação de código fonte aberto baseado na plataforma J2EE implementada completamente na linguagem de programação Java. c) um servidor de aplicação de código fonte aberto baseado na plataforma J4EE implementada completamente na linguagem de programação Java. d) um servidor de aplicação de código fonte fechado baseado na plataforma J4EE implementada completamente na linguagem de programação Java. e) um servidor de dados de código fonte aberto baseado na plataformaJ4EE implementada completamente na linguagem de programação Java. Comentário: Vamos analisar cada uma das opções: A) O JBoss é um sistema de código aberto, não fechado. Errado. B) Ele é baseado na plataforma Java EE (antigamente J2EE), ok. É implementado completamente na linguagem de programação Java? Sim, esse é o motivo pelo qual ele é totalmente dependente do Java para rodar, pois é feito em Java. Podemos entender também porque ele é chamado de um “microcontainer”, pois ele é uma aplicação Java que roda código Java dentro dela. Vamos guardar essa opção. C) O erro aqui está na expressão “plataforma J4EE”. O correto é J2EE(nome antigo) ou Java EE. D) Este item, além de repetir o erro do Item C, afirma que JBoss é um servidor de código fechado. E) Este item por sua vez além de repedir o erro do Item C, afirma que oJBoss é um “servidor de dados”. Incorreto. Resposta: B TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 22 de 47 1.3. Tomcat O Tomcat é um servidor web open-source desenvolvido pela Apache Software Foundation. É um Servlet container, o que significa dizer que ele roda aplicações Java em formato de servlets. Servlet é um modelo de classe Java que estende as capacidades de um servidor, fazendo processamento do lado do servidor e disponibilizando conteúdo dinâmico, geralmente para páginas web. O Tomcat serve JSP (Java Server Pages), que é uma tecnologia de páginas dinâmicas desenvolvida em Java, que desempenha funções do mesmo tipo do PHP, e ASP/ASP.Net. Através dela, é possível separar as camadas de código HTML (apresentação) das camadas de regras de negócio da aplicação. São componentes que integram o Tomcat: • Catalina: O servlet container; • Coyote: conector HTTP 1.1, que permite a comunicação HTTP do servidor web, através dele são recebidas as conexões e requisições dos clientes e enviadas as respostas; • Jasper: é o motor de JSP do Tomcat. Lê os arquivos JSP e compila eles em código java como Servlets. ATENÇÃO: Não devemos confundir Apache X Apache Tomcat. Apache é a empresa que ficou famosa pelo Servidor HTTP de mesmo nome. Já o Tomcat é o servidor web para aplicações JSP. Versões do Tomcat Apache Tomcat Servlet API JSP API JDK 7.0 3.0 2.2 1.6 6.0 2.5 2.1 1.5 5.5 2.4 2.0 1.4 Apache Tomcat Servlet API JSP API JDK 4.1 2.3 1.2 1.3 TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 23 de 47 3.0 2.2 1.1 1.1 Na tabela acima conseguimos visualizar a versão do Tomcat compatível com as respectivas versões da API de Servlet, de JSP e do próprio JDK (Java Development Kit). Podemos ver que a versão usada no Tomcat 7.0 de API Servlet é a 3.0, e a versão da API JSP é a 2.2. Muito importante é observarmos que pela versão exigida/suportada de JDK, a utilização da versão 7.0 em diante é a recomendada atualmente, pois várias correções de vulnerabilidades foram feitas na versão do Java 1.6.X. Também é recomendável, dentro da versão suportada “1.6”, utilizar a liberação (release) mais atualizada pois como comentado têm sido feitas atualizações de segurança importantes dela. A versão 1.7.X do Java trata-se de uma nova versão com novos recurso e funcionalidades, que podem trazer algumas incompatibilidades em aplicações, neste caso um processo de migração para esta versão deve passar por uma análise no código desenvolvido e uma homologação cuidadosa das novas versões da aplicação rodando numa versão nova de servidor de aplicação e do Java. Tomcat Deployer Deployment (implantação) é o termo usado para o processo de instalar uma aplicação no servidor Tomcat. Uma aplicação web pode ser feita de várias formas no Tomcat: • Estaticamente: a aplicação web é instalada antes da inicialização do Tomcat; • Dinamicamente: através da manipulação direta de aplicações web através do recurso de auto-deployment, ou remotamente usando o Tomcat Manager. Para a instalação estática,não é necessária a instalação de nenhum recurso adicional, pois esta funcionalidade é provida nativamente pelo Tomcat. Também não é necessária nenhuma instalação adicional para utilizar o Tomcat Manager. Para fazermos deploy dinâmico com o servidor rodando, a primeira configuração necessária é configurar a variável autoDeploy como “true”. Assim, o servidor irá tentar fazer implantação de qualquer pacote .WAR jogado na pasta appBase (diretório base de instalação do Tomcat). Para fazermos instalação dinâmica através do Tomcat Client Deployer (TCD) é necessária uma instalação adicional, pois ele não é incluído por padrão no Tomcat. O TCD tem como pré- requisitos a instalação do Ant 1.6.2+ (Ant é uma biblioteca Java de ferramentas para compilar aplicações), além da instalação do próprio Java. O TCD faz uso do Tomcat Manager e de uma TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 24 de 47 série de scripts pré-carregados para compilar, implantar, “desimplantar”, iniciar, recarregar e parar aplicações. Tomcat Manager O Tomcat traz junto com ele uma aplicação chamada Tomcat Manager. É uma interface web de administração do servidor. Através dela podemos gerenciar as aplicações web que estão rodando no servidor, instalar, iniciar, paralisar, remover e emitir relatórios sobre as aplicações. Funcionalidades avançadas Cluster Há um componente feito para habilitar o suporte a Clusters no Tomcat. Ele permite o uso de balanceamento de cargas em aplicações com grande exigência de processamento. O suporte a cluster exige uma versão do JDK 1.5 ou superior. Alta disponibilidade Nas versões do Tomcat 5.0.X em diante, há um módulo que habilita alta disponibilidade e balanceamento de carga no Tomcat, permitindo que servidores sejam adicionados ou removidos dinamicamente do cluster. O nome desse módulo é “mod_jk2”. Com ele é possível, além das funcionalidades, descritas, direcionar as requisições para uma versão atual funcional do servidor enquanto atualizamos outra instalação, permitindo assim a atualização sem precisar desativar o serviço temporariamente (downtime). TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 25 de 47 Questões Comentadas - Tomcat CESPE - 2011 - BRB - Analista de Tecnologia da Informação Por motivo de segurança, o Tomcat deve ser executado por um usuário root com poderes de administrador. Certo ( ) Errado ( ) Comentário: Exatamente por motivos de segurança, não é recomendável rodar o servidor a partir do usuário root, pois qualquer comprometimento de segurança do servidor de aplicação pode vir a facilmente implicar no comprometimento do sistema operacional todo. Portanto, é recomendável não executar a partir de um usuário root. Resposta: E CESPE - 2011 - TJ-ES - Analista Judiciário - Análise de Banco de Dados Na qualidade de servidor de aplicações Java para web, o Tomcat é parte da plataforma J2EE, que abrange as tecnologias Servlet e JSP, incluindo as tecnologias de apoio relacionadas, tais como Realms e segurança, JNDI Resources e JDBC DataSources. O Tomcat tem a capacidade de atuar também como servidor web/HTTP ou pode funcionar integrado a um servidor web dedicado, tais como o Apache httpd ou o Microsoft IIS. Certo ( ) Errado ( ) Comentário: O Tomcat é a implementação de referência da J2EE. Ele abrange o Servlet e JSP. Tem como recursos a criação de realms (bases de usuários voltada TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 26 de 47 para autenticação), JNDI e JDBC Datasources. Ele também pode funcionar integrado com um servidor web dedicado para servir páginas estáticas, enquanto ele próprio serve apenas as páginas dinâmicas, aliviando assim sua carga. Tudo correto. Resposta: C TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 27 de 47 FCC – 2013 - Órgão: TRT - 15ª Região - Prova: Analista Judiciário - Tecnologia da Informação Considere as orientações: Para iniciar e parar o ...... como processo utilizando o prompt de comandos (console ou shell) do sistema operacional: 1. defina as variáveis de ambiente JAVA_HOME e CATALINA_HOME, paraapontar o diretório principal da instalação do Java e do ......, respectivamente. O recomendado é criar o script [Windows] setenv.bat ou [Unix] setenv.sh dentro de CATALINA_HOME/bin, com estas configurações; 2. vá para o diretório bin do ......: - [Windows] cd %CATALINA_HOME%\bin - [Unix] cd $CATALINA_HOME/bin 3. execute o script desejado: - Iniciar: [Windows] startup.bat ou catalina start [Unix] startup.sh ou catalina.sh start - Parar: [Windows] shutdown.bat ou catalina stop [Unix] shutdown.sh oucatalina.sh stop As lacunas das orientações acima referem-se ao a) Framework EJB. b) Servidor de aplicação JBoss. c) Framework Hibernate. d) Servidor de aplicação Tomcat. e) Framework Java EE. Comentário: Opa! Quando falamos de servidor de aplicações Java, e falamos “CATALI- NA_HOME”, de qual servidor estamos falando? Obviamente do famoso Tomcat. Caso estivesse se referindo ao JBoss, o nome da variável que guarda o caminho do ambiente de TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 28 de 47 instalação do servidor seria JBOSS_HOME e os nomes dos scripts seriam outros, como domain.sh ou standalone.sh no lugar de “startup.sh” por exemplo. Resposta: D FCC – 2013 - Órgão: TRT - 9ª REGIÃO (PR) - Técnico Judiciário - Tecnologia da Informação Um software servidor de aplicação oferece um ambiente para a instalação e execução de certos tipos de aplicações, centralizando e dispensando a instalação da aplicação nos computadores clientes e disponibilizando uma plataforma que separa do desenvolvedor de software algumas das complexidades de um sistema computacional. Dentre os principais servidores para aplicações Java EE estão o JBoss e o Tomcat. Sobre eles, é correto afirmar: a) A grande vantagem do JBoss é que não é necessário fazer a administração e configuração manualmente através da manipulação de arquivos XML. Ele possui, desde que foi criado, assistentes que permitem fazer a configuração e administração do ambiente de forma bastante ami- gável. b) O JBoss é um Contêiner Web, parte da plataforma corporativaJava EE, que abrange as tecnologias Servlet e JSP, incluindo tecnologias de apoio relacionadas como Realms e segurança, JNDI Resources e JDBC DataSources. Porém, o JBoss não implementa um contêiner EJB e, consequentemente, não suporta EJBs. c) O JBoss tem como aspectos positivos o fato da administração emanutenção da configuração ser bastante simples após um aprendizado inicial, porém, só é distribuído como um software proprietário, o que gera altos custos de licença de uso. d) O Tomcat tem a capacidade de atuar como servidor web/HTTPautônomo, ou pode funcionar integrado a um servidor web dedicado, como o Microsoft IIS, ou ainda como parte integrante de um servidor de aplicações mais amplo, como JBoss AS, provendo os recursos de Java Servlet e JSP. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 29 de 47 e) O Tomcat é um servidor de aplicação completo que suporta astecnologias servlet/JSP, EJB, JPA e outras tecnologias Java. Desde que foi criado, o Tomcat é a Implementação de Referência para as tecnologias servlet/JSP. Comentário: A. É incorreto dizer que não é necessário fazer as configurações e administração através de edição dos arquivos de texto, e também que ele possui interfaces gráficas desde a sua criação. B. Este item é errado, pois JBoss é uma evolução de EJB-OSS, que significava exatamente Enterprise Java Bean Open Source Software. O servidor que não implementa EJBé o Tomcat. C. A parte que fala da administração simples após aprendizado é bemsubjetivo mas podemos relevar como correta. Do contrário eu teria que parar de usar o meu mote “essa questão é muito fácil... depois de feita” :). O restante da assertiva é incorreto, pois o JBoss é distribuído de forma aberta paga ou gratuita, não como software proprietário. D. Este item se refere a uma possibilidade que também é uma recomendação técnica. Com o Tomcat, podemos servir páginas dinâmicas com a tecnologia JSP. Em sites que possuem muita carga, é interessante fazer o Tomcat operar conjuntamente com outros servidores web como o IIS ou o Apache para servir páginas estáticas. Assim o Tomcat não precisa ficar dispendendo recursos para processar estas páginas, e sim somente as páginas com conteúdos dinâmicos Java, com JSP, tarefa para a qual o Tomcat foi desenvolvido. E. É correto dizer que o Tomcat é a implementação de referência paraServlet/JSP, no entanto é incorreto dizer que ele é compatível com EJB e JPA, que são tecnologias suportadas apenas por outras implementações de servidor de aplicação Java. Resposta: D FCC – 2012 - Órgão: TRT - 11ª Região (AM) - Prova: Técnico Judiciário - Tecnologia da Informação TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 30 de 47 O descritor de implantação de um aplicativo web descreve as classes, os recursos e a configuração do aplicativo e como eles serão usados pelo servidor web para atender às solicitações da web. Quando o servidor web recebe uma solicitação do aplicativo, ele usa o descritor de implantação para mapear o URL da solicitação para o código que deve processá- la. O descritor de implantação em aplicações Java Servlet e Java Server Pages que utilizam o Tomcat é o a) server.xml. b) apache-config.xml. c) manager.xml. d) context.xml. e) web.xml. Comentário: Mais uma questão bem técnica mas que é importante para medir o nível de conhecimento e familiaridade do candidato com a plataforma. O arquivo principal da implantação das aplicações no Tomcat é o web.xml. Há um arquivo desses para cada aplicação que será posta em funcionamento no servidor Tomcat. Resposta: E FCC - 2012 - MPE-AP - Analista Ministerial - Tecnologia da Informação Analise as definições abaixo referentes ao Tomcat. I. O Web Application Deployment Descriptor é um arquivo XML que descreve as servlets e outros componentes que compõem a aplicação, juntamente com parâmetros de inicialização e restrições de segurança. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 31 de 47 II. O Tomcat Context Descriptor é um arquivo que pode ser usado para definir opções de configuração específicas do Tomcat como loggers, data sources, configuração de gerenciamento de sessão etc. As definições I e II referem-se, respectivamente, aos arquivos a) wadd.xml, normalmente criado na pasta WEB-CONF e tcd.xml, normalmente criado na pasta WEB-INF. b) index.xml, normalmente criado na pasta WEB-INF e context.xml normalmente criado na pasta CONTEXT-CONF. c) build.xml, normalmente criado na pasta DIST e config.xml, normalmente criado na pasta WEB-CONF. d) web.xml, normalmente criado na pasta WEB-INF e context.xml, normalmente criado na pasta META-INF. e) web.xml, normalmente criado na pasta META-INF e config-context.xml,normalmente criado na pasta WEB-INF. Comentário: I. Está falando do web.xml, arquivo XML descritor das funcionalidades ecaracterísticas da aplicação. II. Tomcat Context Descriptor é o arquivo usado para definir no Tomcatopções de configurações específicas de log, fontes de dados, e gerencia- TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 32 de 47 mento de sessão. Essa é a definição exata da documentação. O arquivo geralmente fica em META-INF/context.xml. Resposta: D FCC - 2012 - TRT - 11ª Região (AM) - Analista Judiciário - Tecnologia da Informação Sobre o Tomcat é correto afirmar: a) É um servidor de aplicação que fornece o ambiente necessário paraa execução de aplicações Web desenvolvidas com as tecnologias Java Servlet e JSP. b) É um software livre (mas de código fechado) para Windows, desenvolvido no projeto Apache Jakarta, que atualmente é definido como a Implementação de Referência (RI) para as tecnologias Java Servlet e JSP. c) O Tomcat Manager não permite ao administrador visualizar as aplicações web instaladas, entretanto, permite verificar o status do servidor, instalar, desinstalar, iniciar, parar e recarregar uma aplicação web. d) O Tomcat é o nome popular do servidor Web Apache HTTP Serverque possui uma variedade de ferramentas capazes de lidar com qualquer tipo de solicitação na Web. Interpreta códigos desenvolvidos em diversas linguagens, como PHP, Perl, Shell Script, ASP etc. e) O Tomcat foi escrito em Java e, portanto, necessita de uma Java Virtual Machine (JVM) para ser executado. Comentário: Questão escorregadia. Vamos prestar atenção nos itens. A) O Tomcat é um servidor web e um Servlet Container. Essas são as definições que trabalhamos, pois ele não é considerado um Servidor de Aplicação. Quando falamos este termo Servidor de Aplicação no mundo Java, estamos nos referindo a um servidor que implemente a especificação JEE, como o JBoss, por exemplo. Portanto o Tomcat não é um servidor de aplicação, embora rode aplicações web Java. Item errado. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 33 de 47 B) Um software livre de código fechado é uma contradição. Acaba aí nossa análise, vamos pra próxima. Item errado. C) O Tomcat Manager permite fazer tudo que o item disse. O contrário do que está escrito. Item errado. D) Não devemos confundir Apache com “Apache Tomcat”. Item errado. E) O Tomcat foi implementado em Java e precisa de JVM para rodar. Itemcerto. Resposta: E FCC - 2011 - TRT - 4ª REGIÃO (RS) - Analista Judiciário - Tecnologia da Informação Considere: I. Cobre parte da especificação JEE porém não as tecnologias servlet e JSPe nem as tecnologias Realms e JDBC DataSources. II. Tem a capacidade de atuar como servidor web, ou pode funcionar integrado a um servidor web dedicado como o Apache ou até mesmo o IIS. III. É distribuído pela Sun como software proprietário e é referência para astecnologias Java Servlet e JavaServer Pages. Quanto ao Tomcat, é correto o que consta em a) I, somente. b) II, somente. c) III, somente. d) I e II, somente. e) I, II e III. Comentário: I. O Tomcat cobre exatamente as partes dos Servlets e JSP. Ele suporta Realms e JDBC DataSouces. Errado. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 34 de 47 II. O Tomcat é um servidor de conteúdos dinâmicos. Para não sobrecarregá-lo desnecessariamente, muitas vezes operamos ele em conjunto com outro servidor que sirva mais rapidamente conteúdos estáticos, como o Apache ou o IIS. Correto. III. O Tomcat é um software aberto, não proprietário. Errado. É correto dizer que ele é a implementação de referência para as especificações de Servlet e JSP. Resposta: B FCC - 2010 - TRT - 9ª REGIÃO (PR) - Técnico Judiciário - Tecnologia da Informação Sobre o servidor web Tomcat considere: I. É um software proprietário, desenvolvido no projeto Apache Jakarta, oficializado pela Sun Microsystems. II. Não deve ser confundido com o servidor web Apache HTTP Server, quelida com qualquer tipo de solicitação na web. III. É um container que fornece um ambiente necessário para execução deaplicações desenvolvidas com Java Servlet e JSP. Está correto o que consta em a) I e II, apenas. b) I e III, apenas. c) II e III, apenas. d) III, apenas. e) I, II e III. Comentário: Vamos assentar os conceitos básicoscom esta questão. I. Tomcat não é um software proprietário, é um software aberto/livre. Orestante do texto está correto. II. Correto, chamar o Tomcat de “Apache Tomcat” é como dizer “MicrosoftWindows”, pois o nome Apache tem o significado tanto do nosso famoso servidor web como da fundação que mantém este e vários outros projetos. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 35 de 47 III. Correto, é um contêiner que roda Servlets e JSP. Contêiner é sinônimode servidor no nosso caso, porém para a arquitetura Java ele tem um significado especial, pois ele roda uma aplicação Java em formato específico. Corretos: II e III. Resposta: C FCC - 2010 - TRE-RS - Analista Judiciário - Analista de Sistemas Suporte Ferramenta que permite ao administrador verificar o status do servidor, listar as aplicações web instaladas, instalar, desinstalar, iniciar, parar e recarregar cada uma das aplicações web implantadas no Tomcat é a) Tomcat Monitor. b) Manager Tomcat. c) Tomcat Manager. d) Monitor Tomcat. e) Tomcat Manager Monitor. Comentário: A ferramenta a que se refere o texto é o Tomcat Manager. Nesta elaboração o texto ficou ambíguo ao inverter a ordem do nome da ferramenta e ao colocar itens parecidos com a resposta “correta”, de forma a trazer dúvidas sobre os itens estarem incorretos. Esta questão foi anulada pela banca. Resposta: X - Esta questão foi anulada pela banca que organizou o concurso. FCC - 2010 - TRT - 9ª REGIÃO (PR) - Analista Judiciário - Tecnologia da Informação NÃO se trata de uma afirmativa correta sobre o servidor web Tomcat: a) Executa as mesmas funções que o servidor web Apache HTTP Server. b) Cuida basicamente de processamento de aplicações Java. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 36 de 47 c) É escrito em Java. d) Necessita da plataforma Java SE instalada. e) Necessita de uma JVM para ser executado. Comentário: A) O Tomcat tem funções análogas ao Apache, pois é um servidor web. B) Correto. C) Correto. D) O Tomcat exige a instalação da plataforma Java EE, que contém a especificação dos Servlets e JSP, as partes da especificação JEE que o Tomcat implementa. E) Correto, ele necessita de uma JVM.Resposta: D FCC - 2010 - TCE-SP - Agente da Fiscalização Financeira - Informática O ambiente necessário para a execução de aplicações web desenvolvidas com as tecnologias Java Servlet e JSP é fornecido pelo container Web a) Tomcat. b) Apache. c) IIS. d) Servlet. e) Bean. Comentário: Servlets? JSP? Ele está se referindo ao Tomcat. O que poderia nos confundir seria outro servidor web ou de aplicação Java, o que não apareceu nas opções. Então ficou fácil para nós. Item A. Resposta: A TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 37 de 47 FGV – 2008 - Órgão: Senado Federal - Analista de Sistemas Ao desenvolver uma aplicação sob a plataforma Java EE 5, isso implica que: a) a aplicação será compatível com as versões anteriores do Java Enterprise Edition J2EE 1.4. b) a aplicação deverá usar o JavaServer Faces. c) a aplicação poderá usar menos arquivos XML do que se fosse desenvolvida na plataforma J2EE 1.4. d) a aplicação será compatível com a versão 6.0 do Apache Tomcat. e) o desenvolvedor poderá utilizar o J2EE 1.4 SDK para testar a aplicação. Comentário: Esta questão não deve ser memorizada pois aborda padrões antigos que provavelmente não serão abordados na prova, mas trouxemos ela pois ela ilustra bem como pode ser cobrado o conhecimento sobre versões do padrão Java EE e as compatibilidades dos servidores com elas. Esta questão, mudando alguns parâmetros para as versões mais novas, pode ser uma fonte de uma questão a ser cobrada. Vamos comentar por itens: A) Uma aplicação desenvolvida com APIs da plataforma Java EE 5 nãoserá compatível com as versões anteriores, e sim somente com as posteriores. A partir da versão Java EE 5, as versões deixaram de ser batizadas como “J2EE 1.x” para Java EE X, que no caso é o Java EE 5. Após o J2EE 1.4, o padrão passou a se chamar Java EE 5, Java EE 6, … B) A aplicação poderá usar tanto este framework quanto outro qualquer,depende de qual framework o desenvolvedor adotou. Este não é (ou era) nem de longe o único framework suportado por aquela versão no Java. D) O Apache Tomcat 6.0, conforme trabalhamos, exige o JDK 1.5. Porém TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 38 de 47 devemos nos atentar que a especificação JEE e a versão do JDK são duas coisas distintas. E) O J2EE 1.4 cai na mesma falha do item A, não será compatível pois não contém as funções da API mais nova. C) A resposta C é a correta por vacuidade, pelas outras estarem erradas. Este tipo de conhecimento avançado da API é menos necessário para cargos de Infraestrutura, e mais para Desenvolvimento. Por via das dúvidas, iremos comentar, pois uma situação análoga pode vir com versões futuras. No caso da Java EE 5, de acordo com a documentação sobre os recursos novos, ele vem com: “Most boilerplate requirements have been eliminated, and XML descriptors are now optional. For example, the ejb-jar.xml descriptor is no longer necessary in most cases.” “With Java EE 5 technology, XML deployment descriptors -- that is, side files for defining components and specifying deployment instructions -- are now optional.” Ou seja, a versão nova eliminou a necessidade de edição manual de arquivos XML descritores para geração de pacotes de implantação dos softwares desenvolvidos. Para esta questão, fica a dica, quando vier a cobrança sobre conhecimento de uma determinada versão da plataforma Java, pode valer a pena ver o “What's new” (o que há de novo) daquela determinada versão, em vez de ver tudo sobre ela. Resposta: C VUNESP – 2013 - Órgão: FUNDUNESP - Analista - Programador No servidor Tomcat 7.0, a propriedade autoDeploy do contêiner Host no arquivo de configuração server.xml tem a função de indicar a. as aplicações que devem ser automaticamente descompactadas com oservidor. http://www.oracle.com/technetwork/articles/javaee/intro-ee5-137134.html http://www.oracle.com/technetwork/articles/javaee/intro-ee5-137134.html TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 39 de 47 b. as aplicações que devem ser ignoradas durante a inicialização doservidor. c. se o servidor deve checar, periodicamente, por aplicações novas ou poratualizações. d. se os módulos das aplicações devem ser alocados, automaticamente,durante a inicialização do host. e. se o descritor de contexto da aplicação (arquivo context.xml) deve seranalisado. Comentário: Como sabemos, o server.xml é o principal arquivo de configuração do Tomcat. Há várias formas de fazer o deploy de uma aplicação no Tomcat. Uma das formas é simplesmente jogar o arquivo .war (arquivo de deploy da aplicação) no diretório da aplicação. O Tomcat faz essa varredura automaticamente e quando encontra um novo .war, faz o deploy automaticamente. Para isso funcionar, a propriedade autoDeploy deve estar configurada como true no server.xml. A alternativa A está errada porque a principal função desta propriedade não é apenas descompactar o pacote, e sim fazer o deploy da aplicação. A alternativa B simplesmente não é o que faz essa propriedade. A alternativa D Resposta: C TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 40 de 47 1.4. WebLogic O WebLogic é um servidor de aplicações JEE desenvolvido e comercializado pela Oracle (foi adquirido pela Oracle de outra empresa em 2008). Lembrando que a Oracle é a empresa que adquiriu também a tecnologia Java ao comprar sua detentoraanterior, a Sun. Isto é um dado importante quando se trata do nível de suporte dos seus servidores à API JEE. O Oracle WebLogic Server é oferecido em três versões, o Standard Edition, o Enterprise Edition, e o WebLogic Suite. Vamos ver o que vem em cada versão: Oracle WebLogic Server Standard Edition • Suporte completo à plataforma Java EE 6 e a algumas APIs do Java EE 7; • Oracle TopLink, camada para persistência (armazenamento) de dados; • Suporte a Rich Client Application e a vários frameworks Java. Oracle WebLogic Server Enterprise Edition engloba todos recursos da Standard Edition, mais: • Clustering para Alta Performance e com failover para Alta Disponibilidade; • Clusters dinâmicos; • Clustering JMS (Java Message Service, tecnologia de middleware de barramento de troca de mensagens); Oracle Weblogic Suite, que inclui todos recursos do Enterprise Editon, mais: • Oracle Coherence Enterprise Edition – recursos para escalar aplicações intensivas em volume de dados; • Active GridLink for RAC – Alta Disponibilidade para Bancos de Dados Oracle RAC (Real Application Clusters). TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 41 de 47 Figura 1: Exemplo - Servidores com gerenciamento unificado através da Oracle Coherence Figura 2: Exemplo implantação de um Cluster de Servidores WebLogic ligados a um de Cluster RAC Além disso é interessante listarmos as plataformas suportadas pelo WebLogic: • Sistemas Operacionais: AIX, HP-UX, Linux, Mac OS X (ambiente de desenvolvimento), Solaris e Windows; • Bancos de Dados: Oracle (e Oracle Real Application Clusters), IBM DB2, Microsoft SQL Server, MySQL e Sybase; • Servidores Web: Apache, Microsoft IIS, Oracle HTTP Server, Oracle iPLanet Web Server; • Java: Java EE 6, APIs selecionadas do Java EE7 no Oracle WebLogic Server 12c, Java EE 5 no Oracle WebLogic Server 11g e Java SE 6 e 7. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 42 de 47 Questões Comentadas - Weblogic FCC - 2012 - Órgão: TJ-PE - Prova: Analista Judiciário - Análise de Suporte Sobre a definição de nomes na criação de um ambiente WebLogic é correto afirmar: a) Mesmo que a Managed Server tenha um bom nome, não será possívela identificação tanto no sistema operacional quanto na console Administrativa de quais aplicações estão em execução, com problemas ou indisponíveis. b) Para usar o Node Managed é necessário cadastrar uma machine (máquina) como parte de um domínio WebLogic. Não é permitido que seu nome seja o mesmo da máquina, sem o uso da zona de DNS. c) É necessário a criação de um cluster nomeado para atender a uma única aplicação, exceto no caso de se isolar uma aplicação com a finalidade de depurar algum problema. d) É aconselhável que o nome do cluster descreva o conjunto de aplicações nele existentes. e) O nome do Admin Server deve ser repetitivo para facilitar a localizaçãoposterior, entretanto, não precisa demonstrar qual domínio ele gerencia. Comentário: Vamos comentar cada item. a) Managed Server e o “Managed Coherence Server” são recursos de administração dos servidores WebLogic. Essa afirmativa é flagrantemente errada pois é claro que é possível visualizar quais aplicações estão em execução e o status delas. Caso contrário, pra quê interface de gerenciamento? He he he! b) Os domínios são a estrutura básica de administração do WebLogic. Um TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 43 de 47 domínio é formado por um conjunto de Servidores WebLogic. Um nó é o Administration Server e os demais são Managed Server (Servidores Gerenciados). A seguir o item faz uma afirmação “Não é permitido que seu nome seja o mesmo da máquina, sem o uso da zona de DNS.” Que dizer que ele só poderia ter o mesmo nome que o servidor (entendendo como o servidor físico) se ele tivesse em uma zona de DNS separada. Isto é correto, pois neste caso não haveria conflito na resolução de nomes. Complementando a documentação do WebLogic traz que: “Within a domain, each server, machine, cluster, virtual host, and any other resource type must be named uniquely and must not use the same name as the domain.” Traduzindo, dentro de um domínio, cada servidor, máquina, cluster, virtual host, e qualquer tipo de recurso deve ser nomeado de forma única e não deve usar o mesmo nome que o domínio. Neste caso, ele nos diz claramente que não deve haver qualquer tipo dos recursos citados com o mesmo nome que outro. Item Certo. c) Errado. Um cluster pode atender a várias aplicações. d) Correto. O nome do cluster deve ser ou um nome padronizado em documentação dos servidores da área, ou ter um nome claro que reflita as aplicações nele contidas. Este item pode ser respondido pelo “bom senso”, não necessitando muito conhecimento sobre a plataforma. e) Mais um item sobre boas práticas de nomenclatura de servidores, nocaso nós de clusters. Um nome repetitivo dificulta a localização do servidor num momento de intervenção necessária, pois pode gerar ambiguidade. Por exemplo, se temos vários Domínios e todos Admin Servers forem “AdminSrv”, como poderemos encontrar o Admin Server de um determinado domínio de outro? Isso pode gerar dificuldades desnecessária. Resposta: D TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 44 de 47 2. Conclusão Nesta aula trabalhamos uma boa parte do conhecimento necessário para administração do servidor Boss. Não se assustem com os detalhes, é normal haver muitos detalhes técnicos na arquitetura tecnológica de uma solução como o JBoss, se importem apenas em saber dos recursos que existem e a função deles. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 45 de 47 3. Bônus – Questões Conceitos JEE Questões Comentadas – Conceitos JEE As questões a seguir cobram os conceitos de JEE numa abordagem mais para desenvolvimento. Utilizem, caso queiram, para testar o conhecimento de vocês. Lembrando que o conhecimento abaixo não é comumente exigido para cargos de infraestrutura, nem para o programa do nosso concurso e cargo. Q01. FCC - 2013 - DPE-SP - Agente de Defensoria – Programador Um Servlet Contêiner controla o ciclo de vida de uma servlet onde são invocados três métodos essenciais: um para inicializar a instância da servlet, um para processar a requisição e outro para descarregar a servlet da memória. Os itens a seguir representam, nessa ordem, o que ocorre quando um usuário envia uma requisição HTTP ao servidor: I. A requisição HTTP recebida pelo servidor é encaminhada ao Servlet Contêiner que mapeia esse pedido para uma servlet específica. II. O Servlet Contêiner invoca o método init da servlet. Esse método é chamado em toda requisição do usuário à servlet não sendo possível passar parâmetros de inicialização. III. O Servlet Contêiner invoca o método service da servlet para processara requisição HTTP, passando os objetos request e response. O método service não é chamado a cada requisição, mas apenas uma vez, na primeira requisição do usuário à servlet. IV. Para descarregar a servlet da memória, o Servlet Contêiner chama ométodo unload, que faz com que o garbage collector retire a instância da servlet da memória. Está correto o que se afirma em a) I, II, III e IV. b) I, apenas. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 46 de 47 c) I e IV, apenas. d) II, III e IV, apenas. e) II e III, apenas. Q02. FCC - 2011 - TRT - 1ª REGIÃO (RJ) - Analista Judiciário - Tecnologia da Informação a) deixam para a API utilizada na sua escrita a responsabilidade com oambiente em que elas serão carregadas e com o protocolo usado noenvio e recebimento de informações. b) fornecem um mecanismo simples e consistente para estender a funcionalidade de um servidor Web. c) podem ser incorporadas em vários servidores Web diferentes. d) podem rodar em qualquer plataforma sem a necessidade de seremreescritas ou compiladas novamente. e) são carregadas apenas uma vez e, para cada nova requisição, a servlet gera uma nova thread. Q03. FCC - 2010 - DPE-SP - Agente de Defensoria - Analista de Sistemas Servlets são projetadas para fornecer aos desenvolvedores uma solução JAVA para criar aplicações web. Para criar Servlets é necessário importar as classes padrão de extensão dos pacotes a) javax.servlet e javax.servlet.http. b) javax.servlet e javax.http.servlet. c) javax.servlet.html e javax.servlet.http. d) servlet.javax e servlet.javax.http. e) javax.servlet.smtp e javax.servlet.html. TCE-SP – Agente – Infraestrutura Aula 03 - Servidores de Aplicação JEE Teoria e Exercícios Página 47 de 47 Q04. VUNESP - 2013 - FUNDUNESP - Analista Programador Júnior a) a estrutura do objeto principal do Servlet, permitindo que sejam feitas requisições ao Servlet. b) métodos que permitem que o Servlet faça requisições de forma assíncrona. c) métodos que permitem que o Servlet faça requisições aos clientes. d) propriedades que permitem que seja alterado o comportamento doServlet. e) um objeto que fornecerá informações sobre a requisição feita pelocliente ao Servlet. Gabarito: Q01. B Q02. B Q03. A Q04. E 4. Referências [1] JBoss AS 7.0 – Domain Setuphttps://docs.jboss.org/author/display/AS7/Domain+Setup?_sscc=t [2] Administrando JBoss Application Server 7 - Parte 1 https://developer.jboss.org/wiki/AdministrandoJBossApplicationServer7Parte1/version/3?_ sscc=t [3] Oracle WebLogic Server Data Sheethttp://www.oracle.com/us/products/middleware/cloud-app- foundation/weblogic/standard-edition/overview/index.html [4] Overview of WebLogic Server System Administrationhttp://docs.oracle.com/cd/E13222_01/wls/docs81/adminguide/overvie w.html#1034986 https://docs.jboss.org/author/display/AS7/Domain+Setup?_sscc=t https://developer.jboss.org/wiki/AdministrandoJBossApplicationServer7-Parte1/version/3?_sscc=t https://developer.jboss.org/wiki/AdministrandoJBossApplicationServer7-Parte1/version/3?_sscc=t https://developer.jboss.org/wiki/AdministrandoJBossApplicationServer7-Parte1/version/3?_sscc=t http://www.oracle.com/us/products/middleware/cloud-app-foundation/weblogic/standard-edition/overview/index.html http://www.oracle.com/us/products/middleware/cloud-app-foundation/weblogic/standard-edition/overview/index.html http://www.oracle.com/us/products/middleware/cloud-app-foundation/weblogic/standard-edition/overview/index.html http://docs.oracle.com/cd/E13222_01/wls/docs81/adminguide/overview.html#1034986 http://docs.oracle.com/cd/E13222_01/wls/docs81/adminguide/overview.html#1034986 http://docs.oracle.com/cd/E13222_01/wls/docs81/adminguide/overview.html#1034986
Compartilhar