Flex BlazeDS – RPC Fault: faultCode="InvokeFailed"
Bonjour,
J'ai suivi le tutoriel se trouvant sur ce site : http://fponchel.developpez.com/tutor...lazeds-spring/
et je n'arrive pas à accéder à ma classe java. J'ai l'erreur suivante :
Code:
1 2
|
faultCode:InvokeFailed faultString:'[MessagingError message='Destination 'welcomeServiceDest' either does not exist or the destination has no channels defined (and the application does not define any default channels.)']' faultDetail:'Couldn't establish a connection to 'welcomeServiceDest'' |
Voila mes codes ( tiré du tutoriel ) :
WelcomeService.java ( la class java apl par le remoteObject
Code:
1 2 3 4 5 6 7
|
package fr.home.service;
public class WelcomeService {
public String sayHello(String pLogin){
return "Bienvenue "+pLogin;
}
} |
L'affichage mxml : FBSIntegration.mxml
Code:
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
|
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="451" height="168"
paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function doCall():void{
// Appeler le service distant
roWelcomeService.sayHello(tiLogin.text);
}
/**
* Méthode invoquée en cas de succès de l'appel RPC
*/
private function onResult(event : ResultEvent):void{
// Afficher la réponse
taReponse.text = event.result as String;
}
/**
* Méthode invoquée en cas d'échec de l'appel RPC
*/
private function onFault(event : FaultEvent):void{
// Afficher le message d'erreur
taReponse.text = event.fault.message;
}
]]>
</mx:Script>
<mx:RemoteObject id="roWelcomeService"
destination="welcomeServiceDest"
result="onResult(event)"
fault="onFault(event)"/>
<mx:Panel width="451" height="168" layout="absolute" title="Hello World">
<mx:Label x="10" y="10" text="Login : "/>
<mx:TextInput id="tiLogin" text="Guest"
x="66" y="8" />
<mx:Button id="btnAppel" label="Appel de WelcomeService"
x="234" y="8"
click="doCall()"/>
<mx:Label x="10" y="38" text="Réponse :"/>
<mx:TextArea id="taReponse"
x="81" y="37" width="327" height="81"/>
</mx:Panel>
</mx:Application> |
La configuration de remoting-config.xml : ( petite erreur d'ailleur dans le tutoriel ou le fichier est mentionné sous le nom de remoting-service.xml ).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?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="welcomeServiceDest">
<properties>
<source>fr.home.service.WelcomeService</source>
<scope>application</scope>
</properties>
</destination>
</service> |
Donc la tout est configuré comme dans le tutoriel etc etc et pourtant j'ai toujours le message m'indiquant qu'il n'arrive à se connecter à la class...
qqun a t il une idée sur la raison ?
J'ai pensé que dans le fichier : services-config.xml
il fallait configurer
Code:
1 2 3 4
|
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition> |
Mais j'ai un doute en me disant que le server.nameet server.port etait automatiquement configuré au demerage de l'application. Quelqun peut il me confirmer ça ?
Merci