Вы находитесь на странице: 1из 22

Flex 4 + BlazeDS 4 + Java + DataWizards

Ol pessoal A grande sensao ontem (23/03) foi a publicao pelo guru Christophe Coenraets demonstrando um vdeo aonde atravs do Flash Builder ele consumiu recursos de um projeto Java sem codificao no ambiente Flex. Nesse artigo vou demonstrar como trabalhar com esse recurso passo-a-passo. Bom, primeiro passo voc ter em seu computador todas as ferramentas necessrias. Neste caso, voc ir utilizar o Eclipse Galileu JEE, Flash Builder (stand-alone ou plugin) e do BlazeDS 4 Beta. A aplicao que desenvolveremos nesse tutorial a mesma desenvolvida no post anterior, com a diferena que aonde foi feito codificao manual no ambiente Flex, agora, iremos utilizar o Flash Builder para a gerao do cdigo fonte. Bom, no Eclipse Galileo para iniciar um projeto, eu escolhi a opo File -> New -> Web -> Dynamic Web Project, conforme abaixo:

E depois configurei o projeto da seguinte maneira:

Bom, depois de configurar o projeto, iremos criar um Bean para serializarmos algumas informaes que sero enviadas para o Flex. A idia bastante simples, irei criar um model para uma simples agenda de contato.
?

Download Contato.java
1 2 3 4 5 6 7 8 package br.com.horochovec.model; import java.io.Serializable; /** * Modelo para agenda de contato * @author Stefan Horochovec */

9 public class Contato implements Serializable { 10 11 /** 12 * 13 */ 14 private static final long serialVersionUID = 1L; 15 16 private String nome; 17 18 private String email; 19 20 public String getNome() { 21 return nome; 22 } 23 24 public void setNome(String nome) { 25 this.nome = nome; 26 } 27 28 public String getEmail() { 29 return email; 30 } 31 32 public void setEmail(String email) { 33 this.email = email; 34 } 35 36 }

E em seguida, criarei um servio que ir adicionar em um ArrayList os contatos que sero enviados do Flex para o Java.
?

Download ContatoService.java
package br.com.horochovec.service; import java.util.ArrayList; import br.com.horochovec.model.Contato; /** * Servio para manuteno dos contatos * @author Stefan Horochovec */ public class ContatoService { private static ArrayList listContato = new ArrayList(); /** * Adiciona um contato a lista * @param contato */ public void addContato(Contato contato) { listContato.add(contato); } /** * Retorna a lista de contatos * @return */ public ArrayList getListContato() { return listContato; } }

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Aps isso, j temos uma simples aplicao pronta para trabalhar com o Flex, basta apenas configurar os arquivos .XML para que o BlazeDS possa funcionar. A partir de agora necessrio que voc j tenha descompactado o arquivo blazeds-bin-4.0.0.14910.zip. Aps descompact-lo, voc ter que descompactar o arquivo blazeds.war que surgiu da descompactao anterior. Como resultado, obter o seguinte:

Bom, podemos copiar para o diretrio WebContent/WEB-INF de nosso projeto Java, os diretrios: flex/, lib/,spring/ e os arquivos: flexservlet.xml e web.xml. Aps copiar esse contedo, o primeiro arquivo que iremos configurar, o arquivo web.xml que fica dentro da pasta WebContent/WEB-INF/. Para essa configurao, iremos alterar o contedo do arquivo web.xml que veio dentro do arquivo blazeds.war que foi previamente descompactado. Perceba que os parametros da aplicao foram alterados e tambm foi alterado o valor da propriedade useAppserverSecurity para false. O resultado ser:
?

Download web.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/webapp_2_3.dtd"> <web-app> <display-name>FlexDuck</display-name> <description>FlexDuck</description> <!-- Http Flex Session attribute and binding listener support --> <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> <!-- MessageBroker Servlet --> <servlet> <servlet-name>MessageBrokerServlet</servlet-name> <display-name>MessageBrokerServlet</display-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> <init-param> <param-name>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>RDSDispatchServlet</servlet-name> <display-name>RDSDispatchServlet</display-name> <servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class> <init-param> <param-name>useAppserverSecurity</param-name> <param-value>false</param-value> </init-param> <load-on-startup>10</load-on-startup> </servlet> <servlet-mapping id="RDS_DISPATCH_MAPPING"> <servlet-name>RDSDispatchServlet</servlet-name> <url-pattern>/CFIDE/main/ide.cfm</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>MessageBrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <!-- for WebSphere deployment, please uncomment --> <!-<resource-ref> <description>Flex Messaging WorkManager</description> <res-ref-name>wm/MessagingWorkManager</res-ref-name> <res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> --> <!-<context-param> <param-name>contextConfigLocation</param-name>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

66 <param-value> 67 /WEB-INF/spring/*-config.xml 68 </param-value> 69 </context-param> 70 71 <filter> 72 <filter-name>springSecurityFilterChain</filter-name> 73 <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 74 </filter> 75 76 <filter-mapping> 77 <filter-name>springSecurityFilterChain</filter-name> 78 <url-pattern>/*</url-pattern> 79 </filter-mapping> 80 81 <listener> 82 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 83 </listener> 84 85 <servlet> 86 <servlet-name>flex</servlet-name> 87 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 88 <load-on-startup>1</load-on-startup> 89 </servlet> 90 91 <servlet-mapping> 92 <servlet-name>flex</servlet-name> 93 <url-pattern>/messagebroker/*</url-pattern> 94 </servlet-mapping> 95 96 --> 97 </web-app>

Feito isso, iremos adicionar dentro da pasta WebContent a pasta flex que foi previamente descompactada do arquivo blazeds.war, e tambm todo o contedo da pasta lib para dentro do diretrio WebContent/WEB-INF/lib, obtendo o seguinte resultado:

Feito isso, iremos configurar o nico arquivo .xml do BlazeDS para que esse exemplo funcione. O arquivo WEB-INF/flex/remoting-config.xml. Iremos adicionar uma configurao para informar ao BlazeDS sobre o servio ContatoService que foi criado anteriormente, conforme abaixo:
?

Download remoting-config.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <service id="remoting-service" 3 class="flex.messaging.services.RemotingService"> 4 5 <adapters> 6 <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" 7 default="true"/> 8 </adapters> 9 10 <default-channels> 11 <channel ref="my-amf"/> 12 </default-channels> 13 14 <destination id="ContatoService"> 15 <properties> 16 <source>br.com.horochovec.service.ContatoService</source> 17 </properties> 18 </destination> 19

</service>

Aps essa ltima configurao, podemos exportar o nosso projeto para um servidor web. Nesse caso, utilizaremos o Tomcat 6.x. Neste artigo no entrarei em detalhes de sua instalao e configurao. Bom, as configuraes no projeto Java j foram finalizadas, e considerando que o deploy da aplicao dentro do Tomcat j foi realizado, a partir deste momento iremos trabalhar diretamente com o Flash Builder. Neste artigo irei demonstrar a comunicao utilizando o Flash Builder e a verso do Flex 4. Voc pode fazer o download da verso 4.0 do Flash Builder e do Flex 4 SDK aqui. Aps instalado e iniciado o Flash Builder, iremos criar um projeto no seguinte molde:

As configuraes feitas na segunda tela de configurao so bastante importantes. Fazendo elas da forma correta, voc estar apto a iniciar o projeto sem fazer novas configuraes.

Na primeira linha, em Root Folder, foi apontado o diretrio de deploy da minha aplicao dentro do meu servidor de aplicao. Na segunda linha, em Root URL, foi apontado o caminho da URL para abertura da aplicao em meu navegador de internet. Na terceira linha, em ContextRoot, apontamos o nome da nossa aplicao. Na quarta e ultima linha, em Output folder, apontamos o diretrio de onde deve ser exportados os arquivos quando compilados. Para esse tutorial, foi apontado diretamente o diretrio de minha aplicao dentro do meu servidor Tomcat. Como resultado, o Flash Builder ir criar e disponibilizar no workspace um projeto da seguinte forma:

muito importante fazer a conferncia de uma configurao gerada automaticamente pelo Flash Builder em cima dos parametros informados na segunda etapa da criao do projeto. No menu Project v na opo Properties e confira as propriedades de acordo com a imagem abaixo:

Iremos criar uma tela no Flash Builder que contenha dois campos text input para preencher as informaes do nome e email do contato, e tambm um grid para conter a lista dos contatos que sero adicionados no Java e retornaro ao Flex atravs do BlazeDS.

Segue sua implementao


?

Download FlexDuck.mxml
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" height="419"> <fx:Declarations> </fx:Declarations> <s:Panel width="400" height="137" title="Cadastro" left="10" top="10"> </s:Panel> <s:Panel x="12" y="166" width="400" height="227" title="Pesquisa" left="10"> <mx:DataGrid x="10" y="10" bottom="30" left="5" right="5" top="5" id="grid"> id="button"/> </s:Panel> </s:Application> </mx:DataGrid> <s:Button x="-1" y="163" label="Listar todos" left="5" bottom="5"

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

A partir deste momento, usaremos os recursos de Data/Services presentes no Flash Builder 4 para a gerao da comunicao com o Java. Primeiro, iremos conectar o Flash Builder com o BlazeDS. Para isso, na aba Data/Services clique na opo Connect to Data/Service. Caso ela no esteja disponivel em seu workspace, v ao menu Window e marque a opo Data/Services.

Feito isso, na prxima tela, marque a opo BlazeDS, clique em Next e marque a opo para no utilizar controle de acesso. Conforme as telas abaixo:

Na ltima tela, voc deve marcar os servios que deseja adicionar a aplicao, com opo de definio de endereos de pacotes e depois finalizar a criao do Objeto, conforme:

Aps finalizar a configurao do servio remoto, obtemos o seguinte resultado no Flash Builder.

Agora, iremos definir que no momento do click no boto logo abaixo do DataGrid, a aplicao dever invocar o mtodo getListContato(). O primeiro passo para isso, clicar com o boto direito sobre o boto com do painel que contem o DataGrid e marcar a opo Generate Service Call. Feito isso configure a tela do servio conforme apresentado abaixo:

Feito isso, selecione o DataGrid e clicando com o boto direito dentro dele, selecione a opo Bind to Data e configure a tela conforme informado abaixo:

Nesse momento, o painel responsvel por listar as informaes da nossa agenda de contato j est finalizado. Agora, clicando novamente com o boto direito em cima do DataGrid, clique na opo Generate Details Form e configure a tela conforme abaixo:

O formulrio gerado ser adicionado no mesmo container que estiver o DataGrid, portanto, ser necessrio reposicion-lo dentro do Panel j criado, conforme imagem abaixo:

Ok, agora basta configurarmos o clique do boto de salvar para que adicione novos contatos. O primeiro passo alterar o label do boto para Cadastrar. O segundo passo clicar com o boto direito sobre o boto de cadastro e selecionar a opo Generate Service Call e configure a opo da seguinte forma:

Ao terminar essa configurao, voc ser direcionado diretamente para a implementao do click do boto com a chamada do servio remoto. A implementao gerada do mtodo ser a seguinte:
?

Download FlexDuck.mxml

1 protected function button2_clickHandler(event:MouseEvent):void 2{ 3 contato.email = emailTextInput.text; 4 contato.nome = nomeTextInput.text; 5 addContatoResult.token = contatoService.addContato(/*Enter value(s) for */ 6 arg0); }

E voc dever fazer a seguinte alterao. Adicionar o parametro a ser enviado no mtodo addContato() e inicializar o objeto contato, da seguinte forma:
?

Download FlexDuck.mxml

1 protected function button2_clickHandler(event:MouseEvent):void 2{ 3 contato = new Contato(); 4 contato.email = emailTextInput.text; 5 contato.nome = nomeTextInput.text; 6 addContatoResult.token = contatoService.addContato(contato); 7}

Com isso, nosso projeto estar enviado as informaes para o Java. Agora, para finalizar, iremos adicionar um evento para disparar um mtodo quando tivermos o resultado do servio remoto. No CallResponder com o id addContatoResult pressione o CTRL + SPACE para acionar o code complete e acione o event result, e em seguida, solicite para que seja adicionado o ResultHandler para o event adicionado, conforme imagens abaixo:

E na funo adicionada no cdigo devemos fazer a seguinte implementao:


?

Download FlexDuck.mxml

1 protected function addContatoResult_resultHandler(event:ResultEvent):void 2{ 3 contato = new Contato(); 4 getListContatoResult.token = contatoService.getListContato(); 5}

Rodando a aplicao, teremos como resultado no navegador o seguinte:

E como resultado final no cdigo fonte:


?

Download FlexDuck.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" height="419" xmlns:services="services.*" xmlns:valueObjects="valueObjects.*"> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.ResultEvent; protected function button_clickHandler(event:MouseEvent):void { getListContatoResult.token = contatoService.getListContato(); } protected function button2_clickHandler(event:MouseEvent):void { var contato : Contato = new Contato(); contato.email = emailTextInput.text; contato.nome = nomeTextInput.text; addContatoResult.token = contatoService.addContato(contato); } protected function addContatoResult_resultHandler(event:ResultEvent):void { contato = new Contato(); getListContatoResult.token = contatoService.getListContato(); } ]]> </fx:Script> <fx:Declarations> <s:CallResponder id="getListContatoResult"/> <services:ContatoService id="contatoService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/> <valueObjects:Contato id="contato"/> <s:CallResponder id="addContatoResult" result="addContatoResult_resultHandler(event)"/> </fx:Declarations> <fx:Binding source="grid.selectedItem as Contato" destination="contato"/> <s:Panel width="400" height="137" title="Cadastro" left="10" top="10"> <mx:Form defaultButton="{button2}" x="1" y="-4" bottom="0" left="0" right="0" top="0"> <mx:FormItem label="Email"> <s:TextInput id="emailTextInput" text="{contato.email}"/> </mx:FormItem> <mx:FormItem label="Nome"> <s:TextInput id="nomeTextInput" text="{contato.nome}"/> </mx:FormItem> <s:Button id="button2" label="Cadastrar" click="button2_clickHandler(event)"/> </mx:Form> </s:Panel>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

59 60 61 62 63 64 65 66

<s:Panel x="12" y="166" width="400" height="227" title="Pesquisa" left="10"> <mx:DataGrid x="10" y="10" bottom="30" left="5" right="5" top="5" id="grid" dataProvider="{getListContatoResult.lastResult}"> <mx:columns> <mx:DataGridColumn headerText="email" dataField="email"/> <mx:DataGridColumn headerText="nome" dataField="nome"/> </mx:columns> </mx:DataGrid> <s:Button x="-1" y="163" label="Listar todos" left="5" bottom="5" id="button" click="button_clickHandler(event)"/> </s:Panel> </s:Application>

Para fazer o download do projeto clique aqui. Espero ter ajudado, um abrao
Written by Stefan Horochovec maro 24th, 2010 at 11:55 pm Posted in BlazeDS,Flex 4,Java Tagged with BlazeDS, DataWizards, Flash Builder, Java Flash Builder + Flex SDK 4 + Java + BlazeDS Tutorial Flex 4 Skin BackgroundGradientColors

27 Responses to 'Flex 4 + BlazeDS 4 + Java + DataWizards'


Subscribe to comments with RSS or TrackBack to 'Flex 4 + BlazeDS 4 + Java + DataWizards'. 1. [...] Flex 4 + BlazeDS 4 + Java + DataWizards [...] Flex 4 SDK e Flash Builder 4 liberados oficialmente | Erko Bridee
25 mar 10 at 0:11

2.

Pois Stefan, o flex 4 vem recheado de processo praticamente autnomos, se por um lado ser super facil ligar o flex a qualquer outra linguagem backend, eu acredito que esta nova verso vai encher as listas de discusso com milhares de duvidas relativas nova arquitetura de cdigo mxml e acima de tudo vai fazer com que muitos desistam simplesmente do flex 4! mas isso so os fracos! hehehehe Mas sem duvida esta nova verso no poupou esforos da parte da adobe, e simplesmente est genial. Parabens pelo tutorial, com certeza ser muito tuil, principalmente quando uma das minhas metas desse ano aprender java! Abrao. Mrio Santos
26 mar 10 at 4:07

3.

Stefan, Comecei a testar o FB4 num sistema que tenho e estou passando por um nico problema. Meu sistema foi dividido em 2 projetos (1 Dynamic Web Project + Flex Project), no entanto, toda vez que altero o projeto Flex o swf gerado (na pasta WebContent do projeto Java) no automaticamente publicado no Tomcat como acontecia no FB3, estou contornando esse BUG dando um F5 no projeto Java a cada compilao. Sabe como devo proceder para ajustar isso? Desde j agradeo a ateno, Daniel
26 mar 10 at 21:43

4.

Opa, como vai Mrio, obrigado pela visita ao blog! Concordo contigo, acredito que muitos iro desistir do Flex4 porque a coisa ficou mais complexa mesmo, o novo SDK muito melhor, mas bem mais complicado de trabalhar com ele. A simplicidade do antigo SDK na forma de trabalhar com o Flex chamou muitos usurios, acho que nessa nova verso isso fica a critrio da IDE, o SDK ficou melhor, mas ao mesmo tempo bem mais complexo! Mas como voc mesmo disse, isso so para os fracos Abrao Stefan Horochovec
27 mar 10 at 13:30

5.

@Daniel Ol, isso bem simples de resolver. Basta voc mudar o local de deploy do teu projeto Flex para dentro do teu servidor web, seja ele um tomcat ou um Jboss da vida por exemplo. Como proceder? V ao menu Project -> Properties e na janela que abrir, no menu esquerdo, selecione a opo Flex Server e troque o caminho na opo Output Folder. Espero ter ajudado e obrigado por visitar o blog! Stefan Horochovec
27 mar 10 at 13:36

6. Att., Daniel

Obrigado pela pronta resposta Stefan, alias bem simples mesmo. Ah, acredito que ainda esteja em tempo de parabeniz-lo pela tima qualidade do post.

27 mar 10 at 22:56

7.

@Stefan, Hoje aqui, comecei a notar um pequeno problema usando este procedimento. Toda vez que altero um arquivo de configurao e re-inicio o servidor web ele limpa o diretrio da aplicao removendo todos os meus swfs. Voc j passou por isso? Se sim, como resolveu? Desculpe o incmodo. Daniel
29 mar 10 at 16:11

8.

Stefan,

parabns pelo post! H tempos venho procurando por algo semelhante, porm sem sucesso. Estou com um problema. Fiz tudo do jeito que voc falou, mas quando crio o projeto no FB4 e mando rodar s para testar d o seguinte problema: HTTP Status 404 /FlexDuck//FlexDuck.html type: status report.. e na descrio diz que o recurso no est disponvel. J tenho minha aplicao no diretrio webapps do Tomcat 6.0.24. E vi que os arquivos do projeto Flex foram compilados l dentro quando tentei rodar a aplicao. Quando clico duas vezes direto no arquivo.html.. tudo funciona bem. Porm no roda pelo servidor. Pode me dar uma ajuda? Danilo
12 abr 10 at 16:36

9.

E o engraado, aparecem duas barras // .. no erro, confira: HTTP Status 404 /FlexDuck//FlexDuck.html Danilo
12 abr 10 at 16:39

10.

Stefan, Fiz todo o procedimento, mas quando eu tento fazer a conexo com o BlazeDS, seleciono no password required e clico em OK, ele me retorna a seguinte mensagem: RDS server message: Connection refused: connect. O que eu to fazendo de errado ? voc poderia me ajudar ?? Thanks Kleyton
14 abr 10 at 15:43

11.

@Kleyton Faa o deploy do projeto java em seu Tomcat e o Flash Builder ir se conectar ao servlet e listar os servios remotos. Abrao Stefan Horochovec
16 abr 10 at 2:33

12.

Muito bom stefan, j tinha testado o wizard at como uma expectativa muito boa, e realmente simplifica muito a comunicao com os servios disponibilizados no backend mas no caso do wizard do blazeds no obtive o sucesso que gostaria, como meus remoting-config no mapeio classes java e sim uso factory do spring o blazeds(Wizard) no conseguiu mapear meu servios, ento pelo que entendi assim como no visual studio da M$ o wizard servem em 90% dos casos o que j melhor que nada Abraos! jandersonfc
7 mai 10 at 9:49

13.

Artigo sensasional mas apareceu um problema aqui RDS server message: erro executing RDS command. Status code: 404, reason: not found Obrigado pela ajuda desde j

ThiagoVentura
27 mai 10 at 11:51

14.

@Thiago Antes de voce tentar conectar com o RDS, faa o deploy em seu servidor de aplicao e deixe ele iniciado. Deve funcionar perfeitamente dai. Abrao e obrigado por visitar o blog! Stefan Horochovec
30 mai 10 at 13:27

15. Ricardo

@danilo tem certeza que seu servidor TomCat est startado cara?

4 jun 10 at 9:38

16.

ola como eu fao pra na hora que eu compilo o projeto e publico no webapp do tom cat pra ele nao publicar os .java do projeto so os .class???? Andre
6 jul 10 at 16:38

17.

Bom dia Stefan, baixei o BlazeDs porm ao descompactar o .war e acessar a pasta WEB-INF no encontrei a pasta Spring nem o arquivo flex-servlet.xml, a verso do BlazeDS que baixei foi a blazeds-bin-4.0.0.14931 Toni
17 jul 10 at 12:46

18.

Projeto ficou muito bem escrito parabns mesmo, so que gostaria de saber como deve ser trabalhada esta mesma classe se forem acrescentado a ela DataNasc tipo Date e Salario tipo Double, sei que no tem muito a ver estes atribuitos com a classe contato mas que ja tentei de tudo e no consegui implementar.

Lazaro
25 set 10 at 13:57

19.

Toda vez que chamo pela primeria vez meu mtodo do Remote Object dispara a exceo lista no final deste post. Entretanto depois o sistema funciona perfeitamente e todos os mtodos so executados corretamente sem exceo. Tentei de tudo mas no encontrei uma resposta. como se no tivesse por default um canal aberto e este canal fosse aberto somente depois da primeira conexo. Segue a abaixo a exceo: 22:08:50,687 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009 22:08:50,734 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 2m:13s:94ms 22:10:00,062 ERROR [[DispatcherServlet]] Servlet.service() for servlet DispatcherServlet threw exception java.lang.NoSuchMethodError: edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock$NonfairSync.setExclusiveOwnerThread(Ljava/lang/Thread;)V at edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186) at edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:266) at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap$Segment.put(ConcurrentHashMap.java:418) at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:884) at flex.messaging.HttpFlexSession.setHttpSession(HttpFlexSession.java:550) at flex.messaging.HttpFlexSession.getFlexSession(HttpFlexSession.java:251) at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:74) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) Romulo
16 out 10 at 22:23

20.

Cara voc no poderia fazer uma vdeo aula para facilitar mais pra nossos estudo Se for possvel eu agradeo Rafael Faria
15 mar 11 at 15:15

21. obrigado Leandro

O Download do exemplo nao esta funcionando, pode postar novamente ou me enviar por e-mail

19 abr 11 at 8:42

22.

Stefan estou seguindo o tutorial passo a passo mas acontece o seguinte: quando clico em Conect to Data/Services ele acha a classe ContatoService na lista e o pacote que ela se encontra mas da o seguinte erro: br.com.horochevec.service.ContatoService is not available in the specified location Try importing by unselecting destination ContatoService pode me ajudar? Valeu Gustavo
24 abr 11 at 2:39

23. Tiago Zis

Valeu Stefan timo post ajudou bastante.

26 abr 11 at 14:14

24.

Valeu Thiago, Obrigado por comentar o post, abrao Stefan Horochovec


29 abr 11 at 20:30

25.

Fala Gustavo D uma conferida no teu remoting-config.xml e veja se esta declarado o servio corretamente. Caso voc deixe algum servio mapeado e a classe no exista ele vai dar esse erro. Abrao, qualquer coisa pergunta ai fera. Obrigado por visitar o blog Stefan Horochovec
29 abr 11 at 20:32

26. Att.

Boa Noite Stefan, parabns pelo tutorial esta de tima qualidade!. Obrigado me ajudou muito!

Mrcio Zonta Marcio Zonta


3 set 11 at 19:56

27.

Oi Mrcio, Obrigado pelo comentrio, fico feliz em ter ajudado! Abrao Stefan Horochovec
6 set 11 at 10:38

Вам также может понравиться