我决定现在是时候挖掘整个
Java EE的东西了.我在
Java SE中使用EE一些技术,如JPA或JMS,但我仍然在使用Java SE,我相信Java EE和应用服务器将解决我的一些问题.
但是:在阅读网上的一些文章后,我仍然有一些问题.
第一:我是否仅限于请求 – 响应应用程序?我有一个通过HTTP提供XML文档的应用程序.所有传递的对象都将添加到队列中,该队列将在不同的线程中调度.对这个目标进行了一些验证,包括打开远程机器的插座(我听说EJ-Beans不允许这样做,这是真的吗?).那么,是否可以在应用服务器中执行此操作?
第二:我知道有消息驱动的bean,是否可以从应用服务器外部向MDB发送JMS消息?我有一个发送JMS消息的服务,但作为遗留系统运行,不在同一个应用程序服务器内.
第三:系统管理员或用户如何配置我的应用程序?我知道在应用程序服务器中配置了一些像数据库连接这样的东西,我的应用程序可以通过JNDI查找它们或通过DI获取它们.但是应用程序特定配置怎么样?
是的,这些都是非常无聊的问题,但也许有人有时间向我解释所有这些东西是如何起作用的. 🙂
问候,
POSIX
PS:
第四:似乎EJB不允许对文件做任何事情,因此Java EE似乎不是接收文件的服务的选项,将它们推送到不同的系统并希望它们写入Socket(参见问题1)?
最佳答案 我可以说Java EE可以毫无疑问地使用.让我再深入探讨一下您的具体问题:
>您可以从EJB打开套接字连接.没有什么可以阻止你这样做.但是,不建议对Java EE应用程序执行此类操作.在我看来,更好的选择是实现Java EE连接器(JCA),它将管理到您的专有系统的套接字连接池.这是按照规范实现这种集成的模型方法.
>是的!完全可以接收从外部应用程序/系统(AS外部)发送的消息.这是使用消息传递进行集成的主要思想:)在许多情况下,您的应用程序是Java EE应用程序通过MDB从JMS通道接收消息,但JMS只是一个API,可以由任何消息传递系统实现,例如: IBM MQ.在此体系结构中,外部系统将MQ消息放入队列,并且侦听该队列的Java EE应用程序通过JMS API接收消息!
>一般而言,Application Server为管理员提供了管理Java EE资源的绝佳工具,即数据源,JMS连接工厂,JMS目标,JTA事务管理器等.如果您需要能够更改特定的Java EE应用程序,那么最佳选择似乎是JMX.只需实现几个MBean,将它们导出到嵌入在Application Server中的JMX服务器,就可以了.这项任务在JBoss中实际上是微不足道的,但是现在大多数现代应用服务器都提供了广泛的JMX功能.
>乍一看,EJB似乎不是处理文件的最佳选择.但请记住,EJB的实现仍然是用纯Java编写的,因此没有什么能阻止您读取/流式传输文件等等.我有大型Java EE应用程序的经验,它们将大文件作为输入文件处理,并且可以向您保证Java EE是一个很好的技术选择:)