O documento resume as principais anotações JAX-WS para criar web services, incluindo @WebService, @WebMethod, @SOAPBinding, @WebParam e @WebResult para mapear métodos Java e parâmetros para operações SOAP.
1. JSP é convertida para Servlet que é compilado e carregado para aguardar requisições.
2. A primeira requisição a uma página JSP é mais lenta, mas subsequentemente o processo é mais rápido se o código não foi alterado.
3. Uma página JSP passa por fases de tradução, compilação, carga, instanciação e execução do método _jspService() a cada requisição.
O documento discute etiquetas personalizadas em JSP, incluindo:
1) Etiquetas organizam melhor o código Java em JSPs à medida que as lógicas de negócios se tornam mais complexas.
2) Uma etiqueta move parte do código Java de um SCRIPTLET para uma classe Java separada.
3) A criação de uma etiqueta envolve criar uma classe Java, um arquivo TLD e mapear a biblioteca de tags no web.xml.
Este documento fornece um resumo sobre Java Server Pages (JSP):
1) JSP permite implementar servlets escrevendo código Java em páginas HTML/XML para gerar dinamicamente conteúdo da web.
2) JSP usa marcadores especiais para inserir código Java em páginas, que são compiladas em servlets antes de serem executadas.
3) Objetos como request, response, out e session estão implicitamente disponíveis em JSP para acessar dados de entrada/saída.
Introdução ao Desenvolvimento de aplicações WEB com JSPManoel Afonso
Slides do minicurso "Introdução ao Desenvolvimento de aplicações WEB com JSP" apresentado na Universidade Federal do Pará nos dias 4 e 5 de novembro de 2013 durante a III Semana Acadêmica da FACOMP.
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
O documento descreve Expression Language (EL) e JSTL. EL permite que JSPs acessem valores disponíveis de forma simples, como atributos passados por Servlets. JSTL fornece uma biblioteca de tags para gerar conteúdo dinâmico em JSPs de forma reutilizável, eliminando scriptlets. Exemplos mostram como usar EL para acessar um objeto passado por Servlet e como JSTL percorre uma lista usando a tag <c:forEach>.
O documento apresenta uma introdução sobre servlets, JSP e servidores de aplicação, definindo suas principais características e funcionalidades como componentes para desenvolvimento web em Java.
O documento discute o padrão MVC com JSP e Servlets, separando as funcionalidades em três camadas: Model, View e Controller. Apresenta também um mini-tutorial sobre como implementar este padrão em um sistema simples de sugestão de cervejas.
1) O documento discute Servlets e JSP, tecnologias Java para desenvolvimento de aplicações web.
2) Servlets são objetos Java que estendem a funcionalidade de servidores HTTP de forma independente de plataforma.
3) JSPs permitem programação através da saída e inclusão de código Java em páginas, gerando um servlet na primeira requisição.
1. JSP é convertida para Servlet que é compilado e carregado para aguardar requisições.
2. A primeira requisição a uma página JSP é mais lenta, mas subsequentemente o processo é mais rápido se o código não foi alterado.
3. Uma página JSP passa por fases de tradução, compilação, carga, instanciação e execução do método _jspService() a cada requisição.
O documento discute etiquetas personalizadas em JSP, incluindo:
1) Etiquetas organizam melhor o código Java em JSPs à medida que as lógicas de negócios se tornam mais complexas.
2) Uma etiqueta move parte do código Java de um SCRIPTLET para uma classe Java separada.
3) A criação de uma etiqueta envolve criar uma classe Java, um arquivo TLD e mapear a biblioteca de tags no web.xml.
Este documento fornece um resumo sobre Java Server Pages (JSP):
1) JSP permite implementar servlets escrevendo código Java em páginas HTML/XML para gerar dinamicamente conteúdo da web.
2) JSP usa marcadores especiais para inserir código Java em páginas, que são compiladas em servlets antes de serem executadas.
3) Objetos como request, response, out e session estão implicitamente disponíveis em JSP para acessar dados de entrada/saída.
Introdução ao Desenvolvimento de aplicações WEB com JSPManoel Afonso
Slides do minicurso "Introdução ao Desenvolvimento de aplicações WEB com JSP" apresentado na Universidade Federal do Pará nos dias 4 e 5 de novembro de 2013 durante a III Semana Acadêmica da FACOMP.
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
O documento descreve Expression Language (EL) e JSTL. EL permite que JSPs acessem valores disponíveis de forma simples, como atributos passados por Servlets. JSTL fornece uma biblioteca de tags para gerar conteúdo dinâmico em JSPs de forma reutilizável, eliminando scriptlets. Exemplos mostram como usar EL para acessar um objeto passado por Servlet e como JSTL percorre uma lista usando a tag <c:forEach>.
O documento apresenta uma introdução sobre servlets, JSP e servidores de aplicação, definindo suas principais características e funcionalidades como componentes para desenvolvimento web em Java.
O documento discute o padrão MVC com JSP e Servlets, separando as funcionalidades em três camadas: Model, View e Controller. Apresenta também um mini-tutorial sobre como implementar este padrão em um sistema simples de sugestão de cervejas.
1) O documento discute Servlets e JSP, tecnologias Java para desenvolvimento de aplicações web.
2) Servlets são objetos Java que estendem a funcionalidade de servidores HTTP de forma independente de plataforma.
3) JSPs permitem programação através da saída e inclusão de código Java em páginas, gerando um servlet na primeira requisição.
O documento discute as funcionalidades das páginas JSP (JavaServer Pages) para incorporar código Java em páginas web. Ele explica que as páginas JSP permitem processamento do servidor no código Java antes de retornar a página ao cliente e descreve os principais elementos de JSP, como expressões, scriptlets, diretivas e declarações.
O documento descreve a introdução à linguagem PHP para programação web server-side. Ele explica como configurar o ambiente de desenvolvimento usando XAMPP e Apache em Debian, e discute páginas estáticas versus dinâmicas. Também apresenta a sintaxe básica de PHP, incluindo variáveis, comentários, ecoar, e variáveis globais como $_SERVER.
1) O documento discute conceitos básicos de JSP, incluindo Servlets, ciclo de vida de JSP, IDEs, descritores de distribuição e diretivas.
2) Também aborda objetos implícitos de JSP, estruturas de controle, cookies, sessões e tags.
3) Fornece exemplos de código JSP para ilustrar diferentes recursos.
O documento descreve como recuperar parâmetros de formulários em Servlets utilizando o método getParameter() e como passar valores de Servlets para JSPs utilizando o método setAttribute(). É explicado como recuperar valores de campos do tipo checkbox como arrays e como utilizar RequestDispatcher para repassar o fluxo da requisição e resposta para uma JSP.
Aula 1 - curso java web - JSP Java Server PageEvandro Júnior
O documento apresenta um curso sobre Java Server Pages (JSP), abordando seus conceitos básicos em 9 aulas. A primeira aula introduz JSP como tecnologia para criar páginas web com programação Java e define os principais componentes de uma página JSP.
O documento descreve como codificar um servlet em Java usando as classes HttpServlet e HttpServletRequest/Response. Explica que um servlet deve estender HttpServlet e implementar os métodos doGet() ou doPost() dependendo do tipo de requisição. Também mostra como criar um servlet simples que retorna a data atual e mapeá-lo em um arquivo web.xml.
O documento apresenta uma introdução teórica sobre JSP e Servlets. Discute o papel do Servlet na arquitetura Java EE, como JSP funciona em um contêiner web e a estrutura básica de uma aplicação Java WEB. Também aborda conceitos como solicitações HTTP, páginas dinâmicas vs estáticas e o modelo de aplicação multi-camadas do Java EE.
O documento descreve a plataforma .NET da Microsoft. Resumidamente:
(1) A plataforma .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações; (2) O código é compilado em MSIL e executado na CLR interagindo com o framework .NET; (3) Os principais tipos de compilados .NET são EXE, DLL, ASPX e ASMX.
O documento descreve o desenvolvimento de um sistema de login web simples utilizando arquitetura MVC. Ele inclui instruções para criar a estrutura do projeto, modelagem de dados, classes de modelo, camada de acesso a dados e separação em pacotes.
O documento descreve o framework PHP CakePHP. Ele fornece um resumo sobre o que é CakePHP, quem o está usando e por que estão usando, além de abordar tópicos como MVC, ORM, validação, internacionalização e rotas.
Este documento discute Servlets e JSPs, incluindo por que usá-los, o que fazem clientes e servidores web, e como eles se comunicam usando HTML e HTTP. Também explica como containers mapeiam requisições para servlets usando um deployment descriptor.
O documento discute a automação de testes de APIs usando as ferramentas HTTParty e Cucumber em Ruby. Ele explica o que é uma API e introduz os pré-requisitos e ferramentas necessárias como HTTParty, Cucumber e RSpec. Em seguida, fornece exemplos de como usar o HTTParty para fazer requisições GET e POST e discute a abordagem BDD com Cucumber. Por fim, discute a estrutura e configuração de um projeto de teste automatizado para APIs usando essas ferramentas.
Este documento fornece uma introdução ao framework PHP CakePHP. Resume as seguintes informações essenciais:
1) O CakePHP é um framework popular e flexível para desenvolvimento web com PHP usando o padrão MVC.
2) Ele fornece muitos recursos prontos como scaffolding, helpers, componentes e internacionalização.
3) O CakePHP usa uma estrutura de pastas padronizada e segue convenções claras para desenvolvimento rápido.
O documento discute três princípios para programação livre de XML:
1) Configuração dentro do código em vez de arquivos XML externos
2) Transferência de dados usando JSON em vez de XML
3) Projetar linguagens de programação para serem mais humanas
The document discusses consuming REST web services with Android. It covers:
1) The need to have an online application, data formats like JSON and XML, and types of web services like SOAP and REST.
2) Transforming data received from web services into Java objects using libraries like Spring, Volley, and Google Gson.
3) Making HTTP requests to REST services and handling responses.
O documento discute o sistema de controle de versão Git:
1) Git é um sistema de controle de versão distribuído e de código aberto projetado para lidar com projetos de todos os tamanhos.
2) O documento apresenta os principais comandos e conceitos do Git como criação de repositórios, rastreamento de arquivos, commits e branching.
3) A agenda inclui tópicos como instalação do Git, configurações iniciais e trabalhando localmente com os arquivos.
O documento apresenta os conceitos e princípios de APIs RESTful utilizando o framework Spring. Ele discute como Spring facilita o desenvolvimento de aplicações RESTful e fornece exemplos de implementação de métodos HTTP como GET, POST, PUT e DELETE. Além disso, aborda tópicos como recursos, HATEOAS, testes com Spring MVC e uma demonstração de um jogo da velha RESTful.
Spring Roo: design simples e agilidade do desenvolvimento javaJUGMS
O documento apresenta a ferramenta Spring Roo, que fornece um modo simples e ágil para desenvolvimento Java. Spring Roo utiliza AOP para criar um design simples e gera código durante o desenvolvimento para remover getters/setters e adicionar métodos CRUD diretamente nas entidades. A apresentação inclui demonstrações práticas de como usar Spring Roo para criar uma aplicação de votação de palestras.
1) O documento discute a arquitetura do Oracle WebLogic Portal, incluindo os serviços do portal como gerenciamento de conteúdo, perfis de usuário e segurança.
2) Também aborda o desenvolvimento de aplicações de portal, portlets e integração entre portlets.
3) Finalmente, explica conceitos como portlet preferences, comunicação assíncrona entre portlets e desenvolvimento de portlets com diferentes tecnologias.
O documento discute JAX-WS, incluindo conceitos, objetivos de criar e implantar um serviço web usando Apache Axis2 e configurar o servidor Tomcat no NetBeans IDE.
O documento discute as funcionalidades das páginas JSP (JavaServer Pages) para incorporar código Java em páginas web. Ele explica que as páginas JSP permitem processamento do servidor no código Java antes de retornar a página ao cliente e descreve os principais elementos de JSP, como expressões, scriptlets, diretivas e declarações.
O documento descreve a introdução à linguagem PHP para programação web server-side. Ele explica como configurar o ambiente de desenvolvimento usando XAMPP e Apache em Debian, e discute páginas estáticas versus dinâmicas. Também apresenta a sintaxe básica de PHP, incluindo variáveis, comentários, ecoar, e variáveis globais como $_SERVER.
1) O documento discute conceitos básicos de JSP, incluindo Servlets, ciclo de vida de JSP, IDEs, descritores de distribuição e diretivas.
2) Também aborda objetos implícitos de JSP, estruturas de controle, cookies, sessões e tags.
3) Fornece exemplos de código JSP para ilustrar diferentes recursos.
O documento descreve como recuperar parâmetros de formulários em Servlets utilizando o método getParameter() e como passar valores de Servlets para JSPs utilizando o método setAttribute(). É explicado como recuperar valores de campos do tipo checkbox como arrays e como utilizar RequestDispatcher para repassar o fluxo da requisição e resposta para uma JSP.
Aula 1 - curso java web - JSP Java Server PageEvandro Júnior
O documento apresenta um curso sobre Java Server Pages (JSP), abordando seus conceitos básicos em 9 aulas. A primeira aula introduz JSP como tecnologia para criar páginas web com programação Java e define os principais componentes de uma página JSP.
O documento descreve como codificar um servlet em Java usando as classes HttpServlet e HttpServletRequest/Response. Explica que um servlet deve estender HttpServlet e implementar os métodos doGet() ou doPost() dependendo do tipo de requisição. Também mostra como criar um servlet simples que retorna a data atual e mapeá-lo em um arquivo web.xml.
O documento apresenta uma introdução teórica sobre JSP e Servlets. Discute o papel do Servlet na arquitetura Java EE, como JSP funciona em um contêiner web e a estrutura básica de uma aplicação Java WEB. Também aborda conceitos como solicitações HTTP, páginas dinâmicas vs estáticas e o modelo de aplicação multi-camadas do Java EE.
O documento descreve a plataforma .NET da Microsoft. Resumidamente:
(1) A plataforma .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações; (2) O código é compilado em MSIL e executado na CLR interagindo com o framework .NET; (3) Os principais tipos de compilados .NET são EXE, DLL, ASPX e ASMX.
O documento descreve o desenvolvimento de um sistema de login web simples utilizando arquitetura MVC. Ele inclui instruções para criar a estrutura do projeto, modelagem de dados, classes de modelo, camada de acesso a dados e separação em pacotes.
O documento descreve o framework PHP CakePHP. Ele fornece um resumo sobre o que é CakePHP, quem o está usando e por que estão usando, além de abordar tópicos como MVC, ORM, validação, internacionalização e rotas.
Este documento discute Servlets e JSPs, incluindo por que usá-los, o que fazem clientes e servidores web, e como eles se comunicam usando HTML e HTTP. Também explica como containers mapeiam requisições para servlets usando um deployment descriptor.
O documento discute a automação de testes de APIs usando as ferramentas HTTParty e Cucumber em Ruby. Ele explica o que é uma API e introduz os pré-requisitos e ferramentas necessárias como HTTParty, Cucumber e RSpec. Em seguida, fornece exemplos de como usar o HTTParty para fazer requisições GET e POST e discute a abordagem BDD com Cucumber. Por fim, discute a estrutura e configuração de um projeto de teste automatizado para APIs usando essas ferramentas.
Este documento fornece uma introdução ao framework PHP CakePHP. Resume as seguintes informações essenciais:
1) O CakePHP é um framework popular e flexível para desenvolvimento web com PHP usando o padrão MVC.
2) Ele fornece muitos recursos prontos como scaffolding, helpers, componentes e internacionalização.
3) O CakePHP usa uma estrutura de pastas padronizada e segue convenções claras para desenvolvimento rápido.
O documento discute três princípios para programação livre de XML:
1) Configuração dentro do código em vez de arquivos XML externos
2) Transferência de dados usando JSON em vez de XML
3) Projetar linguagens de programação para serem mais humanas
The document discusses consuming REST web services with Android. It covers:
1) The need to have an online application, data formats like JSON and XML, and types of web services like SOAP and REST.
2) Transforming data received from web services into Java objects using libraries like Spring, Volley, and Google Gson.
3) Making HTTP requests to REST services and handling responses.
O documento discute o sistema de controle de versão Git:
1) Git é um sistema de controle de versão distribuído e de código aberto projetado para lidar com projetos de todos os tamanhos.
2) O documento apresenta os principais comandos e conceitos do Git como criação de repositórios, rastreamento de arquivos, commits e branching.
3) A agenda inclui tópicos como instalação do Git, configurações iniciais e trabalhando localmente com os arquivos.
O documento apresenta os conceitos e princípios de APIs RESTful utilizando o framework Spring. Ele discute como Spring facilita o desenvolvimento de aplicações RESTful e fornece exemplos de implementação de métodos HTTP como GET, POST, PUT e DELETE. Além disso, aborda tópicos como recursos, HATEOAS, testes com Spring MVC e uma demonstração de um jogo da velha RESTful.
Spring Roo: design simples e agilidade do desenvolvimento javaJUGMS
O documento apresenta a ferramenta Spring Roo, que fornece um modo simples e ágil para desenvolvimento Java. Spring Roo utiliza AOP para criar um design simples e gera código durante o desenvolvimento para remover getters/setters e adicionar métodos CRUD diretamente nas entidades. A apresentação inclui demonstrações práticas de como usar Spring Roo para criar uma aplicação de votação de palestras.
1) O documento discute a arquitetura do Oracle WebLogic Portal, incluindo os serviços do portal como gerenciamento de conteúdo, perfis de usuário e segurança.
2) Também aborda o desenvolvimento de aplicações de portal, portlets e integração entre portlets.
3) Finalmente, explica conceitos como portlet preferences, comunicação assíncrona entre portlets e desenvolvimento de portlets com diferentes tecnologias.
O documento discute JAX-WS, incluindo conceitos, objetivos de criar e implantar um serviço web usando Apache Axis2 e configurar o servidor Tomcat no NetBeans IDE.
O documento apresenta o Spring Web Flow, um framework para definir fluxos de navegação em aplicações web. Ele permite representar fluxos como máquinas de estado através de arquivos XML, ao contrário de outros frameworks que forçam a representação em controllers e páginas. O Spring Web Flow também facilita testes unitários dos fluxos e reuso através de herança entre fluxos.
Utilizando Java, Arduíno e a Web para criar empreendimentos próprios de sucessoJUGMS
Palestra do Vinícius Senger no Javaneiros 2010 onde ele mostrou como sair do basicão com telas de cadastro e criarmos empreendimentos de sucesso usando, por exemplo arduíno, Java e Web.
Spring Framework no desenvolvimento móvelDr. Spock
Slides da apresentação de 15 minutos realizada na trilha de Mobile do evento The Developer's Conference 2011 (TDC2011) em São Paulo. 08/Julho/2011 das 17:15 às 17:30.
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Helder da Rocha
Este documento fornece um tutorial sobre o desenvolvimento de serviços web RESTful usando a especificação JAX-RS no Java EE 7. Explica conceitos como recursos, métodos HTTP, templates de caminho e anotações para mapear recursos e métodos. Também fornece exemplos simples de implementação de recursos RESTful com JAX-RS.
O Java WSDP é um conjunto de tecnologias para desenvolver web services em Java, incluindo JAX-WS, JAXB, StAX e SAAJ. Ele fornece uma API simples para comunicação remota via XML e permite implementar serviços com anotações. O wsgen gera classes necessárias e o wsimport cria objetos para invocar serviços remotamente com base em WSDL.
Este documento fornece instruções sobre como gerar relatórios no IReport usando o banco de dados Firebird. Ele descreve o JasperReports, iReport e JDBC e como conectar ao Firebird para gerar relatórios.
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Este documento fornece uma introdução sobre serviços RESTful e mashups. Resume as seguintes informações essenciais:
1) Apresenta os conceitos fundamentais de arquitetura REST e como serviços RESTful funcionam;
2) Discutem a API JAX-RS para construir serviços RESTful em Java;
3) Explicam como consumir e testar serviços RESTful usando ferramentas como RESTClient, cURL e bibliotecas JavaScript;
4) Introduzem o conceito de mashups e como agregam conteúdo de v
O documento apresenta uma introdução ao framework Ruby on Rails, discutindo seus principais componentes e arquitetura MVC. É explicado que Rails é baseado em convenções, possui bibliotecas como ActiveRecord e ActiveSupport e usa MVC para separar modelo, visão e controle. Também são descritos recursos como migrações, validações, controladores e rotas.
Este documento fornece um resumo sobre novidades da especificação JAX-RS 2.0 para criação de web services RESTful com Java. As principais atualizações incluem o suporte a uma API cliente para requisições, a capacidade de suspender requisições, e melhor integração com validações e filtros/interceptores para modificar requisições e respostas. O JAX-RS 2.0 trará melhorias significativas para desenvolvimento de web services RESTful com Java.
O documento descreve o WebSphere Application Server (WAS) da IBM, incluindo o que é, demonstrações de instalação e fluxo de funcionamento. Também fornece exemplos de aplicações simples como "Olá Mundo" usando JSP e um WAR para implantação no servidor.
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
O documento discute frameworks, definindo-os como conjuntos de classes que encapsulam abstrações para solução de problemas relacionados. Apresenta o framework Laravel, desenvolvido em PHP para aplicações web baseadas em MVC, e o Homestead, ambiente de desenvolvimento oficial do Laravel utilizando Vagrant. Explica também rotas no Laravel, mapeando URLs a controllers via arquivo routes.php.
Este documento apresenta o framework Nest para construção de APIs com Node e TypeScript. Cobre tópicos como estrutura de projeto, controllers, rotas, parâmetros, services e injeção de dependência. O objetivo é consolidar conhecimentos em APIs e aplicar padrões de mercado como o modelo do Angular.
Transformando eficientemente resultados de uma consulta jdbc para jsonJeison Barros
O documento descreve como transformar eficientemente os resultados de uma consulta JDBC em JSON para serviços REST. Em vez de carregar todos os dados em memória antes de serialização, um framework chamado HTTP-RPC permite transmitir cada linha de dados diretamente para o fluxo de saída enquanto é lida do banco de dados, reduzindo latência, carga da CPU e memória. A classe ResultSetAdapter implementa interfaces que permitem transmitir os resultados da consulta para o chamador sem qualquer tamponamento intermediário.
Engenharia da Computação: Resumo servlet + jsp br galoGuilhermePetrosky
O documento descreve o que são Servlets e JSP, tecnologias usadas no desenvolvimento de aplicações web em Java. Servlets são classes Java que processam requisições e respostas HTTP, estendendo funcionalidades de servidores web. JSPs permitem produzir páginas dinâmicas em Java e são transformadas em Servlets após a implantação. O documento lista e explica os principais tipos de tags usadas em JSP.
O documento descreve como gerar documentação Javadoc para classes Java a partir de comentários no código e tags como @author, @param e @return. Explica que o Javadoc é gerado usando o comando javadoc na linha de comando ou no Eclipse e permite formatar a documentação usando HTML.
Este documento fornece um resumo sobre WebServlets de acordo com a especificação Java EE 7. Ele contém informações sobre aplicações Web, WebServlets, requisições e respostas HTTP, URLs e redirecionamento, contexto da aplicação, sessão do cliente, filtros interceptadores e arquitetura MVC.
"AWS Lambda e Amazon API Gateway mudaram a forma como aplicações e serviços são desenvolvidos. Porém, qual a melhor forma para executar tarefas como deployment, monitoramento e debugging em um mundo sem servidor? Nesta sessão, detalharemos as práticas recomendadas relacionadas a todo o ciclo de vida de uma aplicação serverless.
Discutiremos como você pode construir um pipeline CI/CD que automaticamente empacota (build), testa e faz deploy de aplicações serverless utilizando soluções como AWS CodePipeline, AWS CodeBuild e AWS CloudFormation. Além disso, apresentaremos recursos do AWS Lambda e Amazon API Gateway que auxiliam no processo de versionamento de funções e isolamento dos ambientes de execução de suas APIs. Por fim, vamos mostrar como o Amazon CloudWatch e o AWS X-Ray podem ser usados para auxiliar no processo de monitoramento e diagnóstico de seus serviços."
https://aws.amazon.com/pt/serverless/
Este documento resume os principais conceitos de subprogramas, incluindo suas vantagens, tipos (procedimentos e funções), métodos de passagem de parâmetros e ambientes de referência local. Aborda definições básicas de subprogramas e explica os modelos de implementação da passagem de parâmetros, como passagem por valor, referência e nome.
Conteudo sobre java e suas features por versão (8, 9, 10, 11), SOA X MICROSERVICES, versionamento de contrato, Protocolo HTTP E HTTPS .
java 8 - streams e Metodos default.
java 9 - jigsaw e jshell.
java 10 - Local variable type Inference E Garbage Collector Interface.
java 11 - Local-Variable Syntax for Lambda Parameters E Launch Single-File Source-Code Programs.
O documento explica como configurar e usar o framework DWR para realizar chamadas AJAX entre páginas Java e JavaScript. Nos primeiros passos, ele descreve como criar um projeto no Eclipse, adicionar as bibliotecas necessárias e configurar o servlet e arquivo de configuração. Depois, ele detalha a codificação das classes Java e página JSP envolvidas, incluindo a interface remota e conversão de objetos. Por fim, ele mostra como testar a aplicação fazendo uma chamada remota que retorna uma concatenação de strings.
O documento descreve os principais conceitos do framework DWR, incluindo sua anatomia, configuração e utilização de creators e converters para mapear objetos entre JavaScript e Java. Ele também explica brevemente os tipos de frameworks Ajax e como o DWR encapsula a comunicação entre o cliente e o servidor através da especificação JSON.
Semelhante a Resumo Anotacoes JAX-WS Certificacao SCDJWS 5 (20)
Apostila JavaEE 5 Componentes Distribuídos EJB 3 e JBossGilberto Holms
Este documento fornece uma introdução aos principais conceitos e ferramentas para desenvolvimento de aplicações distribuídas em Java EE, incluindo: (1) Uso do JBoss Application Server e ferramentas como Eclipse IDE e MySQL; (2) Conceitos de computação distribuída e arquiteturas como CORBA e RMI; (3) Serviço de nomes JNDI; (4) Introdução à plataforma Java EE; (5) Enterprise JavaBeans; (6) Java Persistence API; (7) Mensageria JMS.
O documento resume os principais conceitos de EJB, incluindo: 1) EJB são componentes padrão do lado do servidor para aplicações distribuídas e escaláveis; 2) Bean de Entidade usam JPA para mapear classes para tabelas de banco de dados; 3) Session Beans podem ser stateless, stateful ou MDBs e fornecem serviços para aplicações.
1) O documento resume os principais tópicos sobre desenvolvimento web com Java Servlets, incluindo arquitetura MVC, ciclo de vida de servlets, mapeamento de URLs, redirecionamento e uso de sessões.
2) Os capítulos discutem métodos HTTP, requisições e respostas, listeners de eventos, parâmetros de inicialização e dispatching de requisições.
3) O documento fornece detalhes técnicos importantes sobre o framework Servlet e é útil para estudar para a certificação SCWCD 5.0.
As 3 frases essenciais do documento são:
1) O documento fornece resumos e anotações importantes sobre os fundamentos da certificação SCJP 5.0, incluindo detalhes sobre variáveis, operadores, estruturas de controle, classes e interfaces.
2) São destacados pontos de atenção sobre inicialização e escopo de variáveis, operadores lógicos e de atribuição, encapsulamento, herança, polimorfismo e coleta de lixo.
3) Também são abordados conceitos-chave como override
1. Resumo Anotações JAX-WS para Certificação SCDJWS 5.0
Gilberto Augusto Holms
@gibaholms
gibaholms85@gmail.com
http://gibaholms.wordpress.com/
Modos de Criar um WebService
• WSDL-to-Java Aproach: wsimport
• Java-to-WSDL Aproach: apt / wsgen
Tools
• apt
o Entrada códigos-fonte (.java) da SEI Implementation
o Saída Portable Artifacts (SEI + Service + JAXB Types + Faults)
• wsgen
o Entrada classe (.class) da SEI Implementation
o Saída WSDL e Portable Artifacts
• wsimport
o Entrada documento WSDL
o Saída Portable Artifacts (SEI + Service + JAXB Types + Faults)
@WebService
• Exemplo de SEI em Servlet:
@WebService
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
• Exemplo de SEI em EJB:
@WebService
@Stateless
public class Calculator {
@Resource
private WebServiceContext context;
public int add(int a, int b) {
return a + b;
}
}
• Utilizando SEI em interface separada:
@WebService
public interface CalculatorEndpoint {
public int add(int a, int b);
}
@WebService(
endpointInterface = "com.example.CalculatorEndpoint"
)
public class Calculator implements CalculatorEndpoint {
public int add(int a, int b) {
return a + b;
Gilberto Holms http://gibaholms.wordpress.com/
2. }
}
• Métodos expostos como operações do serviço:
o Sem SEI separada, todos os métodos públicos são expostos
o Com SEI separada, apenas os métodos da interface SEI são expostos
o Se houverem métodos anotados com @WebMethod, apenas estes serão expostos
• Se utilizada SEI separada, a classe de serviço não pode definir o parâmetro @WebService.name
• As classes/interfaces SEI podem, mas não precisam extender java.rmi.Remote
• As classes de serviço precisam fornecer construtor default
• As classes de serviço podem utilizar as anotações @PostConstruct e @PreDestroy
• Os métodos podem, mas não precisam lançar java.rmi.RemoteException
• Atributos de @WebService:
o name nome do wsdl:portType
Valor default: nome abreviado da classe
o targetNamespace targetNamespace do WSDL, que será atribuído aos itens do WSDL
Valor default: package da classe
Se utilizado numa SEI, afeta apenas wsdl:portType
Se utilizado num serviço com SEI separada, afeta apenas wsdl:service
Se utilizado num serviço sem SEI separada, afeta wsdl:portType e wsdl:service
o serviceName nome do wsdl:service
Proibido usar na interface SEI
Valor default: nome da classe + “Service”
o portName nome do wsdl:port
Proibido usar na interface SEI
Valor default: @WebService.name + “Port”
o endpointInterface para usar interface SEI separada, setar o nome completo dela aqui
Proibido usar na interface SEI, vale apenas para a classe de serviço
o wsdlLocation para criar o serviço através de um WSDL pré-existente
@WebMethod
• Exemplo:
@Stateless
@WebService(name = "TravelAgent")
public class TravelAgentBean {
@WebMethod(operationName = "Reserve")
public String makeReservation(int cruiseId) {
// implementation
}
}
• Customiza uma operação do serviço
• Os métodos anotados com @WebMethod precisam ser public
• Os métodos anotados não podem ser static nem final
• Atributos de @WebMethod
o operationName nome do wsdl:operation
Valor default: nome do método java
o action nome da SOAPAction que constará no WSDL (apenas para bindings tipo SOAP)
Valor default: string vazia “”
WSDL: <soap:operation soapAction=”xxx”/>
o exclude não expõe o método no WebService
Pode anular um @WebMethod herdado de uma superclasse
Não pode ser usado em uma interface SEI
@SOAPBinding
• Exemplo:
@WebService
@SOAPBinding(
Gilberto Holms http://gibaholms.wordpress.com/
3. style = SOAPBinding.Style.RPC,
use = SOAPBinding.Use.LITERAL
)
public class ExampleService {
@WebMethod
public int add(int a, int b) {
return a + b;
}
}
• Customiza o tipo de binding do serviço
• Atributos de @SOAPBinding:
o style estilo da mensagem (DOCUMENT ou RPC)
Valor default: DOCUMENT
o use tipo de encoding (LITERAL ou ENCODED)
Valor default: LITERAL
O uso do tipo ENCODED é proibido pelo Basic Profile 1.1
o parameterStyle como os parâmetros serão montados (BARE ou WRAPPED)
Valor default: WRAPPED
• Possíveis combinações:
Style Use ParameterStyle Descrição
Cada parâmetro é mapeado para uma wsdl:part, que
RPC LITERAL <n/a>
pertence a um schema (padrão RPC/Literal)
Permite apenas um elemento como parâmetro, que é o root-
DOCUMENT LITERAL BARE
element de um schema (padrão Document/Literal)
Agrupa diversos parâmetros dentro de um elemento root
com o mesmo nome da wsdl:operation (“forja” um padrão
DOCUMENT LITERAL WRAPPED
Document/Literal mesmo quando é setado mais de elemento
como parâmetro)
@WebParam
• Exemplo:
@WebService
@SOAPBinding(
style = SOAPBinding.Style.RPC
)
public class PingService {
@WebMethod(operationName = "PingTwoWay")
public void ping(@WebParam(mode = WebParam.Mode.INOUT) Holder<PingDocument> ping) {
// implementation
}
@WebMethod(operationName = "SecurePing")
public void ping(PingDocument ping, @WebParam(header = true) SecurityHeader secHeader) {
// implementation
}
}
• Customiza o mapeamento de um parâmetro para uma message part
• Holder types: javax.xml.ws.Holder<Object>
• Atributos de @WebParam:
o name nome do parâmetro
Se for RPC/Literal e não foi definido @WebParam.partName, define o nome do
wsdl:part
Se for Document/Literal ou um header block, define o nome local do elemento que
representa o parâmetro
É obrigatório quando for Document/ BARE e quando mode for OUT ou INOUT
Valor default: @WebMethod.operationName para Document/BARE e nome do
argumento java para demais casos
o partName nome do wsdl:part
É utilizado apenas para estilos RPC e Document/BARE
Valor default: @WebParam.name
o targetNamespace namespace do parâmetro
Usado apenas para Document/Literal ou se a part representa um header block
o mode tipo de parâmetro (IN, OUT ou INOUT)
Gilberto Holms http://gibaholms.wordpress.com/
4. Permitido OUT e INOUT apenas para Holder types
Valor default: normalmente IN, ou INOUT se for um Holder type
o header booleano indicando se a part representa um header block
Valor default: false
@WebResult
• Exemplo:
@WebService
public class CustomerService {
@WebMethod
@WebResult(name = "CustomerRecord")
public CustomerRecord locateCustomer(
@WebParam(name = "FirstName") String firstName,
@WebParam(name = "LastName") String lastName,
@WebParam(name = "Address") USAddress addr) {
// implementation
}
}
• Customiza o mapeamento de um valor de retorno para uma message part
• É sempre a message part que não aparece no parameterOrder, ou seja, é o retorno geral do response
do operação
• Atributos de @WebResult:
o name nome do valor de retorno
Se for RPC/Literal e não foi definido @WebParam.partName, define o nome do
wsdl:part do retorno
Se for Document/Literal ou um retorno de header block, define o nome local do
elemento que representa
Valor default: @WebMethod.operationName + “Response” para Document/BARE e
“return” para demais casos
o partName nome do wsdl:part
É utilizado apenas para estilos RPC e Document/BARE
Valor default: @WebResult.name
o targetNamespace namespace do retorno
Usado apenas para Document/Literal ou se a part representa um header block
o header booleano indicando se a part representa um retorno de header block
Valor default: false
@OneWay
• Exemplo:
@WebService
public class PingService {
@WebMethod
@Oneway
public void ping() {
// implementation
}
}
• Define que trata-se de uma mensagem one-way, ou seja, omite a tag output da operation do WSDL
• Os métodos one-way:
o Precisam retornar void
o Não podem lançar exceções verificadas
o Não podem ter parâmetros Holder types
@SOAPMessageHandlers
• Não deve ser utilizada, pois foi “deprecated” a partir da versão 2.0 da JAX-WS
• No lugar dela, deve-se utilizar @HandlerChain
Gilberto Holms http://gibaholms.wordpress.com/
5. WebServiceContext
• Exemplo:
@WebService
public class Teste {
@Resource
private WebServiceContext context;
public void checkOut(int orderId) {
MessageContext messageCtx = context.getMessageContext();
SOAPMessageContext soapMessageCtx = (SOAPMessageContext)messageCtx;
SOAPMessage message = soapMessageCtx.getMessage();
}
}
• É um objeto de contexto obtido por injeção de dependência
• Fornece acesso ao contexto em que se encontra (Servlet ou EJB)
• Principais métodos de WebServiceContext:
o getUserPrincipal
o isUserInRole
o getMessageContext
• MessageContext é uma “property-bag”, um Map<String, Object> contendo referências a diversas
variáveis do contexto em que se encontra (javax.servlet.http.HttpServletRequest, Http Request
Headers, Query String, etc)
• Se for um serviço do tipo SOAP, contém uma instância de SOAPMessageContext, onde podemos
obter, por exemplo, a representação SAAJ da mensagem
@WebServiceProvider
• Exemplo de um Provider SOAP:
@WebServiceProvider(portName = "stockQuoteReporterPort", serviceName = "stockQuoteReporter")
@ServiceMode(value = Service.Mode.MESSAGE)
public class stockQuoteReporterProvider implements Provider<SOAPMessage> {
public SOAPMessage invoke(SOAPMessage request) {
SOAPBody requestBody = request.getSOAPBody();
if(requestBody.getElementName.getLocalName.equals("getStockPrice")) {
MessageFactory mf = MessageFactory.newInstance();
SOAPFactory sf = SOAPFactory.newInstance();
SOAPMessage response = mf.createMessage();
SOAPBody respBody = response.getSOAPBody();
Name bodyName = sf.createName("getStockPriceResponse");
respBody.addBodyElement(bodyName);
SOAPElement respContent = respBody.addChildElement("price");
respContent.setValue("123.00");
response.saveChanges();
return response;
}
}
}
• Exemplo de um Provider HTTP (RESTful):
@WebServiceProvider(targetNamespace = "http://example.org", serviceName = "NearbyCityService")
@BindingType(value = HTTPBinding.HTTP_BINDING)
public class NearbyCity implements Provider<Source> {
@Resource
private WebServiceContext wsContext;
public Source invoke(Source source) {
try {
MessageContext messageContext = wsContext.getMessageContext();
String query = (String) messageContext.get(MessageContext.QUERY_STRING);
if (query != null && query.contains("lat=") && query.contains("long=")) {
return createSource(query); // cria mensagem via JAXP
} else {
throw new HTTPException(404);
}
} catch (Exception e) {
throw new HTTPException(500);
}
Gilberto Holms http://gibaholms.wordpress.com/
6. }
}
• Não pode ser usada junto com a anotação @WebService
• Permite criar um serviço sem SEI, capaz de receber e responder qualquer tipo de XML, manipulando a
mensagem em baixo nível através de SAAJ ou JAXP
• Útil para criar serviços RESTful baseados em XML
• Podemos utilizar uma extensão para utilizar RESTful baseado em JSON :
o @BindingType(JSONBindingID.JSON_BINDING)
• Anotação @BindingType:
o Indica o tipo de binding (protocolo de aplicação) que será utilizado
o Principais tipos:
SOAPBinding.SOAP11HTTP_BINDING mensagem SOAP 1.1
SOAPBinding.SOAP12HTTP_BINDING mensagem SOAP 1.2
HTTPBinding.HTTP_BINDING mensagem HTTP POST
• Anotação @ServiceMode:
o Indica a forma como a mensagem será recebida no método invoke
o Varia de acordo com o tipo de binding
o Tipos permitidos:
Service.Mode.MESSAGE XML contendo o protocolo completo da mensagem
• Para SOAP, envia todo o soap:Envelope
• Para HTTP, envia Http Headers e POST Payload
Service.Message.PAYLOAD XML apenas com o payload da mensagem
• Para SOAP, envia apenas conteúdo do soap:Body
• Para HTTP, envia apenas POST Payload
• Tipos de mensagem aceitas para T na interface Provider<T>:
javax.xml.transform.Source objeto TrAX / SAX
javax.activation.DataSource objeto JAF
javax.xml.soap.SOAPMessage objeto SAAJ
Java.lang.Object objeto JAXB
• Atributos de @WebServiceProvider:
o targetNamespace namespace do serviço
o serviceName nome do serviço (caso seja baseado em WSDL, representa wsdl:service)
o portName nome da porta (caso seja baseado em WSDL, representa wsdl:port)
o wsdlLocation para criar o serviço através de um WSDL pré-existente
@WebServiceRef
• Exemplo:
public class JAXWSClient {
@WebServiceRef(
wsdlLocation = "http://localhost:8080/CalculatorService?WSDL"
)
private CalculatorService calculatorService;
public void doTest() {
Calculator port = calculatorService.getCalculatorPort();
int ret = port.add(2, 2);
}
}
• Container injeta um client de serviço através da sua classe Service
• Permitido uso apenas no contexto JEE
• Identico a tag do ejb-jar.xml: <web-service-ref>
• Atributos de @WebServiceRef:
o name nome que será gravado no JNDI-ENC
o wsdlLocation caminho para o WSDL
Valor default: o mesmo informado na anotação @WebServiceClient da classe Service
o mappedName caminho JNDI global do recurso (fornecedor)
o type não precisa definir, é o atributo anotado
o value especifica o subtipo a ser injetado no atributo anotado
Opcional se utilizado na classe Service
Gilberto Holms http://gibaholms.wordpress.com/
7. Obrigatório se utilizado na interface SEI
• Exemplos de uso de type e value:
// como a injeção é em Service impl, não precisa setar o value
@WebServiceRef
private ProcessorService processorService;
// como a injeção é em SEI Interface, precisa setar o value (Service impl a usar)
@WebServiceRef(ProcessorService.class)
private Processor processorSEI;
Tipos de JAX-WS Clients
• Tipos de Client:
o Estático com Proxy Dinâmico
Anotação @WebServiceClient
o Dinâmico com Proxy Dinâmico
Não utiliza anotações
Através das “factories” da classe javax.xml.ws.Service
o Cliente Dispatch
Totalmente dinâmico, pois trabalha a nível de XML (JAXP)
Utilizado para consumir serviços RESTful
• No JAX-WS, não existe a opção de gerar os stubs por ferramenta. Os stubs são gerados sempre
dinamicamente, em tempo de execução, utilizando o recurso de Proxy Dinâmico do Java 5. Isto torna
os clientes portáveis e tira a necessidade de re-gerar stubs sempre que mudar de fornecedor de
container
Client Estático com Proxy Dinâmico
• Exemplo:
@WebServiceClient(
name = "ProcessorService",
targetNamespace = "http://charge-it.com/Processor",
wsdlLocation = "http://charge-it.com/Processor?wsdl"
)
public class ProcessorService extends javax.xml.ws.Service {
public ProcessorService() {
super(
new URL("http://charge-it.com/Processor?wsdl"),
new QName("http://charge-it.com/Processor", "ProcessorService")
);
}
public ProcessorService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
@WebEndpoint(name = "ProcessorPort")
public Processor getProcessorPort() {
return (Processor) super.getPort(
new QName("http://charge-it.com/Processor", "ProcessorPort"),
Processor.class
);
}
}
• Os clients estáticos com proxy dinâmico:
o Precisam extender javax.xml.ws.Service
o Devem fornecer dois construtores públicos:
Construtor default: chamando super(URL, QName), que devem ser idênticos (equals)
os valores da anotação @WebServiceClient
Construtor: URL e QName, chamando super(URL, QName)
o Devem fornecer um método @WebEndpoint para cada wsdl:port do serviço, chamando
super.getPort(QName, Class) onde o parâmetro class é a interface SEI
• Atributos de @WebServiceClient:
o name nome do wsdl:service que representa
o targetNamespace namespace do serviço
Gilberto Holms http://gibaholms.wordpress.com/
8. o wsdlLocation endereço URL para o documento WSDL do WebService
• Atributos de @WebEndpoint
o name name do wsdl:port que representa
Client Dinâmico com Proxy Dinâmico
• Exemplo:
URL wsdlLocation = new URL("http://example.org/my.wsdl");
QName serviceName = new QName("http://example.org/sample", "ProcessorService");
Service s = Service.create(wsdlLocation, serviceName); // informa o WSDL
QName portName = new QName("http://example.org/sample", "ProcessorPort");
Processor processorPort = s.getPort(portName, Processor.class);
processorPort.getPrice();
• Os clients dinâmicos com proxy dinâmico:
o Não utilizam anotações
o Informam o WSDL
o Não precisam extender javax.xml.ws.Service
o Podem ser criados através da chamada Service.create(...) de duas maneiras:
Informando o caminho do WSDL (mais comum)
Sem informar o WSDL (precisa setar outros parâmetros, pois o serviço não conhecerá
os schemas de request e response)
Client Dinâmico com Dispatch
• Exemplo:
URL wsdlLocation = new URL("http://example.org/my.wsdl");
QName serviceName = new QName("http://example.org/sample", "ProcessorService");
Service s = Service.create(serviceName); // sem informar o WSDL
Source requestMsg = ...;
QName portName = ...;
Dispatch<Source> disp = s.createDispatch(portName, Source.class, Service.Mode.PAYLOAD);
Source responseMsg = disp.invoke(requestMsg);
• Os clients dinâmicos com dispatch:
o São muito utilizados para acessar serviços RESTful
o Não precisam extender javax.xml.ws.Service
o Podem operar em dois modos:
Service.Mode.MESSAGE XML contendo o protocolo completo da mensagem
Service.Message.PAYLOAD XML apenas com o payload da mensagem
o Tipos de mensagem aceitas para T na interface Dispatch<T>:
javax.xml.transform.Source objeto TrAX / SAX
javax.activation.DataSource objeto JAF
javax.xml.soap.SOAPMessage objeto SAAJ
Java.lang.Object objeto JAXB
o Tipos de chamadas síncronas e assíncronas disponíveis:
T invoke(T msg)
Response<T> invokeAsync(T msg)
Future<?> invokeAsync(T msg, AsyncHandler<T> handler)
void invokeOneWay(T msg)
BindingProvider
• Exemplo:
Service s = Service.create(...);
Processor processorPort = s.getPort(portName, Processor.class);
BindingProvider bp = (BindingProvider)processorPort;
Map<String, Object> requestContext = bp.getRequestContext();
requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://blah/newendpoint");
requestContext.setProperty("javax.xml.ws.session.maintain", Boolean.TRUE);
Gilberto Holms http://gibaholms.wordpress.com/
9. processorPort.getPrice();
Map<String, Object> responseContext = bp.getResponseContext();
Integer responseCode = (Integer)responseContext.get(MessageContext.HTTP_RESPONSE_CODE);
• É uma API para obter o contexto da mensagem a partir do cliente
• É uma “property-bag”, um Map<String, Object> contendo referências a diversas variáveis do contexto
da mensagem em que trabalha, tanto de request quanto response
• Podemos, por exemplo, modificar a endpoint url do stub dinamicamente, setando a propriedade
“BindingProvider.ENDPOINT_ADDRESS_PROPERTY”
• Principais métodos de BindingProvider:
o getRequestContext
o getResponseContext
o getBinding
o getEndpointReference
APIs JavaSE 6
• Endpoint
o Publica uma SEI Implementation (@WebService) em um servidor standalone (socket) JavaSE,
publicando automaticamente também o WSDL
// Create and publish an endpoint
Calculator calculator = new Calculator();
Endpoint endpoint = Endpoint.publish(
"http://localhost/calculator",
calculator
);
// Stop an endpoint
endpoint.stop();
• Service
o Cria um client standalone JavaSE para acessar um serviço
// Create a Service object
CalculatorService svc = new CalculatorService();
// Create a proxy from the Service object
Calculator proxy = svc.getCalculatorPort();
// Invoke a Web service operation
int answer = proxy.add(35, 7);
Handler Framework
Gilberto Holms http://gibaholms.wordpress.com/
10. • Interface Handler<C extends MessageContext>
o Subinterface LogicalHandler<L extends LogicalMessageContext>
Define um handler independente de protocolo
LogicalMessage LogicalMessageContext.getMessage()
• Trabalha com qualquer payload XML
o Subinterface SOAPHandler<T extends SOAPMessageContext>
Define um handler para mensagens SOAP
SOAPMessage SOAPMessageContext.getMessage()
• Trabalha com uma mensagem SOAP (SAAJ API)
• Exemplo de SOAPHandler
public class MySOAPHandler implements SOAPHandler<SOAPMessageContext> {
public boolean handleMessage(SOAPMessageContext messageContext) {
SOAPMessage msg = messageContext.getMessage();
// trata a mensagem via SAAJ
return true;
}
}
• Aplicando Handlers no Client
o 1 – Implementar HandlerResolver
List<Handler> getHandlerChain(PortInfo)
public class CardServiceHandlerResolver implements HandlerResolver {
public List<Handler> getHandlerChain(PortInfo portInfo) {
List<Handler> handlerChain = new ArrayList<Handler>();
ClientAuthenticationSOAPHandler authn = new ClientAuthenticationSOAPHandler();
EnvelopeLoggingSOAPHandler logging = new EnvelopeLoggingSOAPHandler();
JAXPPayloadLoggingLogicalHandler payload = new JAXPPayloadLoggingLogicalHandler();
QName serviceName = portInfo.getServiceName();
QName portName = portInfo.getPortName();
String bindingID = portInfo.getBindingID();
if (serviceName.getNamespaceURI().equals(
"http://cardservice.handler.jaxws.company.com/service")
&& serviceName.getLocalPart().equalsIgnoreCase("CardService")) {
handlerChain.add(authn);
handlerChain.add(logging);
}
if (bindingID.equals("http://schemas.xmlsoap.org/wsdl/soap/http")) {
handlerChain.add(payload);
}
Gilberto Holms http://gibaholms.wordpress.com/
11. if (bindingID
.equals("http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/"))
{
handlerChain.add(payload);
}
return handlerChain;
}
}
o 2 – Setar a lista de Handlers na classe Service
Service service = Service.create(wsdlLoc, serviceName);
service.setHandlerResolver(ccResolver);
• Aplicando Handlers no Server
o Anotação @HandlerChain
o Seta um arquivo de configuração
@WebService(...)
@HandlerChain(file="handler-chain.xml")
public class CreditCardServiceImpl {
}
Gilberto Holms http://gibaholms.wordpress.com/