Você está na página 1de 10

Criao de Projeto com suporte a Web Service JAX-WS SOAP (CXF)

Para disponibilizar um web service, vamos utilizar o framework Apache CXF (http://cf!apache!or"/#!
$ CXF % um framework open source de web services, &ue est' em atividade, sendo &ue o (ltimo
release foi liberado em )*+,! $utros framework podem ser utilizados, mas por facilidade e praticidade
(&uanto ao c-di"o "erado#, neste curso utilizaremos o CXF! $ ambiente eclipse .' est' confi"urado para
utilizar a vers/o )!0!+*!
1nicialmente ser' criado um pro.eto do tipo 23namic 4eb Pro.ect!
5m se"uida, o web service % criado a partir de uma classe 6ava!
Por fim, veremos como testar o web service atrav%s do 7oap81!
+! Criar um pro.eto do tipo 23namic 4eb Pro.ect!
9ar"et :untime: Apache 9omcat
4eb module version: ;!*
<a ;
a
tela do assistente, marcar a op=/o para criar o ar&uivo web!ml
+
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
)! Aplicar a faceta JCXF )!* 4eb 7ervicesK ao pro.eto!
Lot/o direito sobre o pro.eto M Propriedades M Pro.ect Facets M Farcar CXF )!* 4eb 7ervices
)
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
;! Criar uma classe 6ava simples: Calculadora7ervice!
,! Adicionar na classe a anota=/o N4eb7ervice, definindo o nome do servi=o!
1mplementar os m%todos &ue ser/o epostos no servi=o, marcando?os com N4ebFethod
1dentificar os parOmetros dos m%todos, com N4ebParam
$ c-di"o a se"uir apresenta um eemplo!
package br.udesc.calculadora;
@WebService(serviceName = "CalculadoraService")
public class CalculadoraService{
/** Operacao de somar dois valores. */
@WebMe!od(operaio"Name = "somar"# acio" = "somar")
public int somar(@Web$aram("ame = "valor%") int valor%#
@Web$aram("ame = "valor&") int valor&) {
return valor% ' valor&;
(
(
;
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
P! Clicar com o bot/o direito sobre a classe e escolher a op=/o <ew M $ther M 4eb 7ervice
9ipo de web service: Lottom up 6ava bean web service
Farcar o nIvel Jdevelop serviceK
$bservar a confi"ura=/o:
7erver runtime: 9omcat
4eb service runtime: Apache CXF
7ervice pro.ect: o seu pro.eto
A op=/o Client 93pe, deiar como no client "eneration!
,
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
Q! <a pr-ima tela, deiar op=Res desmarcadas!
P
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
0!
S! <a tela de anota=Res, as mesmas .' vir/o marcadas, pois s/o identificadas no c-di"o!
Q
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
T! <a tela de op=Res de "era=/o:
U desmarcar a op=/o JEenerate 4rapper and Fault LeansK!
U escolher 7$AP Lindin" +!) (moderno e mais fleIvel#! Para conhecer a diferen=a entre +!+ e
+!), ve.a http://www!w;!or"/)**;/*Q/soap++?soap+)!html
+*! <a (ltima tela do assistente, n/o % preciso alterar op=Res!
0
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
++! Para implantar/eecutar o pro.eto no servidor, basta adicion'?lo ao servidor!
Lot/o direito sobre o servidor 9omcat v0!* server M add/remove M adicionar o pro.eto
+)! Para verificar o seu web?service, inicie o servidor, e verifi&ue os servi=os disponibilizados pela
aplica=/o atrav%s da se"uinte 8:B: http://localhost:S*S*/Calculadora47/services/
Observao:
Calculadora47 % o nome do pro.eto! Para testar outros pro.etos, altere o nome na 8:B!
S
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
esta!do o Web Service com Soap"#$
$ 7oap81 % uma ferramenta para testar web services (http://sourcefor"e!net/pro.ects/soapui/#
$ 5clipse possui um plu"in para o 7oap81, &ue permite invocar opera=Res de web services!
<este roteiro veremos como criar uma invoca=/o para a Calculadora7ervice!
+! <a "uia 7oap81 <avi"ator, clicar bot/o direito sobre Pro.ects M <ew 7oap81 Pro.ect!
)! 1nformar a 8:B do 472B do web service! 5ssa 8:B pode ser obtida a partir da lista"em dos web
services do 9omcat (ver passo +) do roteiro acima#!
T
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos
;! 7er' criada uma re&uisi=/o de teste para cada opera=/o do servi=o! Para eecutar a re&uisi=/o
de teste, clicar com o bot/o direito sobre a re&uisi=/o da opera=/o, e escolher a op=/o J7how
:e&uest 5ditorK!
,! Preencher os dados da re&uisi=/o, e clicar em J7ubmitK (bot/o verde/pla3, no canto superior do
painel da es&uerda#!
A re&uisi=/o ser' submetida ao web service, e a resposta ser' mostrada no painel da direita!
+*
8<1>5:712A25 2$ 579A2$ 25 7A<9A CA9A:1<A ? 8257C
C5<9:$ 25 528CA@A$ 78P5:1$: 2$ AB9$ >AB5 2$ 19A6AC ? C5A>1
PD7 E:A28A@A$ 5F 5<E5<GA:1A 25 7$F94A:5
217C1PB1<A: 9endHncias 5mer"entes em 7istemas 2istribuIdos
P:$F577$:: Fernando dos 7antos