jruby – warbler似乎使用了一个不理解size_t的不同ffi
FFI理解:size_t在通过j
Ruby运行rails时,但不是在使用Warbler创建.war文件并使用java -jar my_project.war或Tomcat运行它之后.
Linux | Windows -----------------------------+------------- java -jar works | doesn't work tomcat works | doesn't work rails s (using jruby) works | works Linux和Windows在比较中使用相同的war文件. 这是在Windows上运行java -jar的回溯的顶部. (我在backtrace中编辑了文件路径的开头). --- Backtrace TypeError: unable to resolve type 'size_t' find_type at jar:file:/my_project.war/WEB-INF/lib/jruby-stdlib-1.7.2.jar!/META-INF/jruby.home/lib/ruby/shared/ffi/types.rb:55 type_size at jar:file:/my_project.war/WEB-INF/lib/jruby-stdlib-1.7.2.jar!/META-INF/jruby.home/lib/ruby/shared/ffi/types.rb:147 SQLAnywhere at my_project.war/WEB-INF/gems/gems/sqlanywhere-ffi-1.0.1/lib/sqlanywhere.rb:13 (root) at my_project.war/WEB-INF/gems/gems/sqlanywhere-ffi-1.0.1/lib/sqlanywhere.rb:5 require at org/jruby/RubyKernel.java:1027 当我查看回溯中的文件时,它们会列出各种c类型,但不会列出size_t. 在我看来,jRuby有2个FFI可供使用. > normal FFI gem. 2之间的巨大差异似乎只有前者理解:size_t. 我的问题是:有两种不同的FFI吗? PS:我是sqlanywhere-ffi gem的作者,所以如果问题是我依赖于错误的东西,我可以改变它.目前它在gemspec,gemfile中有ffi作为依赖性,它在主入口点需要’ffi’. 解决方法
我猜你的Tomcat目录的完整路径包含空格,确保它没有. jruby-1.6版本没有出现此问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |