|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() |
Bonjour,
- Est-il possible d'ajouter les fichier necessaire à l'exposition d'un EJB en tant que service Web et de continuer à se servir de l'EJB normalement et en même temps de s'en servir en tant que Web Service ? - La méthode pour exposer un EJB en tant que Service Web : 1) créer fichier config.xml (contenant la config du service) 2) utiliser wscompile -define config.xml 3) mettre les fichiers générés (.wsdl,webservice.xml, mapping.xml) dans le jar 4) déployer l'EJB Est ce une bonne méthode ? |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
oui tu peux utiliser ton EJB en passant à la fois par le WS ou par les interfaces locale ou remote directment
tu peux utiliser wscompile |
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() |
je me suis fait un petit EJB helloWorld qui se contente d'envoyer une string "salut"
mes classes sont les suivantes : helloworld/ejb/HelloWorld.java helloworld/ejb/HelloWorldBean.java helloworld/ejb/HelloWorldHome.java helloworld/ejb/HelloWorldLocal.java helloworld/ejb/HelloWorldLocalHome.java les fichiers de config : META-INF/ejb-jax.xml META-INF/jboss.xml que dois je mettre en argument de wscompile pour qu'il me génére le wsdl qui me premettra de transformer l'EJB en WS ? (le endpoint étant en fait l'interface HelloWorld.java de l'EJB ?) (un fichier config.xml comme celui-ci ? wscompile -define config.xml Code :
ou j'ai tout faux, ou il y a de bien meilleurs outils de génération ?) |
||
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
regarde du coté de xdoclet et @jboss-net:XXX
sinon ya un article sur jvaworld http://www.javaworld.com/javaworld/jw-08-2004/jw-0802-ejbws.html mais il ne parle pas de jboss et axis |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() |
decidement, encore merci
|
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
g trouvé d'autres tuto mais ya 36 facons de faire:
http://www.oracle.com/technology/pub/articles/davydov_ejb.html http://www.csd.abdn.ac.uk/~bscharla/teaching/mtp_software/jboss/jboss-net-EJB-example.shtml http://www.huihoo.com/jboss/online_manual/3.2.3/Chap12.html sur jboss3.2.x tu peux copier l'archive jboss-net.sar dans ta configuration serveur (JBOSS/server/default/deploy/ par ex.) pour avoir acces à la servlet soap Axis j'en suis au meme point que toi j'essaie aussi avec Jonas, ca parrait + facile... préviens moi si tu avances, ca m'interesse aussi |
|
|
00
|
|
|
#7 | ||||
|
Nouveau Membre du Club
![]() |
pas de problème
juste au cas ou il y a un pro du wscompile dans les parages: voici ma ligne de commande : Code :
Code :
erreur : Le type ne peut pas implémenter à distance : javax.ejb.EJBHome ce qui pour l'instant ne me dit pas grand chose. |
||||
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
tu as surement regardé par la:
http://www.jboss.org/wiki/Wiki.jsp?page=WSServerEJB JBossWS est dispo uniquement sur JBoss4ou est ce que c'est compatible avec Jboss3.2.x (en remplacement deJboss-net)??? Par contre tu as demandé si le Bean pouvait être utilisé sans passer par le WS: je ne suis pas sur qu'avec la méthode du lien cité + haut ce soit possible. En effet, l'interf&ce n'implemente ni EJBObject ni EJBHome, mais seulement Remote |
|
|
00
|
|
|
#9 | ||||
|
Nouveau Membre du Club
![]() |
je pense que jbossWS ne fonctionne qu'avec JBoss 4.X et est dispo a partir de la version 1.4 de J2ee
pour Jboss 3.X => JBoss.Net pour la question de l'utilisation du Bean en tant que SW et EJB simultanement, j'ai l'impression que c'est réglé : Je me suis créé une interface HelloWorldService extends Remote {} en plus identique à HelloWorld.java (par convention cette classe devrait plutot s'appeler HelloWorldEndpoint) qui est prise en compte uniquement par wscompile. re fichier config.xml modifié : Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() |
J'ai finalement écrit les webservices.xml et jaxr-mapping.xml à la main. Bizarrement wscompile ne génére que le fichier WSDL.
Pour un début de réponse quand à l'utilisation de ce EJB-WebService, j'ai déployé mon jar dans le serveur Jboss et qd je vais dans la console Web, je retrouve bien un EJB helloworld et un WS helloworld. Maintenant il ne reste plus qu'à y accéder par un code java |
|
|
00
|
|
|
#11 | ||
|
Nouveau Membre du Club
![]() |
Pour acceder a mon WebService, j'utilise ce code :
Code :
Contacting webservice at http://localhost:9001/myserviceweb/HelloWorldService?wsdl hello.getHello(truc) java.lang.NullPointerException at org.apache.axis.client.Call.getTypeMapping(Call.java:2402) at org.apache.axis.client.Call.setReturnType(Call.java:1230) at org.apache.axis.client.Call.setOperation(Call.java:1412) at org.apache.axis.client.AxisClientProxy.invoke(AxisClientProxy.java:369) at $Proxy0.getHello(Unknown Source) at utils.locator.WSLocator.main(WSLocator.java:62) Exception in thread "main" l'erreur provient-elle de mon jaxrpc-mapping.xml ou mon WSDL ? |
||
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
je ne pense pas que cela vienne du wsdl, puisque le proxy est correctement généré coté client, de plus, le cast vers HelloWorld passe.
visiblement, l'erreur semble venir du mapping sinon tu as essayé les option wscompile -mapping mapping.xml ? edit: d'apres le lien suivant, l'option -mapping n'est pas présente dans le JWSDP http://java.sun.com/webservices/docs/1.5/jaxrpc/jaxrpc-tools.html |
|
|
00
|
|
|
#13 | ||
|
Nouveau Membre du Club
![]() |
j'utilise JWSDP et j'avais lu cet article. mais j'ai qd meme essayé l'option :
Code :
|
||
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
une question:
tu codes tes EJB a la main ou tu utilises un plugin genre lomboz, ou un autre? parce que perso je suis sur lomboz, le systeme est sympa mais par contre il ne prend pas les tag xdoclet que je rajoute moi meme dans les anotations. qq sait comment utiliser l'extension jboss-net pour xdoclet et l'ajouter dans lomboz? |
|
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() |
perso, je les code à la main. Mais tu devrai plutot poser cette question dans la partie du forum dédiée à eclipse :
http://www.developpez.net/forums/viewforum.php?f=97 |
|
|
00
|
|
|
#16 | ||||||
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
moi g un pb avec wscompile
je fais Code :
Citation:
Citation:
Code :
|
||||||
|
|
00
|
|
|
#17 | ||
|
Nouveau Membre du Club
![]() |
ton interface est correcte et ton fichier de config aussi (sauf que ton service s'appelera OrganizationService)
essaye plutot une ligne de commande dans ce style Code :
c:\...\config.xml => le chemin de ton fichier config.xml que tu as créé c:\...\beans => le chemin du package de ton ejb c:\...\wsdl => le chemin ou wscompile va mettre le fichier wsdl (le nom de ce fichier est généré automatiquement "nom service".wsdl. |
||
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 1 ![]() |
Salut Nycos62, j'ai exactement le meme probleme que toi. Si tu as trouve la solution, je serai tres ravi de la connaitre. Merci.
java.lang.NullPointerException at org.apache.axis.client.Call.getTypeMapping(Call.java:2402) at org.apache.axis.client.Call.setReturnType(Call.java:1230) at org.apache.axis.client.Call.setOperation(Call.java:1412) at org.apache.axis.client.AxisClientProxy.invoke(AxisClientProxy.java:369) at $Proxy0.getHello(Unknown Source) at utils.locator.WSLocator.main(WSLocator.java:62) Exception in thread "main" |
|
|
00
|
|
|
#19 |
|
Membre régulier
![]() Inscription : décembre 2002 Messages : 186 ![]() |
salut
pour moi ca marche a condition d'utiliser un encodage rpcliteral si je reste en documentliteral, bizarement, il ne voit plus les wrapers au moment du déploiement (mais ca passe): l'erreur à l'exécution est reportée à la fin de ce post: http://www.developpez.net/forums/viewtopic.php?t=333278 Sinon, j'en profite pour faire le lien avec un post ou la question est "quel interet d'utiliser les EJB endpoint à la place d'un JaxrpcWS qui appele l'EJB?" http://www.developpez.net/forums/viewtopic.php?t=325138 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com