Dans les processus de service SOAP du serveur Java
OK, je suis en train d'élaborer un programme, qui sera déployé sur plusieurs machines (Windows, Linux, AIX, z/Linux, openVMS, etc.). Je veux que la demande doit contenir un web service SOAP, mais je ne veux pas de bundle tomcat ou d'exécuter un service distinct pour les services (je veux le même processus que le reste de l'application).
Fondamentalement, ce que je cherche, c'est quelque chose où je peux définir une classe (disons WebServices
). Je suis OK avec l'écriture WSDL ou tout autre type de description de service. La je veux quelque chose comme ceci:
SOAPServer server = makeMeASoapServer();
//do config on the server
server.add(new WebService(...));
server.listen(port);
Évidemment les noms et les paramètres seront différents.
J'ai été à la recherche à l'Axe, et il semble que cela donne, mais je ne sais pas ce que les classes que j'ai besoin d'utiliser. Suis-je folle à vouloir ce genre de comportement? Je ne peux pas croire que plus de gens ne sont pas à la recherche de cette, je le fais tout le temps avec web intégré de services à l'intérieur .NET clients.
J'ai lu ce que par programme de chargement des différents services sur le serveur pour des clients externes pour pouvoir l'appeler. J'avais encore le faire dans un fichier de config, si, au lieu de tout à fait comme cela.
Il n'est évidemment pas parler à lui-même. La commande d'écoute devrait le faire écouter sur un port, le serveur va accepter le HTTP, parser le XML et transférer l'appel sur la bonne méthode avec des paramètres et autres joyeusetés. La raison pour laquelle je veux c'est parce que le service web est une petite partie de la demande, mais il doit interagir avec le reste de l'application. En outre, je ne veux pas ajouter 2 programmes en cours d'exécution lorsque je peux juste ajouter 1 (surtout quand ils ont besoin de communiquer les uns des autres).
oui, c'est ce que je veux. L'important, c'est que le service interagit avec d'autres choses que le programme est en train de faire, j'ai donc envie de partager un espace d'adressage.
OriginalL'auteur tster | 2009-11-24
Vous devez vous connecter pour publier un commentaire.
Semble jdk 6.0 est déjà fourni avec un jax-ws mise en œuvre, et un peu de serveur, vous pouvez l'intégrer.
Je havn'pas compris toutes les pièces, mais voici un début:
helloservice/endpoint/Hello.java :
helloservice/endpoint/Server.java:
Construire la chose:
Exécuter la chose:
Somethings en cours d'exécution sur http://localhost:9000/SoapContext/SoapPort maintenant.
Vous pouvez obtenir le wsdl sur http://localhost:9000/SoapContext/SoapPort?WSDL
Havn pas eu l'occasion de faire un client encore..
Comme un bonus supplémentaire, c'est dans le jax-ws projet (partie de Glassfish) et ne nécessite que Java 5. Vous de la canne à télécharger les versions ici: jax-ws.dev.java.net
Semble que vous n'avez même pas besoin que si vous êtes sur de soleils jdk 6
Je pense que le wsgen commande doit être: wsgen -d build-s de construction/ -classpath/ construction / helloservice.point de terminaison.Bonjour
Quand je vais à la première URL, je viens d'obtenir ce texte: "les Services Web Ne JAX-WS contexte de l'information disponible." Quiconque obtenir la même chose? C'est que ce qui est censé être affiché? Je ne suis pas sûr... La deuxième URL affiche xml.. comme prévu.
OriginalL'auteur nos
En plus de nos grands réponse, j'ai trouvé une classe dans Apache axis appelé
SimpleHTTPServer
qui j'en suis sûr, fait la même chose, mais ne nécessite Java 1.5 pour ceux d'entre vous coincé avec 1,5Je ne vais pas à l'explorer depuis que je suis va utiliser l'autre solution, donc je n'ai pas vraiment vérifié, il fait ce que je pense, mais je suis sûr qu'il fait.
OriginalL'auteur tster
Plus (/?) Java serveur SOAP implémentations de fournir une Servlet (javax.xml.ws.Point de terminaison approche dans une autre réponse n'a l'air un peu plus simple si...). Un peu de SAVON implémentations vous pourriez envisager sont: Apache CXF: cxf.apache.org Apache Axis2: ws.apache.org/axis2/ou de Spring Web Services: static.springsource.org/spring-ws/site/.
Les plus populaires embedded web server de Java semble être La jetée, vous pouvez configurer soit par programme (à l'aide de plaine ou Java beans Spring) ou à l'aide d'un format XML personnalisé.
OriginalL'auteur Stefan L
Pour répondre à la question principale, directement, une autre approche serait d'aller à la Jetée de serveur intégrée. Voir ce lien pour plus de détails. Les liens à partir de la aforelinked page de vous aider à comprendre à la fois le serveur web simple (c'est à dire, celui qui sert les pages statiques; si je suis pleinement conscient "simple" est une horrible terme vague wrt serveurs web) et le serveur web qui vous permet de déployer des services web.
OriginalL'auteur Sonny