Plugin Flex to Vraptor - RESOLVIDO

11 respostas
marcelomello

Olá pessoal,

Como que está o plugin para utilizar Flex (BlazeDS) para o Vraptor?
Tentei baixar o .jar mas deu um erro.

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>1F65BCA5940ADC5C</RequestId>
<HostId>
AaZ5fbfDJFpdPBq2sFUynvpwlt7VTSU+bmC4iaeEfgQByMWpxLreZc7SGsk9Rr3e
</HostId>
</Error>

Preciso criar um user no GIT e logar para baixar ?

Tbém percebi um SNAPSHOT do VRaptor 3.3.2… preciso dele para utilizar ?
Ou com o 3.3.1 já

Marcelo

11 Respostas

davidpaniz

Olá Marcelo,

O plugin deveria funcionar com o VRaptor 3.3.1 sim.

Pra fazer o download do jar basta fazer o download em https://github.com/caelum/vraptor/downloads. Não é preciso criar usuário. Acabei de notar que o github estava com problema no arquivo, mas já pode tentar baixar novamente que agora vai. (Alterei a versão do arquivo só pro Github aceitar, mas o código é o mesmo da versão 0.2.0)

marcelomello

Obrigado David,

Foi justamente na sua página que li sobre este plugin. (http://www.davidpaniz.com/tag/blazeds/)
Agradeço pela disponibilização.

Se surgir dúvidas e problemas posso perguntar sobre o assunto?

Abraço,

Marcelo

davidpaniz

Claro! Quanto mais gente usando melhor! Qualquer dúvida é só entrar em contato.

C

David,

fiz o download do plugin-flex do GIT e seguías dicas de configuração.

Quando uso o Flex sem o VRaptor, da maneira “normal”, por exemplo se eu acesso http://gandalf:8080/Projeto/messagebroker/amf eu chego na servlet AMF do blazeDS.

Mas usando o plugin-flex isso não funciona? Ou preciso além de configurar o plugin também fazer esta configuração normal do blazeds?

Obrigado!

davidpaniz

Oi Cerli,

Você precisa sim de uma configuração “normal” do BlazeDS. Não fizemos todo o trabalho de serialização, o que fizemos foi apenas um plugin para ele assim como o Spring. Você configura o BlazeDS ou o GraniteDS e aí configura o nosso plugin pra que as requisições dele cheguem nos controllers do VRaptor.

Prometo melhorar a documentação em breve!

Abraços,

C

David,

obrigado pelo resposta, mas fiz a configuração do blaze e recebo sempre o seguinte:

C

Mudei a factory de:

<factories> <factory id="vraptor" class="br.com.caelum.vraptor.flex.VRaptorServiceFactory" /> </factories>

para:

<factories> <factory id="vraptor" class="br.com.caelum.vraptor.flex.blazeds.VRaptorServiceFactory" /> </factories>

e parece que mudou o erro para:

exception

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/httpclient/UsernamePasswordCredentials
	flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:184)
	org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
	org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
	org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
	org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
	org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoClassDefFoundError: org/apache/commons/httpclient/UsernamePasswordCredentials
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Unknown Source)
	flex.messaging.util.ClassUtil.createClass(ClassUtil.java:65)
	flex.messaging.Destination.createAdapter(Destination.java:358)
	flex.messaging.config.MessagingConfiguration.createAdapter(MessagingConfiguration.java:431)
	flex.messaging.config.MessagingConfiguration.createDestination(MessagingConfiguration.java:423)
	flex.messaging.config.MessagingConfiguration.createServices(MessagingConfiguration.java:391)
	flex.messaging.config.MessagingConfiguration.configureBroker(MessagingConfiguration.java:117)
	flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:132)
	org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
	org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
	org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
	org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
	org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: org.apache.commons.httpclient.UsernamePasswordCredentials from BaseClassLoader@7428a612{vfs:///D:/programas/jboss-6.0.0.Final/server/default/deploy/AgileSuitePasmania.war}
	org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480)
	java.lang.ClassLoader.loadClass(Unknown Source)
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Unknown Source)
	flex.messaging.util.ClassUtil.createClass(ClassUtil.java:65)
	flex.messaging.Destination.createAdapter(Destination.java:358)
	flex.messaging.config.MessagingConfiguration.createAdapter(MessagingConfiguration.java:431)
	flex.messaging.config.MessagingConfiguration.createDestination(MessagingConfiguration.java:423)
	flex.messaging.config.MessagingConfiguration.createServices(MessagingConfiguration.java:391)
	flex.messaging.config.MessagingConfiguration.configureBroker(MessagingConfiguration.java:117)
	flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:132)
	org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181)
	org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285)
	org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261)
	org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88)
	org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	java.lang.Thread.run(Unknown Source)
C

já acrescentei o http-client e dai ta dando:

C

Grande davidpaniz,

estou usando sem problemas o plugin juntamente com o Air, Swiz e Vraptor.

Mas a minha surpresa é que ao tentar seguir os mesmos procedimentos para um projeto com Flex e VRaptor, então o Flex não acha de jeito nenhum os serviços.

Por exemplo, pro serviço de Login eu chamo o serviço LoginRemoteController e ele sempre diz:

faultCode:Server.Processing faultString:'No destination with id 'LoginRemoteService' is registered with any service.' faultDetail:'null'

Mas em /WEB-INF/flex/remoting-config.xml tem o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>

   <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    
    <destination id="loginRemoteService">
		<properties>
			<factory>vraptor</factory>
			<source>br.com.rokas.pontocom.controller.LoginController</source>
		</properties>
	</destination>

</service>

Tem algum dica, por favor?

davidpaniz

Olá Cerli,
Existem alguns pontos de configuração que podem ter erros, mas pela sua mensagem de erro e seu remoting ta com cara de ser só problema com o nome do destination com letra minúscula.

No destination with id ‘LoginRemoteService’

C

Olá davipaniz,

que vergonha cara, era só aquela letra minúscula mesmo!

Até teria desculpa que no Eclipse Indigo a fonte padrão é diferente e fica bem parecido o L com o l, mas enfim…

Muito obrigado pela ajuda, te devo mais essa.

Abração.

Criado 27 de julho de 2011
Ultima resposta 1 de mar. de 2012
Respostas 11
Participantes 3