首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mule Studio中使用jruby-openssl

在Mule Studio中使用jruby-openssl
EN

Stack Overflow用户
提问于 2012-04-25 03:28:10
回答 1查看 774关注 0票数 1

我需要在Mule Studio的Ruby中使用openssl。Mule是用JRuby预先打包的。我相信您知道,JRuby不包括openssl。我下载了,并将这些文件包含在我的Mule项目中。我可以要求文件,除了jopenssl.jar。事实上,我可以要求,但它似乎什么也做不了。我看到以下错误:

代码语言:javascript
复制
uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER

这当然是指OpenSSL::OPENSSL_VERSION_NUMBER

只是为了好玩,我手动定义了它,但是它一直在寻找越来越多的未初始化常量。我读过一些文章,指出使用jruby的唯一方法是解压缩并合并jruby-complete.jar和jopenssl.jar。由于Mule正在使用自己的JRuby副本,这是不可行的,更不用说荒谬的传说了。

那么,有人知道如何在Mule Studio中使用吗?(我对Mule和JRuby都是新手,但很快就学会了不喜欢两者。)

增编

背景:我们需要用Mule在FTPS上传输文件。由于它不被直接支持,而且我们有一个现有的Ruby实现,所以我们决定简单地将Ruby代码移到Mule中。但是它需要openssl,而这正是这个问题开始的地方。上面的require 'openssl'行是触发错误的原因。

下面是相关的Mule/Ruby代码:

代码语言:javascript
复制
<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之外,其他任何事情都没有改变。

代码语言:javascript
复制
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.

更新

可悲的是,经过几天的努力,我的公司已经决定,通过Mule支持FTPS是不值得的。

EN

回答 1

Stack Overflow用户

发布于 2012-04-25 18:11:56

Mule中的脚本语言支持是可插拔的,并通过JSR-223兼容的提供者实现.Mule只嵌入Groovy,即必须将添加JRuby嵌入到Mule,这将给您选择实现目标所需的任何JAR(s)的机会。

另一方面,Mule Studio嵌入了额外的脚本提供程序,包括JRuby。这很方便,但如果需要特定版本(这似乎是您的情况),则可能会产生问题。

在Studio中,如果打开Mule运行时库,就会发现jruby 1.1-jdk14.jar和JRuby-Comple-1.0.jar。不幸的是,Studio不允许修改这个库,所以最好的选择是创建一个新的库,选择/plugins/org.mule.tooling.server.3.2.1_1.0.0.201201200937/mule下的所有JAR(./user中的JAR除外),然后添加真正需要的JAR。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10308951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档