Web Services utilizando JAX-WS



Documentos relacionados
Implantação do Selo de Fiscalização Eletrônico em Minas Gerais. Manual Técnico de Informática Versão 1.4

UNIVERSIDADE. Sistemas Distribuídos

Prática em Laboratório N.01 Criando um Serviço Web via Console

Departamento de Engenharia Informática Sistemas Distribuídos. Java Web Services Cookbook

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica

Unidade 14: Web Services Prof. Daniel Caetano

SISTEMAS DISTRIBUÍDOS

Web Services em Java. Web Services JAX-WS. NetBeans 5.5. Criação de WS no NetBeans 5.5. Criação de WS no NetBeans 5.5

Aula de hoje: Web Services (Serviços Web) Processamento Paralelo Web Services. Tecnologias básicas da Web. Aplicações na Internet

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens

JPA: Persistência padronizada em Java

Computação Orientada a Serviços

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões

A Estrutura de um Web Service

Capítulo 13. WebServices. O que são WebServices. Investimento. Débito no Banco Cliente. em seu Banco. Sua Aplicação. Cotação Preços Fornecedores

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

SISTEMAS DISTRIBUÍDOS

Configuração de Cliente de Web Service HTTPS

Passando dados binários para um serviço Web

Web Services SOAP. Introdução

Manual de Integração WebService

Aula 24: Web Services (II)

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos Versão 1.1. Framework de aplicações com Web Services

APIs Java para Web Services

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

SOA na Prática Ricardo Limonta

Java Spaces Exemplos

Prof. Fellipe Araújo Aleixo

WOW Mobile Rui Miguel Miranda Ramos

LEIC/LERC 2009/10 Primeiro Teste de Sistemas Distribuídos. Grupo I [6 v]

SIOE-E: WebService público DGAEP

SOA Service Oriented Architecture. Fabiano Oss

Invocação Remota MC704

Desenvolvimento Web com Framework Demoiselle versão 1.0

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

LUIZ WAGNER ARAÚJO NUNES


Histórico de Revisões

Anotações do JAX-WS. Para Usuários de Transição

Número: Nome: Página 1 de 7

Enterprise Java Beans

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Projeto webservicejax

Web Services e DataSets

EJB 3.1: A Community Update

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Web Services na plataforma.net

Roteiro. Por que Web Services? Computação Distribuída - DCOM e CORBA. Visão Geral XML. João Gustavo Gazolla Borges, Maverson Eduardo Schulze Rosa SOAP

Criação de um Web Services em.net

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Introdução à JPA-Java Persistence API

JPA Java Persistence API. Prof. Ramon Chiara

Computação Orientada aos Serviços. Introdução Semestre de Inverno 11/12

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Criação de um Web Services em.net

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

SOA Introdução. SOA Visão Departamental das Organizações

Mapeamento Lógico/Relacional com JPA

Desenvolvimento de um Sistema de Informação Médica com Web Services e MDA

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

Aplicabilidade: visão geral

Classes Abstratas e Interfaces

Criar uma aplicação JPA2 com EclipseLink e H2

Passo a Passo. WebSphere Message Broker. Fluxo como WebService

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Tecnologias Java para Implementação de NF e Edilmar Alves Novembro/2008 edilmaralves@intersite.com.br

SISTEMAS DISTRIBUÍDOS

Frameworks - Grails. Aécio Costa

SISTEMAS DISTRIBUÍDOS

insfcanceof new public switch transient while byte continue extends for int null

Java. Marcio de Carvalho Victorino

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Lógica de Negócio com WCF

Encapsulamento de Dados

Módulo 07 Características Avançadas de Classes

Estrutura em Camadas. Estrutura em Camadas. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

PADRÃO PARA ENVIO DE . Versão 1.0

Sistemas Distribuídos

Enviando com a API JavaMail

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

Serviços Web: Arquitetura

Como sobreviver com Java 2? Saulo Arruda

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Programação Orientada a Objetos em Java

Transcrição:

Web Services utilizando JAX-WS

JAX-WS Facilitar o uso da API JAX-RPC e do modelo de implantação Anotações baseados em JSR-181 Exemplo Básico: Anotações: @WebService @WebMethod @WebParam @WebResult

Exemplo com Anotações @WebService(name = "TravelAgent", servicename="travelagentservice") @Stateless public class TravelAgentBean implements TravelAgentRemote { @PersistenceContext(unitName="titan") private EntityManager manager; @WebMethod public void createcabin(@webparam(name = "Cabin") Cabin cabin ) { manager.persist(cabin); @WebMethod @WebResult(name = "Cabin ) public Cabin findcabin(@webparam(name = "ID ) int pkey ) { return manager.find(cabin.class, pkey);

A anotação WebService Deve ser colocada na classe de implementação de bean de sessão sem informação de estado (ou POJO) @WebService(name,wsdlLocation,endpointInterface, portname) name: nome do serviço Web quando mapeado para WSDL. Assume como padrão o nome da classe Java ou interface. wsdllocation: define a url do documento wsdl. endpointinterface: externaliza o contrato do serviço Web na forma de uma interface Web. portname: porta WSDL utilizada.

A anotação WebMethod Métodos anotados com @WebMethod estarão disponíveis para o serviço Web. Se a classe for anotada com @WebService e nenhum método com @WebMethod, todos os métodos estarão disponíveis no Web Service. Boa prática de projeto para reduzir dependências entre módulos. Atributo operationname é utilizado para definir a operação WSDL que o método anotado implementa. Se não especificado, o nome do método é utilizado.

A anotação WebParam Permite controlar o WSDL gerado para um método Java sinalizado com @WebMethod Se o estilo for RPC/LITERAL(wsdl:part), o atributo name() configurará o nome wsdl:part Exemplo (produz um wsdl): @WebMethod(OperationName = CheckStatus ) public int checkstatus( @WebParam(name = ReservationID ) String reservationid @WebParam(name = CustomerID, mode = WebParam.Mode.OUT) javax.ws.holder<integer> customerid){ customerid.value = getcustomerid(reservationid); Return status;

A anotação WebResult Fornece a mesma funcionalidade pra valores de retorno que @WebParam oferece para parâmetros de métodos

Exemplo de WS Serviço package teste; public class Testando { int cont; public Testando(){ cont = 0; public int TestandoOp(String param1) { return (param1.length()); public int TestandoOp1() { return (++cont);

Exemplo de WS Cliente package client; public class TesteCliente { private Testando proxy; public static void main(string[] args) { TesteCliente client = new TesteCliente(); client.dotest(args); public void dotest(string[] args) { proxy = new Testando(); int ret = proxy.testandoop1(); System.out.println("Resultado testandoop1: "+ret); ret = proxy.testandoop("1234567890"); System.out.println("Resultado testandoop: "+ret); ret = proxy.testandoop1(); System.out.println("Resultado testandoop1: "+ret);

Exemplo de WS Serviço* package teste; import javax.jws.webservice; import javax.jws.webmethod; import javax.jws.webparam; @WebService( name = "Testando", servicename = "Teste") public class Testando { int cont; public Testando(){ cont = 0; @WebMethod( operationname = "TestandoOp") public int TestandoOp( @WebParam( name = "param1") String param1) { return (param1.length()); @WebMethod( operationname = "TestandoOp1") public int TestandoOp1() { return (++cont);

Exemplo de WS - WSDL <?xml version="1.0" encoding="utf-8"?><!-- Published by JAX-WS RI at http://jaxws.dev.java.net. RI's version is JAX-WS RI 2.1.3.3-hudson-757-SNAPSHOT. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3.3- hudson-757-snapshot. --><definitions xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://teste/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetnamespace="http://teste/" name="teste"> <types> <xsd:schema> <xsd:import namespace="http://teste/" schemalocation="http://localhost:8080/testando/teste?xsd=1"></xsd:import> </xsd:schema> </types> <message name="testandoop"> <part name="parameters" element="tns:testandoop"></part> </message> <message name="testandoopresponse"> <part name="parameters" element="tns:testandoopresponse"></part> </message>

Exemplo de WS - WSDL <porttype name="testando"> <operation name="testandoop"> </operation> </porttype> <input message="tns:testandoop"></input> <output message="tns:testandoopresponse"></output> <binding name="testandoportbinding" type="tns:testando"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding> <operation name="testandoop"> <soap:operation soapaction=""></soap:operation> <input> <soap:body use="literal"></soap:body> </input> <output> <soap:body use="literal"></soap:body> </output> </operation> </binding> <service name="teste"> <port name="testandoport" binding="tns:testandoportbinding"> </port> </service> </definitions> <soap:address location="http://localhost:8080/testando/teste"></soap:address>

Exemplo de WS - XSD <?xml version="1.0" encoding="utf-8"?><!-- Published by JAX-WS RI at http://jaxws.dev.java.net. RI's version is JAX-WS RI 2.1.3.3-hudson-757-SNAPSHOT. --><xs:schema xmlns:tns="http://teste/" xmlns:xs="http://www.w3.org/2001/xmlschema" version="1.0" targetnamespace="http://teste/"> <xs:element name="testandoop" type="tns:testandoop"></xs:element> <xs:element name="testandoopresponse" type="tns:testandoopresponse"></xs:element> <xs:complextype name="testandoop"> <xs:sequence> <xs:element name="param1" type="xs:string" minoccurs="0"></xs:element> </xs:sequence> </xs:complextype> <xs:complextype name="testandoopresponse"> <xs:sequence> <xs:element name="return" type="xs:int"></xs:element> </xs:sequence> </xs:complextype> </xs:schema>

Exemplo de WS Cliente* package client; import usingteste.testando; import usingteste.teste; public class TesteCliente { private Teste service; private Testando proxy; public static void main(string[] args) { TesteCliente client = new TesteCliente(); client.dotest(args); public void dotest(string[] args) { try { service = new Teste(); proxy = service.gettestandoport(); int ret = proxy.testandoop1(); System.out.println("Resultado testandoop1: "+ret); ret = proxy.testandoop("1234567890"); System.out.println("Resultado testandoop: "+ret); ret = proxy.testandoop1(); System.out.println("Resultado testandoop1: "+ret); catch(exception e) { e.printstacktrace();