2017-05-13 9 views
0

私はアプリケーションサーバーJBossにいくつかのデータを格納していると仮定し、これらのデータを取得する小さなJavaアプリケーションを作成します。この問題を解決するには、下の私のソリューションはいいですか?Javaアプリケーションを使用してアプリケーションサーバーにデータを接続して取得するための最良の方法

  1. Application Serverはいくつかのデータを持つことができるようにするために、私は内部のいくつかのモックデータを使用してJava Webアプリケーションを作成し、その後、私は、JBossアプリケーションサーバにこのアプリケーションをデプロイします。アプリケーションがデプロイされると、アクセスするURLがあります(私はそうだと思います)。

  2. 通常のJavaアプリケーションを作成して、上記のWebアプリケーションのURLに接続してこのデータを取得します。しかし、ここで私の質問は、JavaアプリケーションをこのWebアプリケーションに接続する方法を挙げています。より一般的には、Application ServerからJavaアプリケーションにデータをフェッチする方法を意味します。申し訳ありませんが、私の質問は、素人に見えるが、あなたのアイデアを受けることを望むかもしれない。このような状況では個人的に)

+0

わかりません。サーバーはエンドポイントを持つRESTサーバーですか? またはサーバーを嘲笑していますか? – Shenal

+0

こんにちはShenal、私はそれがちょうど私のマシン上でローカルホストを実行しているモックサーバーだと言うでしょう – Sonn

答えて

0

私は、クライアントとサーバーからEJBを使用します。

これにより、通常のクラスのようなデータソースを使用できます。 例:

ejb.addUser(user) 

これは非常に快適です。

そして、あなたは

+0

こんにちはRazikus、私は非常にEJBに精通していない、これ以上の詳細の例やチュートリアルがありますか?先進的でありがとう! – Sonn

+0

私はこれのための良いチュートリアルがありません。すべてが悪いか古いか、私の要件を満たしていませんが、私が家に到着したら、私はこの回答を編集して、私が個人的に知っているものを追加し、WildFly10でEJBを使って永続性を設定するためにnullから処理します。 – Razikus

+0

Razikus、あなたからすぐに答えを受け取るために: – Sonn

1

シンプルなスタンドアロンのJavaクラスが瓶 commons-の下に必要なApache.Youが提供するHTTPクライアントを使用してHTTPプロトコルを介してWebアプリケーションからデータを取得するために使用することができますいつでもEJBであなたは、RESTアプリケーションを作成することができますコーデック-1.3.jar コモンズ-HTTPClientの-3.0 コモンズ・ログ-1.0.3

PostMethod post = new PostMethod("URL"); 
HttpClient httpclient = new HttpClient(); 
post.setRequestEntity(new InputStreamRequestEntity(new ByteArrayInputStream(s.getBytes()), s.length())); 
try 
{ 
    int result = httpclient.executeMethod(post); 
    System.out.println("Response status code: " + result); 
    System.out.println("Response body: "); 
    System.out.println(post.getResponseBodyAsString()); 
} 
finally 
{ 
    post.releaseConnection(); 
    } 
+0

ありがとうgati ! – Sonn

1

あなたがRESTfulなまたはSOAPアプリケーション、リモートメソッド呼び出し(RMI)、または古い学校のソケットリスナーの間で選択することができ、最後は小規模のための最も簡単なオプションです学習曲線の点でftware。

ブラウザアプリケーションが必要な場合は、HTTPベースのメソッド(RESTまたはSOAP)を使用する必要があります。

+0

ヤンありがとう、私はこれらの方法を見ていきます! – Sonn

+0

"アプリケーションサーバーに常に接続し、アプリケーションサーバーのデータが更新されるたびに連続してデータを取得します" - 実装はあなた次第です。サーバーからのデータ更新時にフラグを立て、サーバーへのクライアント呼び出しを毎回開始しますXフラグをチェックするためには、サーバーでない限りクライアントへのサーバー呼び出しを開始できません。 –

1

RESTfulサービスを使用できます。以下は、JavaアプリケーションからサーバーにデプロイされたRESTfulサービスに呼び出すサンプルコードです。 com.sun.jerseyには、目的を達成するための簡単なライブラリがあります。

import com.sun.jersey.api.client.Client; 
import com.sun.jersey.api.client.ClientResponse; 
import com.sun.jersey.api.client.WebResource; 


    Client client = Client.create(); 
    WebResource resource = client.resource("www.example.com/api"); 
    ClientResponse response = resource.accept("application/json").get(ClientResponse.class); 
    String json=response.getEntity(String.class); 

あなたが詳細については、リンク下記を参照することができます:RESTfulなサービスを使用して:あなたの考えに

http://www.mkyong.com/webservices/jax-rs/restful-java-client-with-jersey-client/

+0

ありがとうTanmay! – Sonn

0

感謝、私は今、私はそれを行うにはどのように一般的な考えを持つように考えますPOST/GETメソッドを使用してApplication Serverからデータを取得します。しかし、私は、私がこれを好きなら、要求は私がそれを要求したときにのみ送信されると思うので、アプリケーションとアプリケーションサーバとの間に永続的な接続をしたいのであれば、アプリケーションサーバーのデータが更新されるたびに常にアプリケーションサーバーに接続し、データを連続して取得します。それは可能ですか? ありがとうございます!

関連する問題