我想使用 Torquebox 并使用 Rails(或例如 Sinatra)作为前端,但将所有服务和业务层都放在带有 CDI 和 JPA 的 EJB 中。
1) 我可以将其全部部署为一个应用程序并使用 EJB 的本地调用
2) 如果我有 Rails,我可以使用模型(没有 ActiveRecord)来与前端交换数据。如何使用这样的模型调用EJB服务?我的意思是有:
def create
user = User.new(params)
userRepository = inject(Java::com.example.UserRepository)
userRepository.create(user) // this is java call
end
如何传递用户(jruby 模型到 EJB 调用)?或者我应该这样做
用户 = Java::com.example.User(params)
而不是普通的 ruby 模型。
基本上,我希望前端在 Ruby 中,而机器的其余部分在 Java EE 堆栈中。
最佳答案
TorqueBox 集成测试有一个执行类似操作的应用程序,请参阅:
https://github.com/torquebox/torquebox/tree/2x-dev/integration-tests/apps/rails3/twitter
它从 lib/ejb.jar
加载一个 ApplicationScoped bean,其源代码可以在以下位置找到:
https://github.com/goldmann/confitura-2011-torquebox-demo/tree/master/cdi
希望这能为您指明正确的方向。
关于java - Torquebox 上的 Jruby Rails 调用 EJB 服务 - 模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11663907/