2010-11-17 4 views
1

J'ai fait un projet web en Java, en utilisant Java-WS. Comment puis-je appeler des méthodes de service via HTTP uniquement. Je ne veux pas générer (ou pire écrire) de clients Web Java, et des choses similaires. Je voudrais juste appeler la méthode avec une requête HTTP. Et analyser le résultat (manuellement) de la réponse.Java-ws tomcat invoquer des méthodes via http?

Dans les services Web .NET, j'invoque les méthodes simplement avec:

http://serviceUrl/serviceName.asmx/operationName?parametars=... 

Comment faire la même chose en Java + tomcat?

Modifier: Permettez-moi de reformuler ma question. donc ce que je l'ai fait jusqu'à présent:

  • créé une application Web (BTW utilisant NetBeans IDE.)
  • ajouté tous les fichiers sources nécessaires
  • ajoutée des classes de service Web avec WebMethods définis

Je déploie l'application sur tomcat et elle se déploie correctement. Maintenant, que dois-je faire pour pouvoir appeler mes WebMethods via HTTP?

frappe:

http://localhost:8084/MyService/MyMethod 

ne fonctionne pas. Désolé si c'est une question stupide, mais je ne suis pas vraiment un gourou de Java, j'ai travaillé principalement sur. NET.

Répondre

0

Je génère un service Web RESTful dans NetBeans en cliquant sur "Générer SOAP-over-HTTP Wrapper" dans mon menu contextuel de service. Il a généré avec succès, compile et déploie bien. Mais je ne peux toujours pas comprendre comment faire un appel HTTP

+0

Nevermind. Ça a marché. Avoir à envoyer une requête à http: // localhost: 8084/resources/MyService/MyMethod – ZolaKt

0

possibilités multiples:

  • utilisation new URL(url).openConnection().getInputStream()
  • utilisation apache http components
  • utiliser un client REST (si vous invoquez des services reposant), comme http://code.google.com/p/rest -client/"> ce ou these. ou RestTemplate printemps
+0

Hmmm, rallier pas une solution simple? Donc, si je comprends bien, je dois créer un client sur le serveur, qui servira de proxy au vrai client? – ZolaKt

+0

ce qui est "le vrai client". Quoi de plus simple que d'obtenir la réponse en tant que flux d'entrée (la première option)? – Bozho

+0

Le "vrai client" est une application mobile C++. Pouvez-vous me donner plus de détails sur la première solution? Comme je l'ai compris, ce code va dans le client. Mais le client n'a rien à voir avec Java. Fondamentalement, je voudrais juste appeler l'URL du client, obtenir le XML en réponse, et l'analyser manuellement – ZolaKt

0

Dans ce cas, si vous voulez faire un service Web HTTP qui renvoie HTTP 200 Web Réponse, pourquoi ne pas envisager de faire une application RESTFul?

JavaWorld explique brièvement le rôle/l'utilisation de REST. Des questions similaires ont été posées sur les tutoriels REST au SO. J'espère que ceci vous aide.

+0

Il n'y a pas beaucoup de différence entre standard WS et REST. À peu près la même chose, sauf WS sont plus utilisés pour invoquer des services (ce dont j'ai besoin) et REST pour accéder aux données. De toute façon, je veux juste être en mesure d'appeler la méthode formulaire HTTP demande. Merci pour les conseils, mais votre lien ne dit rien sur la façon de développer REST en java + tomcat – ZolaKt

+0

Et en outre, je préfère un WS standard. Bien que je n'en ai pas besoin pour mon client, je voudrais avoir une ouverture possible pour générer automatiquement le proxy dans une autre langue. Si jamais je décide d'écrire un client pour une autre plate-forme – ZolaKt

+0

@ZolaKt, vous n'avez pas besoin d'en faire un pour REST, car le client comprendra les données au format XML, JSON, texte brut, tableau d'octets (selon le choix). Donc, vous savez qu'il convient à toutes les langues alors que WSDL, vous devrez avoir le langage pour incorporer WS et plus il y a des frais généraux car tout est rangé en XML pour le transport. –

0

Apache CXF dispose d'une 'liaison HTTP simple', mais nous recommandons aux utilisateurs d'écrire des services JAX-RS à la place. Ils sont très, très, simples. Cependant, la liaison HTTP simple existe et prend en charge GET.

+0

Une façon de faire une liaison HTTP avec WS normal? – ZolaKt

+0

C'est ce que je vous dis. Le frontal simple CXF mappera les opérations GET à un service Web ordinaire. – bmargulies

Questions connexes