Мне нужно использовать openssl в Ruby в Mule Studio. Mule Studio поставляется в комплекте с JRuby. Как я уверен, вы знаете, JRuby не включает openssl. Я загрузил jruby-openssl gem и включил файлы в мой проект Mule. Я могу потребовать файлы, кроме jopenssl.jar. На самом деле мне нужен , но он ничего не делает. Я вижу следующее сообщение об ошибке:Использование jruby-openssl в Mule Studio
uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
Это, конечно, со ссылкой на OpenSSL::OPENSSL_VERSION_NUMBER
.
Просто для удовольствия я вручную определил его, но затем он продолжал находить все больше и больше неинициализированных констант. Я прочитал несколько статей, в которых говорится, что единственный способ использования jruby-openssl - распаковать и объединить jruby-complete.jar и jopenssl.jar. Поскольку Мул использует свою собственную копию JRuby, это невозможно, не говоря уже о смешном kludge.
Итак, кто-нибудь знает, как использовать jruby-openssl в Mule Studio? (FYI Я новичок в обоих Mule и JRuby, но я быстро учусь и не любят.)
Добавление
Немного предыстории: Нам нужно транспортировать файлы по FTPS с Mule. Поскольку он не поддерживается напрямую, и у нас есть существующая реализация Ruby, мы решили просто переместить код Ruby в Mule. Но для этого требуется openssl, в котором началась эта проблема. Строка require 'openssl'
является тем, что вызывает ошибку.
Вот соответствующий Mule/рубин код:
<scripting:transformer name="SetData" doc:name="Set Data">
<scripting:script engine="jruby">
<scripting:text><![CDATA[
require 'socket'
require 'openssl'
require 'net/ftp'
require 'implicit_ftps'
...
]]></scripting:text>
</scripting:script>
</scripting:transformer>
На ваше предложение, я перестроил Mule библиотека окружающей среды, заменив новую версию JRuby, которая включает в себя jopenssl.jar. Однако теперь я получаю следующую ошибку при запуске моего приложения. Насколько я знаю, кроме jruby-complete.jar, ничего больше не изменилось.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/consolo/bin/MuleStudio/plugins/org.mule.tooling.server.3.2.1_1.0.0.201201200937/mule/boot/mule-module-logging-3.2.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/consolo/bin/MuleStudio/plugins/org.mule.tooling.server.3.2.1_1.0.0.201201200937/mule/boot/mule-module-logging-3.2.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Update
К сожалению, после того, как дни затраченных усилий, моя компания решила, что поддержка FTPS через мул не стоит.
Я хотел бы перейти за пределы моего ответа ниже и помочь вам разобраться с проблемой. Не могли бы вы поделиться достаточно Mule config/Ruby code, чтобы воспроизвести проблему? –
Спасибо. Я добавил дополнительную информацию к первоначальному вопросу.Дайте мне знать, если вам нужна дополнительная информация. – bioneuralnet
Возможно ли, что mule-module-logging-3.2.1.jar добавляется дважды в путь сборки проекта? Помимо предупреждения SLF4J, работает ли код JRuby? –