Pessoal
Estou fazendo uma simples integração entre Java + Flash Builder 4 + BlazeDS, basicamente o flex vai exibir uma string vinda de uma classe java.
Eis a versão dos meus SWs:
[color=darkblue]eclipse-jee-ganymede-SR2-win32.zip
apache-tomcat-6.0.24.exe
blazeds-bin-3.2.0.3978.zip
flashbuilder4_b2_plugin_win_100509.exe
jdk-6u17-windows-i586.exe[/color]
Segue agora o passo a passo da montagem do meu sistema:
Inicialmente, eu crio um novo projeto Flex
-indico que é uma aplicação J2EE
-indico que usarei o BlazeDS
-seto nome da pasta que vai conter as classes Java
Indico que usarei o Tomcat, deixo o Output folder com o mesmo nome do Context folder -> [color=blue]WebContent[/color]
-Apago a pasta flex_libs e seto o Output Folder URL para: http://localhost:8080/p01/
Agora eu faço meu p01.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/halo" minWidth="1024" minHeight="768">
<fx:Declarations>
<s:RemoteObject id="locarSer" destination="servico"/>
</fx:Declarations>
<mx:VBox>
<s:Label text="teste"/>
<s:TextInput id="campo" change="locarSer.ola(campo.text);"/>
<s:Label id="label2" text="{locarSer.ola.lastResult}"/>
</mx:VBox>
</s:Application>
minha classe Java OlaMundo.java
package meuPackage;
public class OlaMundo {
public String ola(String nome){
return "vc digitou: "+nome;
}
}
No Web.xml faço a seguinte alteração:
eu alterei:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
para:
<welcome-file-list>
<welcome-file>p01.html</welcome-file>
</welcome-file-list>
no remoting-config.xml eu inclui a tag <destination> setando minha classe java:
<?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="servico">
<properties>
<source>OlaMundo</source>
</properties>
</destination>
</service>
Quando eu executo meu projeto (Run on Server) A minha tela aparece normal, mas quando eu insiro um texto no campo , aparece esse erro:
erro 1:
[RPC Fault faultString="[MessagingError message='O destino 'servico' não existe ou não tem canais definidos (e o aplicativo não define nenhum canal padrão).']" faultCode="InvokeFailed" faultDetail="Não foi possível estabelecer conexão com 'servico'"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::invoke()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:388]
at mx.rpc.remoting::Operation/http://www.adobe.com/2006/flex/mx/internal::invoke()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\remoting\Operation.as:287]
at mx.rpc.remoting::Operation/send()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\remoting\Operation.as:254]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.rpc::AbstractService/http://www.adobe.com/2006/actionscript/flash/proxy::callProperty()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\AbstractService.as:408]
at p01/__campo_change()[C:\eclipse-jee-ganymede-SR2-win32\WORKSPACE\p01\flex_src\p01.mxml:13]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\core\UIComponent.as:11749]
at spark.components.supportClasses::SkinnableTextBase/textDisplay_changeHandler()[E:\dev\gumbo_beta2\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableTextBase.as:1364]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\gumbo_beta2\frameworks\projects\framework\src\mx\core\UIComponent.as:11749]
at spark.components::RichEditableText/textContainerManager_flowOperationEndHandler()[E:\dev\gumbo_beta2\frameworks\projects\spark\src\spark\components\RichEditableText.as:4194]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flashx.textLayout.container::TextContainerManager/dispatchEvent()[E:\dev\gumbo_beta2\frameworks\projects\textLayout\textLayout_edit\src\flashx\textLayout\container\TextContainerManager.as:1385]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flashx.textLayout.elements::TextFlow/dispatchEvent()[E:\dev\gumbo_beta2\frameworks\projects\textLayout\textLayout_core\src\flashx\textLayout\elements\TextFlow.as:745]
at flashx.textLayout.edit::EditManager/doInternal()[E:\dev\gumbo_beta2\frameworks\projects\textLayout\textLayout_edit\src\flashx\textLayout\edit\EditManager.as:444]
at flashx.textLayout.edit::EditManager/doOperation()[E:\dev\gumbo_beta2\frameworks\projects\textLayout\textLayout_edit\src\flashx\textLayout\edit\EditManager.as:325]
at flashx.textLayout.edit::EditManager/flushPendingOperations()[E:\dev\gumbo_beta2\frameworks\projects\textLayout\textLayout_edit\src\flashx\textLayout\edit\EditManager.as:484]
at flashx.textLayout.edit::SelectionManager/enterFrameHandler()[E:\dev\gumbo_beta2\frameworks\projects\textLayout\textLayout_edit\src\flashx\textLayout\edit\SelectionManager.as:1717]
depois disso, eu tentei fazer 'qualquer alteração e rodar de novo, mas ai aparece esse erro:
[RPC Fault faultString="Falha no envio" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost:8080/WebContent/messagebroker/amf'"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:345]
at mx.rpc::Responder/fault()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\Responder.as:68]
at mx.rpc::AsyncRequest/fault()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:113]
at mx.messaging::ChannelSet/faultPendingSends()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\messaging\ChannelSet.as:1614]
at mx.messaging::ChannelSet/channelFaultHandler()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\messaging\ChannelSet.as:1206]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.messaging::Channel/connectFailed()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\messaging\Channel.as:1128]
at mx.messaging.channels::PollingChannel/connectFailed()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\messaging\channels\PollingChannel.as:406]
at mx.messaging.channels::AMFChannel/statusHandler()[E:\dev\gumbo_beta2\frameworks\projects\rpc\src\mx\messaging\channels\AMFChannel.as:444]
Aparentemente, o meu Web.xml não está conseguindo linkar minha classe java com meu <s:RemoteObject id=“locarSer” destination=“servico”/> e o 2º erro RPC Fault faultString=“Falha no envio” … parece que está faltando alguma coisa ainda para fazer a classe se comunicar com o flex:
Alguem pode me dar uma luz do que pode estar faltando??
obrigado 










