2009-11-05 7 views
1

Je joins un service adaptateur à un message de destination de printemps comme suit:Pourquoi l'adaptateur de service Spring/Flex/BlazeDS Messaging n'est pas appelé?

<flex:message-destination 
    id="secured-chat" 
    send-security-constraint="trusted" 
    subtopic-separator="." 
    service-adapter="secured-chatAdapter" 
    allow-subtopics="true" /> 

Les méthodes d'initialisation sont appelés lors de l'initialisation du bean, et je reçois des messages « invoquer » lorsque de nouveaux messages sont envoyés.

Cependant, allowSubcribe et d'autres méthodes ne sont jamais appelées. Y a-t-il des causes communes à ce problème?

Répondre

0

Le problème était que les consommateurs n'avaient pas défini de sous-thèmes. Étant donné qu'aucun sous-sujet n'était souscrit, les méthodes d'autorisations spécifiques au sous-sujet n'étaient pas appelées.

+0

Doh! Je n'ai jamais travaillé avec des sous-thèmes auparavant. Comment avez-vous réussi? –

+0

Je pense que c'était à partir de la lecture du code source. :) Soit ça ou finalement lire les javadocs dans le bon sens. – jsight

1

J'ai trouvé que ces types de problèmes BlazeDS étaient difficiles à diagnostiquer. Ma recommandation est de configurer une journalisation très verbeuse. Il y a plus de détails sur la Flex 2 Developer's Guide: Configuring server-side service logging

Modifier ./WEB-INF/flex/services-congif.xml et ajouter/modifier le nœud d'enregistrement à quelque chose comme ceci:

<logging> 
    <target class="flex.messaging.log.ServletLogTarget" level="debug"> 
     <properties> 
      <prefix>[BlazeDS] </prefix> 
      <includeDate>true</includeDate> 
      <includeTime>true</includeTime> 
      <includeLevel>true</includeLevel> 
      <includeCategory>true</includeCategory> 
     </properties> 
     <filters> 
      <pattern>Endpoint.*</pattern> 
      <pattern>Service.*</pattern> 
      <pattern>Message.*</pattern> 
      <pattern>Message.Command.*</pattern> 
      <pattern>MessageSelector</pattern> 
      <pattern>Service.Message</pattern> 
     </filters> 
    </target> 
</logging> 

Il y a d'autres bagouts filtre vous pouvez ajouter à partir du lien ci-dessus qui pourrait être important pour vous . Si vous ne voyez pas le coupable, alors publiez plus de vos fichiers services-config.xml et des fichiers journaux ici et nous verrons ce que nous pouvons faire.

Avertissement rapide: Il peut devenir très verbeux. Ne le faites pas sur votre serveur de production!