dernière question sur les webservices avec axis (c promis!)

dernière question sur les webservices avec axis (c promis!) - Java - Programmation

Marsh Posté le 17-03-2003 à 13:08:00    

salut tout le monde!!
 
bon alors, dans mes déboires avec les webservices en java, j'en suis arrivé au point où je dois déployer le webservice.
ayant utilisé axis (avec java2WSDL pour avoir un WSDL, puis WSDL2Java pour générer le serveur et le client java + wsdd), je me suis dit que pour déployer mon webservice, il suffisait d'utiliser l'adminclient axis, avec le wsdd généré.
manque de bol, ça ne marche pas : l'adminclient ne me sort aucun message d'erreur, le fichier web.xml d'axis contient bien la déclaration de mon webservice, mais c tout! Il ne copie pas mes classes dans un endroit approprié, et si je regarde les services déployés à partir de la page d'accueuil axis, il ne me montre rien!
 
qu'ai-je loupé??
 
help, siouplait!!  :jap:

Reply

Marsh Posté le 17-03-2003 à 13:08:00   

Reply

Marsh Posté le 17-03-2003 à 13:40:07    

comment tu veux qu'on réponde à ca ??
 
est ce que tu as suivit le tutorial ?  a un exemple qui marche. t'as qu'à partir de là

Reply

Marsh Posté le 17-03-2003 à 13:55:13    

ben oui, j'ai bien lu le tutorial, et d'après ce que 'ai compris, une fois que tu as ton fichier de déploiement (deploy.wsdd), tu utilise le AdminClient d'axis et hop, c fini. Et pour moi, ben hop, c pas fini, vu que rien ne se passe. Donc, je me demande si j'ai bien compris le truc ou si j'ai loupé une marche (j'ai lu les tutaux de sun et deux ou tois autres. ils sont bien détaillés pour tout ce qui est assez simple comme les jws, mais j'ai pas trouvé que c t détaillé pour les situation un peu moins triviales).
 
désolé de vous embêter! je cherche pourtant, je cherche!

Reply

Marsh Posté le 17-03-2003 à 14:24:37    

je te demandais pas si tu l'avais lu mais si tu l'avais suivit, si tu avais fait les exemples quoi. C'est la 1ere chose à faire quand on débute sur un nouveau sujet [:spamafote]

Reply

Marsh Posté le 17-03-2003 à 14:25:16    

et puis bon, tu embêtes persone, c'est juset que tu te mets toute les difficultés d'un seul coup et que nous on peut pas vraiment t'aider là ...

Reply

Marsh Posté le 17-03-2003 à 14:44:56    

dans ton autre post tu as un exemple de fichier de deploiement. Tu passes ca en paramètre a ton admin client et c'est bon. J'ai meme une task ant si tu veux :
 

Code :
  1. <target name="deploy-webservice" depends="deploy-ejb">
  2.         <java fork="yes" classname="org.apache.axis.client.AdminClient" taskname="AdminClient" failonerror="true" dir="${resources.dir}/webservice">
  3.             <arg line="-p${axis.port} deploy.xml"/>
  4.             <classpath refid="axis.path"/>
  5.         </java>
  6.     </target>


 
deploy.xml tu as un exemple dans ton autre post. axis.path est le port sur lequel le service écoute (8080 normallement, mais ca dépend de l'application server)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 17-03-2003 à 14:48:11    

ben c'est déjà ce qu'il doit faire vu que le wS se retourve déclaré ...

Reply

Marsh Posté le 17-03-2003 à 14:50:59    

bon ok, donc je reprends en plus clair et simple :
- je fais ma classe javaqui doit être disponible via le webservice. Pour pas m'embêter, les méthodes ne manipulent que des tpes String (ce sont en fait des objets sérializés) => tout va bien
- je compile ma classe (dans le même dossier que le source, sinon Java2WSDL dit qu'il ne trouve pas la classe) et hop, un p'tit coup de Java2WSL, puis WSDL2Java pour avoir le serveur et le client bien faits, ainsi que le fichier de déploiement pour axis => ça va toujours, à peu près
- je fais un ptit coup de AdminClient deploy.wsdd (comme dit dans le tutorial, pour déployer une appli) => là ça coince, car en vérifiant les services déployés de axis (depuis la page web de type http://localhost:8080/axis/servlet/AxisServlet) il ne me mets rien (même pas les services admin et SOAPMonitor de départ).
 
donc voilà!
il me semblait que les classes compilées étaient copiées dans le répertoire d'axis au moment du déploiement, mais j'ai peut être mal vu!
je vais refaire une autre fois les tutaux pour voir, mais je crois pas m'être trompé!!  
 
merci qd même!  :wahoo:  :jap:

Reply

Marsh Posté le 17-03-2003 à 14:56:30    

c'est juste que faire un tuto, ca permet d'obtenir un truc qui marche. Une fois que tu as ca, tu peux toujours te reposer sur un exemple qui marche et regarder les différences avec un truc qui marche pas pour trouver la cause du problème ...

Reply

Marsh Posté le 17-03-2003 à 14:59:27    

oui, oui! t'inquiètes pas, je prends pas mal les RTFM et autres "fais les tutaux", au contraire, c juste que là je suis un peu perdu car je trouve ça un peu compliqué, par rapport à d'autres implémentation de webservices SOAP! mais bon, un re ch'tit coup de tuto, et si le problème perdure, je remonte mon topic!  
 
 [:spikler]

Reply

Marsh Posté le 17-03-2003 à 14:59:27   

Reply

Marsh Posté le 17-03-2003 à 15:01:03    

ouais, Axis c'est pas top top ... :(

Reply

Marsh Posté le 17-03-2003 à 16:09:46    

bon bon, j'avance là!!  
je refaisais les tutaux et ça marchait plus! argh, pq donc => j'avais changé de version d'axis au cours d'un de mes précédents test, j'étais revenu en 1.0!  :pt1cable:  
 
maintenant je suis en 1.1b et ça marche : j'utilise adminClient pour faire le déployement avec le deploy.wsdd puis je compile mes classes dans le répertoire classes d'axis (y'a pas un moyen d'en faire un jar plutôt??) => je vois mon service
 
maintenant, question subsidiaire : il memet une erreur comme quoi il trouve un caractère non valide par rapport à l'unicode! est-ce possible sachant que je ne passe en paramètre que des objets sérialisés!! une idée de contournement?
 
en tous cas, merci bcp à tous!

Reply

Marsh Posté le 17-03-2003 à 16:12:47    

ben si c'est des objets sérializés, c'est du binaire... C'est bien un byte[] ou un stream que tu transmets ?

Reply

Marsh Posté le 17-03-2003 à 16:15:47    

ben normalement, un objet est sérialisé en un byteArray, qui possède une méthode toString => je le mets dans une variable String! logique non??
ou alors y'a encore une subtilité qui fait que le toString ne transforme pas le byteArray en String?

Reply

Marsh Posté le 17-03-2003 à 16:18:16    

ben je sais pas .... ca dépend du carcter encoding du SOAP que génère Axis et du fait qu'il encode ou non les strings quand il les mets dans le XML.
 
visiblement, non vu ton problème

Reply

Marsh Posté le 17-03-2003 à 16:28:39    

je suppose que SOAP fait de l'UTF-8, comme tout doc xml par défaut. par contre il me semble que java fait de l'unicode donc pas forcément compatible si?
 
en tous cas si quelqu'un a une idée ...  :whistle:

Reply

Marsh Posté le 17-03-2003 à 16:51:35    

mon idée : transfert tes données en byte[] ou code ta String en Base64

Reply

Marsh Posté le 17-03-2003 à 16:53:22    

heu en abusant, t'as une idée comment je fais pour coder le byteAray en base64 comme tu dis (ou un lien)?? merci  :whistle:

Reply

Marsh Posté le 17-03-2003 à 16:55:38    

[:google]
 
tu l'as pas volé celui là ;)

Reply

Marsh Posté le 17-03-2003 à 16:57:01    

ouais, c vrai, mais j'aime bien tendre le baton pour me faire battre (ou alors je compte rop sur la dévotion des autres pour pallier ma fénéantise???  :whistle:  :whistle: )
 
 [:spikler]
 
--edit--
sinon, moi je préfère celui-là :  [:sh@rdar]


Message édité par arghbis le 17-03-2003 à 16:57:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed