2010-09-23 34 views
1

J'ai déployé un service Web axis2 sur Tomcat 5.5. Le service Web fonctionne comme prévu. Mais j'ai remarqué que je recevais des entrées de journal en double. Après la recherche, il est devenu clair que plusieurs instances de la classe étaient en cours de création - c.-à-d. La première fois qu'elle était en cours, une entrée de journal; deuxième fois, deux entrées et ainsi de suite.Problème d'étendue d'application Tomcat 5.5 Axis2 - Impossible de créer une instance unique

J'ai ajouté le paramètre scope = "application", mais cela n'a pas résolu le problème. Je l'ai ajouté à la fois dans l'étiquette de service et en tant que balise de paramètre séparée en vain.

Cette classe a de nombreuses variables globales clés, la journalisation en étant une. Frustré que je suis, je n'ai pas encore réussi à déconstruire les globals (révision majeure, casse les conventions de code dans mon département). Les variables globales sont-elles le coupable? Ou y a-t-il une autre configuration Tomcat/Axis2 qui me manque?

Publiera le fichier services.xml ou un autre code sur demande.

Merci à l'avance - Bill

Répondre

1

J'ai résolu le problème ... ne comprennent pas nécessairement pourquoi, mais j'ai maintenant le bon comportement ...

Le fichier services.xml I créé dans le cadre du service Web (WEB-INF/services/myService/META-INF) était remplacé par config dans tomcat/conf/server.xml, où auparavant, je ne faisais référence qu'à myService avec un bloc de contexte. Pour que myService ait des paramètres de niveau de service uniques, il doit avoir sa propre configuration dans tomcat/conf/server.xml ... et pas seulement une référence de contexte.

Il me semble que ce ne sont pas les meilleurs services et contextes de config ... dans server.xml. Ce n'est pas dynamique de cette façon. Malheureusement, je suis un ensemble standard ici il y a plusieurs lunes, donc je ne peux rien faire.