Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1585 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [WEB SERVICES][AXIS] comment forcer le paramètre scope "application"?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WEB SERVICES][AXIS] comment forcer le paramètre scope "application"?

n°1422992
nemohp
Adepte du provisoire permanent
Posté le 09-08-2006 à 16:19:14  profilanswer
 

Bonjour
 
J'ecris un web service en java qui doit fonctionner comme un singleton.
 
J'ai donc rajouté la ligne suivant <parameter name="scope" value="application"/> dans le fichier WSDD générer.
 
Mais c'est agaçant de devoir réécrire cette ligne, à chaque fois que je regénère mon web service (apres ajout d'une méthode par exemple) ... et j'ai surtout peur que plus tard si le web service évolue, je ne serai pus là (car je suis en stage dans la société) et le risque d'oublie du rajout de cette ligne dans le WSDD est grand.
 
alors est-il possible d'indiquer dans mon code java, qu'à la compilation dans AXIS, ce dernier doit rajouter ce parametre ( <parameter name="scope" value="application"/> ) dans le fichier wsdd généré ?


Message édité par nemohp le 09-08-2006 à 16:57:08
mood
Publicité
Posté le 09-08-2006 à 16:19:14  profilanswer
 

n°1423022
jbourdello​n
Posté le 09-08-2006 à 16:39:34  profilanswer
 

Tu peux preciser le probleme , un web service qui doit fonctionner comme un singleton ? donne un exemple ?  

n°1423053
nemohp
Adepte du provisoire permanent
Posté le 09-08-2006 à 17:00:56  profilanswer
 

par exemple une classe porte-monnais avec un attribut montant.
 
avec une methode ajouter(float argent);
 
 
si tu n'es pas en scope application (qui génère un singleton), le montant ajouter va modifier le montant de la classe. mais à l'appel suivant le montant reprendra sa valeur initial car Axis rappel le constucteur a chaque fois.
 
bref en rajoutant le scope application , ça marche, mais je cherche à ce que cette ligne soir automatiquement intégré au WSDL, lors de la génération de ce dernier.
 

n°1423071
jbourdello​n
Posté le 09-08-2006 à 17:11:23  profilanswer
 

Pourquoi est ce que tu ne crée pas un VRAI SINGLETON que ton service appelera à la demande  ?  
 
Comme ca le "metier de ton appli c'est dans ton singleton et les appels de fonction c'est dans le Service ?

n°1423076
nemohp
Adepte du provisoire permanent
Posté le 09-08-2006 à 17:14:03  profilanswer
 

car AXIS appelle toujours le constructeur et pas un getInstance() ... mais si tu veux me recoder le projet Apache Axis je veux bien  :D

n°1423088
jbourdello​n
Posté le 09-08-2006 à 17:19:00  profilanswer
 

ben ecoute recoder axis peut être pas mais en revanche je l'ai déjà fait , pour un correcteur d'orthographe ou il fallait charger des dictionnaires ( super long) et ca marchait très bien , il faudrait que je retrouve le truc mais c'est possible

n°1423183
brisssou
8-/
Posté le 09-08-2006 à 19:35:26  profilanswer
 

ton singleton est un attribut de ta classe, et tu wrap les méthodes fournites dans ton service pour faire appel à ton singleton.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1423434
boulax
Inserer phrase hype en anglais
Posté le 10-08-2006 à 09:55:11  profilanswer
 

nemohp a écrit :

car AXIS appelle toujours le constructeur et pas un getInstance() ... mais si tu veux me recoder le projet Apache Axis je veux bien  :D


Le monsieur te parle d'un vrai singleton métier, que ton webservices utilisera.
 

Code :
  1. class SingletonClass
  2. {
  3.       private String valuePouet;
  4.       public void setValuePouet(String truc)
  5.       {
  6.             valuePouet = truc;
  7.       }
  8. }
  9. class SingletonClassFactory
  10. {
  11.      private SingletonClass singletonInstance = new SingletonClass();
  12.      public SingletonClass getInstance()
  13.      {
  14.             return this.singletonInstance;
  15.      }
  16. }
  17. interface IWebService
  18. {
  19.          public void setTheValue(String value) throws blablabla;
  20. }
  21. class WebServiceImpl implements IWebService
  22. {
  23.         public void setTheValue(String value) throws blablabla
  24.         {
  25.                 SingletonClassFactory scf = new SingletonClassFactory();
  26.                 SingletonClass instance = scf.getInstance();
  27.                 instance.setValue(value);
  28.         }
  29. }


 
Dans le genre....
J'ajouterais que tu sembles vouloir utiliser un singleton pour faire de la persistence de ta donnée, faudrait prévoir une autre couche pour ça peut-être.


---------------
Posté depuis des chiottes, sales. Me gusta.
n°1423478
nemohp
Adepte du provisoire permanent
Posté le 10-08-2006 à 10:56:00  profilanswer
 

boulax a écrit :


J'ajouterais que tu sembles vouloir utiliser un singleton pour faire de la persistence de ta donnée, faudrait prévoir une autre couche pour ça peut-être.


 
oui justement Axis le gere. Pour cela je dois rajouter a fameuse ligne (scope application) à la main. Ensuite Axis génère un mécanisme de singleton dans son moteur. donc je ne veux pas faire un singleton, je veux juste que Axis à la génération du WSDL (Java2WDL) rajoute directement cette ligne !
 
donc merci pour vos solutions de singleton métier :jap:  mais ce n'est pas ça que je cherche...

n°1423496
boulax
Inserer phrase hype en anglais
Posté le 10-08-2006 à 11:06:45  profilanswer
 

Ouais, je me reposerai pas trop sur axis pour un truc aussi crucial. Tu l'as dit toi meme, si l'on oublie cette ligne, tout pète. D'ou l'idée de faire figurer cette logique dans le métier. C'est pas le boulot d'axis de faire ça après tout, tout ce qu'on lui demande c'est d'exposer un service [:spamafote]


---------------
Posté depuis des chiottes, sales. Me gusta.
mood
Publicité
Posté le 10-08-2006 à 11:06:45  profilanswer
 

n°1423501
boulax
Inserer phrase hype en anglais
Posté le 10-08-2006 à 11:07:38  profilanswer
 

Tu génères comment tes fichiers sinon ? (ide ?)


---------------
Posté depuis des chiottes, sales. Me gusta.
n°1423532
nemohp
Adepte du provisoire permanent
Posté le 10-08-2006 à 11:46:19  profilanswer
 

En faite je code sous eclipse mes classes java.  
Puis avec le plugin  WTP je génère et test mes WebServices.
Une fois que tout marche j'exporte le projet en WAR (avec Axis qui a été intégré au projet par WTP)
Enfin j'upload le WAR sur le serveur final.  
Les WS sont en ligne.
 
Ce n'est pas la meilleure solution, mais je devais trouver une procédure simple pour que les futures MAJ du projet soit faite par les développeurs de la société (qui ne sont dans le domaine du dev' java et web).


Message édité par nemohp le 10-08-2006 à 11:47:21

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [WEB SERVICES][AXIS] comment forcer le paramètre scope "application"?

 

Sujets relatifs
[C#] Passer mon propre objet à ma Web Methode[PHP/Web]Moyen efficace pour retourner le contenu "statique"
[C# .net] Reporting Services + variables à remplirEst-il possible de charger une page WEB dans une cellule de tableau ?
Passage par paramètreCréation site Web
Hyperlien qui ouvre une application[résolu]Ouvrir un site web depuis une application en C
[OpenGL] Filmer une application openglerreur définie par l'application ou par l'objet résolu
Plus de sujets relatifs à : [WEB SERVICES][AXIS] comment forcer le paramètre scope "application"?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR