带有java服务和JMS的Grails应用程序

带有java服务和JMS的Grails应用程序,java,grails,jms,activemq,Java,Grails,Jms,Activemq,我从Grails开始,希望构建一个示例应用程序 下面是我设想的应用程序流程。我会继续提问 应用程序的流程: 用户上传一个文件 控制器获取该文件并返回一个响应,说“上传” 文件被放入JMS队列中 单独运行的Java服务从队列中获取文件并对其进行处理(只读取第一个单词) Java服务将响应放回(它将响应放在哪里?) Grails应用程序将读取响应并将其呈现给用户 问题 读取文件后,java服务将数据放在哪里 grails应用程序如何读取java服务提供的数据 我的理解有什么遗漏吗?我计划使用G

我从Grails开始,希望构建一个示例应用程序

下面是我设想的应用程序流程。我会继续提问

应用程序的流程:

  • 用户上传一个文件
  • 控制器获取该文件并返回一个响应,说“上传”
  • 文件被放入JMS队列中
  • 单独运行的Java服务从队列中获取文件并对其进行处理(只读取第一个单词)
  • Java服务将响应放回(它将响应放在哪里?)
  • Grails应用程序将读取响应并将其呈现给用户
问题

  • 读取文件后,java服务将数据放在哪里
  • grails应用程序如何读取java服务提供的数据
  • 我的理解有什么遗漏吗?我计划使用GrailsJMS插件和ActiveMQ
  • 在这个架构中可以改进一些东西吗?这是一个原型,我正在为一个更大的应用程序组装

我非常感谢您提供有关上述简单应用程序示例的任何文章/教程…?

如果您以同步方式使用JMS,那么这取决于您的JMS提供商是否能够做到这一点。如果JMS提供程序能够进行同步通信,则在文件处理之后将应答放入应答队列

在同步JMS方式中,java服务将等待来自JMS提供程序的响应,以便可以将来自服务的响应呈现回控制器,然后呈现给用户

所以

  • 用户上传一个文件
  • 控制器获取文件并将其发送到JMS队列并等待响应
  • 单独运行的Java服务从队列中获取文件并对其进行处理(只读取第一个单词)
  • Java服务将响应放回应答队列中
  • 控制器将获取响应读取响应并将其呈现给用户

您的页面可能是一个很好的ajax页面,为用户提供了一个处理微调器。

已经编写了一个与此非常类似的系统,Grails webapps可以通过sync JMS(使用JmsInvokerProxyFactoryBean)与一个独立的基于Spring的后端处理系统进行对话。这是什么意思(只需阅读第一个单词)在Java中,单独运行的服务从队列中获取文件并对其进行处理(只读取第一个单词)