2010-10-20 5 views
0

Je développe actuellement une application de preuve de concept Blackberry qui utilise les appels RPC. J'ai également développé une application serveur très basique dans .Net qui consiste simplement à horodater une chaîne envoyée à celle-ci et à la renvoyer au client. J'ai été en mesure de me connecter à l'application serveur en utilisant un client .Net et un client Java, donc je suis assez confiant que cela fonctionne correctement.Webservice stubs dans l'application Blackberry

Pour l'application client Blackberry, j'ai utilisé Java Wireless Toolkit 2.5.2 pour générer des stubs pour les appels RPC. J'ai ensuite utilisé ces appels dans une application Blackberry de base pour essayer de répliquer les résultats des clients .Net et Java, mais il continue de lancer des exceptions. Je ne suis pas sûr si j'utilise correctement les talons.

pushScreen(new HelloWorldScreen("Initiating communication")); 
    try { 
     IHelloService_Stub stub = new IHelloService_Stub(); 
     String result = stub.hello("Hello From Blackberry"); 
     pushScreen(new HelloWorldScreen(result)); 
    } catch (RemoteException e) { 
     pushScreen(new HelloWorldScreen(e.getMessage())); 
    } 

Actuellement, je cours tout localement. Le serveur s'exécute en tant que localhost et l'application Blackberry s'exécute sur le simulateur Blackberry. J'ai utilisé le navigateur Blackberry pour vérifier si je peux atteindre le service et je peux donc ce n'est pas la connexion réseau qui est le problème.

L'exception levée est la suivante:

java.io.interruptedIOException: Connexion locale a expiré après ~ 120000

+0

Quelles exceptions faut-il jeter? –

+0

Il semble être une exception de timeout – Ren

+0

Mise à jour de la question avec les détails de l'exception levée – Ren

Répondre

2

Essayez annexant, deviceside = true à votre URL. Cela devrait éliminer le besoin d'utiliser le simulateur MDS.

0

Avez-vous trouvé la solution? J'ai également utilisé Sun WTK 2.5.2 pour générer des stubs pour un service Web et exécuter l'application dans BlackBerry Simulator fourni avec le plugin BlackBerry pour Eclipse. J'ai installé le simulateur MDS. Mon erreur est le même que le vôtre:

java.io.InterruptedIOException: Connexion locale a expiré après ~ 120000

Avez-vous été en mesure de résoudre ce problème? MDS doit-il être installé dans un répertoire particulier pour que le simulateur de terminal BlackBerry le reconnaisse?

Cheers.

MISE À JOUR: Ah, corrigé. Il semble donc qu'il importe MDS est installé. Je m'étais initialement installé dans C: \ Program Files (x86) \ Research in Motion, mais j'ai ensuite lu un article qui suggérait de l'installer directement dans C: \. Étonnamment, cela a fait l'affaire et MDS fonctionne maintenant. Pour toute autre personne ayant des problèmes MDS, voici un lien de dépannage:

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800792/801079/Support_-_BlackBerry_Mobile_Data_Service_Simulator_does_not_launch.html?nodeid=800979&vernum=0

+1

Merci pour la mise à jour! J'ai depuis longtemps résolu ce problème sur mon PC. Je développe dans Eclipse, et le simulateur de Blackberry est également installé comme un plugin Eclipse. Je lance MDS directement depuis le répertoire du plugin Eclipse (C: \ Program Files \ eclipse \ plugins \ net.rim.ejde.componentpack5.0.0_5.0.0.25 \ components \ MDS). Notez que je cours sous Windows 7 et que je dois donc démarrer mon invite de commande en mode Admin. Pas la solution la plus élégante mais ça marche pour moi. – Ren