使用Java Application连接和检索Application Server数据的最佳方法

时间:2017-05-13 08:53:38

标签: java jboss fetch application-server

假设我有一个应用服务器JBoss,它包含一些数据,我想编写一个小型Java应用程序来检索这些数据。我的解决方案是否能解决这个问题?

  1. 为了使Application Server可以拥有一些数据,我将在其中创建一个带有一些模拟数据的Java Web应用程序,然后我将此应用程序部署到JBoss应用程序服务器。部署应用程序时,它将有一个访问的URL(我想是这样)。

  2. 创建一个普通的Java应用程序,通过连接上面的Web应用程序的URL来检索此数据。但我的问题在于提出如何将我的Java应用程序连接到此Web应用程序,更一般地说,我的意思是如何将数据从Application Server提取到我的Java应用程序?对不起,我的问题可能看起来很业余,但希望收到你的意见;)

5 个答案:

答案 0 :(得分:1)

一个简单的独立java类可以使用Apache提供的http客户端通过http协议从Web应用程序获取数据。你需要在jar下面 公地编解码器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();
  }

答案 1 :(得分:1)

您可以在Restful或Soap应用程序,远程方法调用,(RMI)或旧式套接字监听器之间进行选择,在学习曲线方面,最后一个是小型软件的最简单选项。

如果您需要浏览器应用程序,则需要使用基于http的方法,即REST或SOAP。

答案 2 :(得分: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);

您可以参考以下链接获取更多信息:

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

答案 3 :(得分:0)

在这种情况下,我将使用来自客户端和服务器的EJB。

这使您可以像普通类一样使用数据源。 例如:

ejb.addUser(user)

所以这很舒服。

在EJB上,您可以随时创建REST应用程序

答案 4 :(得分:0)

感谢您的想法,我认为到目前为止我有一个大致的想法:通过使用REST /服务和POST / GET方法从Application Server检索数据。但是我认为如果我这样做,请求将仅在我请求时发送,所以如果我希望在我的应用程序和应用程序服务器之间建立永久连接,则意味着当我运行我的应用程序时,每次更新应用程序服务器中的数据时,它将始终连接到应用程序服务器并连续检索数据。有可能这样做吗?  谢谢大家!