问题标签 [torquebox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
39 浏览

ruby-on-rails - 处理有序的扭矩箱队列中的消息

如何确保m2m1在后台处理?
例如

0 投票
1 回答
440 浏览

javascript - Stilts.js 无法使用安全 true 连接到 websocket 服务器

当我将安全选项设置为 true 时,我在订阅我的 websocket 服务器时遇到问题。我运行了一个 SSL 验证器以确保它设置正确并且一切都通过了。另外为了安全起见,我还与我的托管服务提供商进行了核对,所以我认为这不是问题所在。而且,当安全设置为 false 时,一切正常。

WSS 在端口 8676 上运行,我确实确保该端口已打开。

我正在使用 Stomp Javascript 库。我从他们的 github master 分支(https://github.com/projectodd/stilts/blob/master/stomp-client-js/src/main/javascript/stomp.js)下载了最新版本。

我在_transmit()函数中不断收到此错误:can't call transmit on undefined

它似乎没有在函数_transport内部设置属性。_buildConnector()我添加了一些console.logs,它总是进入else这个函数中的语句。

关于修复的任何想法?还是我只是错过了什么?

这就是我初始化连接的方式:

client = new Stomp.Client('my.ip.address', 8676, true);

这是我记录一些功能的地方:

Stomp.Client = function(host, port, secure) { console.log('host param: ' + host); console.log('port param: ' + port); console.log('secure param: ' + secure); this._host = host || Stomp.DEFAULT_HOST; this._port = port || Stomp.DEFAULT_PORT || 8675; this._secure = secure || Stomp.DEFAULT_SECURE_FLAG || false; console.log('this._host: ' + this._host); console.log('this._port: ' + this._port); console.log('this._secure: ' + this._secure); }

输出:

host param: my.ip.address port param: 8676 secure param: true this._host: my.ip.address this._port: 8676 this._secure: true

_buildConnector: function(transports, i) { console.log('INSIDE _buildConnector()'); var callback = this._connectCallback; var client = this; if ( i < transports.length ) { console.log('IF!!!'); return function() { var fallback = client._buildConnector( transports, i+1, callback ); try { console.log('_buildConnector::IF::TRY'); transports[i].connect( function() { client._transport = transports[i]; callback(); }, fallback ); } catch (err) { console.log('_buildConnector::IF::CATCH'); fallback(); } }; } else { console.log('_buildConnector::ELSE'); return client.connectionFailed.bind(this); } }

输出:

INSIDE _buildConnector() IF!!! INSIDE _buildConnector() IF!!! _buildConnector::IF::TRY INSIDE _buildConnector() _buildConnector::ELSE _buildConnector::IF::TRY

connectionFailed: function() { console.log('INSIDE connectionFailed()'); if (this._errorCallback) { console.log('connectionFailed::IF'); console.log('this._errorCallback'); console.log(this._errorCallback); console.log('arguments'); console.log(arguments); this._errorCallback.apply(this._errorCallback, arguments); } else { console.log('connectionFailed::ELSE'); console.log('unable to connect :('); Stomp.logger.log( "unable to connect" ); } }

输出: No output..

0 投票
0 回答
232 浏览

ruby - 西纳特拉空白页

我的代码是:

当我访问该网站时,它会显示空白页面。有什么帮助吗?

编辑 1:demo_api_layout.erb 的内容

0 投票
2 回答
221 浏览

ruby - Torquebox Infinispan 缓存 - 打开的文件太多

我环顾四周,显然 Infinispan 在将数据保存到 FileStore 时可以存储的密钥数量有限制。我得到“打开的文件太多”异常。

我喜欢扭矩箱的想法,并且急于缩小堆栈并只使用 Infinispan 而不是 Redis。我有一个需要缓存数据分配的应用程序。查询的计算成本很高,并且需要每天重新计算(电话和呼叫中心代理的其他生产力指标)。

虽然我知道如果我至少运行一个应用程序,缓存会持续存在,但我没有运行集群。我宁愿保留缓存。有没有人遇到这个问题并有解决方法?

0 投票
1 回答
101 浏览

ruby-on-rails-4 - Torquebox stomplet 会话为空

我正在尝试在 Torquebox 中为 Web 套接字实现用户身份验证,根据 Internet 上的所有内容,如果我在 stomp 服务器旁边运行 Web 应用程序,我应该能够从 stomplet 中访问 HTTP 会话,其中我是。

我的配置看起来像这样

我也尝试过评论网络和踩块,但没有任何改变。

基本上,套接字正在工作,我可以连接和订阅。在我的 stomplet 中,该on_subscribe方法有一些调试行

以及这些事情的任何其他组合,但在每种情况下,我都会得到一个空会话。唯一的例外是,当我显式加载会话时(如上面的最后一个调试行),我的会话包含一个会话 ID 和类似的东西TORQUEBOX_INITIAL_KEYS,但会话 ID 不是 HTTP 会话,只是类似的东西session-1,没有什么用处。

我在 rails 应用程序中有一个初始化程序,用于设置扭矩盒会话存储

我没有收到任何异常,所以我认为没有明显的问题,但我已经尝试了所有我能想到的方法,但仍然没有可以使用的会话。

我究竟做错了什么?

我正在使用 Torquebox 3.1.0、Rails 4 和 jRuby 1.7.11

0 投票
2 回答
72 浏览

ruby-on-rails - 从提交的表单将字符串转换为日期时出现Rails NoMethodError

导轨 4.0.3。我有一个带有日期字段的表格。换句话说,它只在我只使用 date_select 时才有效。这在我的开发机器上完美运行。当我将它部署到生产环境时,表单拒绝提交并在到达日期时抛出 NoMethodError,抱怨缺少 utc 方法。我无法追踪它,因为生产服务器的日志告诉我的不止是它失败的那一行,但那一行是 Model.new(params[:form]) 行,而失败发生在类型转换魔法期间。

该字段目前是一个文本字段,其值由 jQuery UI datepicker 提供,但是当它是一个普通的 Rails formhelper date_field 时也存在这个问题。一旦它到达日期,它就会失败......但它在开发中完美运行,我正在使用 Git 部署到生产环境,所以我知道我们在同一页面上。

在本地,我使用 jRuby 并使用 Neo4j.rb 2.3 作为我的数据库。我通过运行生产应用程序服务器 Torquebox 来模仿开发环境,它仍然是本地的,远程失败。我在两个位置都运行相同版本的 jRuby,并且我将所有 gem 锁定到特定版本,以排除一些奇怪的特定于版本的错误。任何想法都非常感谢!

0 投票
1 回答
82 浏览

ruby-on-rails-4 - Rails 在 15 秒内完成,再过 2 分钟收到响应

我遇到了一个我无法深入了解的不寻常情况。我们有一个在里面4.1运行的 rails 应用程序。API 端点之一检索对象列表。jRuby 1.7.12Torquebox 3.1.0

目前数据库中只有不到 7000 条记录。当发出 API 请求时,会使用ActiveModel::Serializersgem 以 JSON 格式查询和呈现这些记录。这一切都按我们的预期工作,并且在 Rails 控制台中执行此操作,效果很好。

问题出在发出实际的 API 请求时。它似乎按预期工作,查看 rails 日志,有输出

此时,我希望看到从服务器返回的数据,但是实际上需要 2.7 分钟才能看到来自服务器的响应。我已经尝试从 发出请求ChromeSafari甚至curl只是为了确保这不是一个奇怪的浏览器问题,但没有任何运气。

我已经在序列化器中实现了一些缓存,如此处所述。我很确定这不是问题,但是因为它在控制台中按预期工作,所以我真的很困惑。

还有什么可能导致 2 分钟以上的延迟。在这段时间里,我看到 Java 的 CPU 使用率大约为 100%,所以肯定会发生一些事情。

0 投票
2 回答
156 浏览

rubymine - Rubymine 扭矩箱 java_opts

我正在尝试将 ruby​​mine 与扭矩箱服务器一起使用。

一切都几乎成功了,但我找不到在哪里设置 java_opts。当我开始调试时,应用程序失败并出现 OutOfMemory 错误。

所以我想我必须增加 Xmx 和 Xms 值,但不知道这个设置在哪里。

  • 红宝石 5.4.2
  • rvm 与 jruby 1.7.4
  • gem 扭矩箱服务器 2.3.0
  • 宝石扭矩箱 2.3.0
  • gem ruby​​-debug-base (0.10.5.rc9-java)
  • gem ruby​​-debug-ide (0.4.23.beta1)

感谢帮助,google 没有帮助

0 投票
2 回答
256 浏览

ruby-on-rails - 使用 Apache ReverseProxy 在 TorqueBox 上的 Rails 应用程序的路径中重复上下文

我在一个场景中苦苦挣扎,我有几个应用程序要在单个 TorqueBox 实例上运行。定义应用程序并将其部署到应用程序内的根(“/”)上下文config/torquebox.yml时,可以正常执行,没有明显问题。起初我认为这是 Apache 反向代理的问题,但现在认为这可能是 Rails 和/或 TorqueBox 的问题,但我找不到明确的答案或问题的原因。

此配置如下:

config/torquebox.yml包含:

Apache 的代理 httpd 虚拟主机配置是:

有了这个我可以访问http://sub.domain.tld/,postsposts/new路线就好了。这是通过大致遵循此处的示例 (我执行的唯一修改是使反向代理工作的修改)。

但是当我换档并在上下文中运行它时,torquebox_test_rails_production事情开始变得非常奇怪。我不得不相信,由于某种原因,rails 会将上下文的副本附加到路径上,这是有问题的。解释:

config/torquebox.yml改为:

和 Apache 的 httpd 虚拟主机配置:

当我这样做时,http://sub.domain.tld/仍然可以正常加载,但是当我转到时posts,我注意到(在log/production.log)失败的 GET 请求:

如您所见,它复制了路径上的上下文。

此时 URL 仍然是正确的http://sub.domain.tld/posts,但是当我在脚手架测试中单击“新帖子”时,应用程序会尝试将浏览器重定向到 http://sub.domain.tld/torquebox_test_rails_production/posts/new. 显然这种重定向/重复不应该发生。在日志中,我现在看到:

我在这里尝试的另一件事是添加config.relative_url_root到配置中。我通过尝试以下环境变量来做到这一点:

并将其设置config/environments/production.rb为:

我认为这应该通过上下文设置自行设置,因此它的目的是,但我认为值得一试。

我还从这个似乎与我的相同的问题中得到了提示,但是从主机名中删除contexttorquebox.yml仅使用主机名也不能解决问题。相反,它似乎已经消除了路径上下文的加倍,但我最终仍然出现以下错误log/production.log

然后,我还尝试如前所述定义config.relative_url_rootin ,其结果与刚刚提到的错误完全相同。production.rb

关于这里可能发生什么来引发这种行为的任何想法?

0 投票
2 回答
952 浏览

ruby - 从 Gemfile 中找出哪些 gem 需要原生 c 扩展?

我最近才开始将注意力转移到在上面部署 Ruby 应用程序上TorqueBox,这当然是在 Jruby 上构建的。到目前为止,我基本上一直在执行 a bundle install,然后在通往 jrubydom 的过程中处理每个 gem,但是我遇到了几个 gem,由于需要重新实现其中的大部分,我花了相当长的时间来解决它们。

有没有办法调用 bundler 或 ruby​​gems 来运行所有 gem 和它们的 dep 来测试它们是否需要本机 c 扩展,然后返回这样的列表?处理一些较小的项目肯定会很好,甚至知道是否值得处理将项目移至 jruby 的项目。