2008-09-11 29 views
3

簡単な質問ですが、誰かがJBoss Seamフレームワーク内からWebサービスを呼び出して結果を処理する方法のサンプルコードを提供することができますか?SeamからWebサービスを呼び出す

Webサービスとしての機能を公開している非公開のベンダーが提供する検索プラットフォームと統合できる必要があります。だから、私はちょうど与えられたWebサービスを呼び出すためのコードがどのようになるかについていくつかのガイダンスを探しています。

(任意のサンプルWebサービスは、一例として選択することができます。)

答えて

1

gajillion HTTPクライアントライブラリが(のRestletは、それよりもかなり多くのですが、私はすでに持っていたおよそありますそのコードスニペットを別のものにする)が、GETリクエストの送信をすべてサポートする必要があります。ここには、Apache CommonsのHttpClientを使用する機能性の低いスニペットがあります。

HttpClient client = new HttpClient(); 
HttpMethod method = new GetMethod("http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=restbook&query=HttpClient"); 
client.executeMethod(method); 
0
import org.restlet.Client; 
import org.restlet.data.Protocol; 
import org.restlet.data.Reference; 
import org.restlet.data.Response; 
import org.restlet.resource.DomRepresentation; 
import org.w3c.dom.Node; 

/** 
* Uses YAHOO!'s RESTful web service with XML. 
*/ 
public class YahooSearch { 
    private static final String BASE_URI = "http://api.search.yahoo.com/WebSearchService/V1/webSearch"; 

    public static void main(final String[] args) { 
     if (1 != args.length) { 
      System.err.println("You need to pass a search term!"); 
     } else { 
      final String term = Reference.encode(args[0]); 
      final String uri = BASE_URI + "?appid=restbook&query=" + term; 
      final Response response = new Client(Protocol.HTTP).get(uri); 
      final DomRepresentation document = response.getEntityAsDom(); 

      document.setNamespaceAware(true); 
      document.putNamespace("y", "urn:yahoo:srch"); 

      final String expr = "/y:ResultSet/y:Result/y:Title/text()"; 
      for (final Node node : document.getNodes(expr)) { 
       System.out.println(node.getTextContent()); 
      } 
     } 
    } 
} 

このコードは、YahooのRESTfulな検索サービスへの要求を行うRestletを使用しています。明らかに、あなたが使用しているWebサービスの詳細は、あなたのクライアントがどのように見えるかを指示します。

0
final Response response = new Client(Protocol.HTTP).get(uri); 

私はこれを正しく理解してあれば、上記の行は、Webサービスへの実際の呼び出しは、応答が適切な形式に変換し、この行の後に操作された状態で、行われているところです。

私はRestletを使用していないと仮定して、この行はどのように異なるでしょうか?
(それが与えられていますので、もちろん、実際の処理コードは、同様に大幅に異なります。)

関連する問題