Android Client app with Java EE server

6qqygrtg  于 2023-05-27  发布在  Android
关注(0)|答案(4)|浏览(166)

我有一个Java EE应用程序,它有EJB和数据库服务器。我现在正尝试将我的应用程序的客户端版本改为android版本。我在服务器(台式电脑)上有实体bean沿着数据库,我想获取这些数据,并及时地将其发送到android应用程序,并查看数据库内容的更新状态。
我的问题是,我将如何使Android应用程序与服务器通信。我试图阅读使用什么协议,但我仍然不清楚他们。我是否像以前开发tcp/ip聊天应用程序时那样使用java套接字?或者,REST(我没有太多的线索或者……)
提前感谢您的精明的建议

relj7zay

relj7zay1#

传统的Java EE应用程序使用相对可靠的宽带网络连接,具有合理的延迟。Android设备的网络连接不显示那些属性(它不可靠,随时可能被打破,而且速度很慢)。在设计交换协议时,您必须考虑到这一点。
可用的解决方案是具有合理短消息和协议容忍网络故障的REST服务。如今,在JavaEE服务器中创建REST端点非常容易(服务器品牌之间存在差异,但差异很小)

ih99xse1

ih99xse12#

你可以使用REST。Android支持REST,你可以在Google IO 2010上观看这个视频,网络上也有很多工作示例可以帮助你。

2vuwiymt

2vuwiymt3#

一个示例应用程序,演示了如何使用Java EE 7后端使用本机移动的Android和iOS客户端。服务器端包括一个聊天WebSocket API和一个待办事项列表REST API,使用Java API for WebSocket、JSON-P、JAX-RS 2、CDI、Bean Validation、EJB 3和JPA实现。
https://github.com/m-reza-rahman/javaee-mobile

0h4hbjxa

0h4hbjxa4#

你可以!但这样你有一些优点和缺点,重要的缺点是缺乏安全性,通过添加所有Bean到Android,也许我是错误的想法在开放的世界.但这里的步骤使用Java Bean(EJB)或Java库,需要与android共享,webapp,桌面应用程序等...
在eclipse方式匹配更容易做到这一点,顺便说一句,在今年我使用intellij,所以给出了我为我创建的应用程序所做的示例。
关于结构,如果我们有:

  • 项目/MyEnterpriseProject/Webapp
  • 项目/MyEnterpriseProject/Android
  • 项目/我的企业项目/桌面
  • 项目/MyEnterpriseProject/NativeTools
  • Project/MyEnterpriseProject/Ejb

步骤:
1.一个转到主应用程序(桌面或WebbApp)创建/导入模块从项目根称为ejb或一些库,你需要共享。例如:Project/MyEnterpriseProject/Webapp,主根项目是MyEnterpriseProject ->,所以我添加了NativeTools和Ejb
1.通过使用maven(而不是jar文件)将NativeTools/Ejb作为maven库添加到Web应用程序和桌面应用程序
1.设置成pom文件的nativeTools/Ejb Package 为jar(所以你完成为web或桌面,你可以使用和更新从一个intellij项目,但不能使用在android studio!执行步骤4
1.在主项目中(可以是桌面或web应用程序)为NativeTools/Ejb添加工件,设置任何你想要的目标,但我使用NativeTools/Ejb文件夹中的目标文件夹。build artifacts and compiled project如果出现任何问题,请使用intellij中的maven view并单击genrat src and doc,然后单击reload all project,然后单击build artifacts。
1.转到android studio或任何IDE添加jar文件,您可以从NativeTools/Ejb构建,在android studio中只需转到build.gradle并查看此帖子(https://stackoverflow.com/a/25660287/10992709):

dependencies {
    implementation files('libs/your jar file.jar')
}

1.将libs/your jar file.jar更改为放置的NativeTools/Ejb jar文件。
1.如果你需要更新NativeTools/Ejb,你需要从主项目重建和创建工件,然后你可以从其他IDE使用它。

相关问题