문제

나는 Rails에서 Jruby의 오이를 보려고 노력하고 있습니다. 사전 반복물 중 하나는 사전 반품 HPRICOT 인 Webrat입니다.

다음을 사용하여 HPRICOT로 보석을 설치했습니다.

보석 설치 HPRICOT -소스 http://code.wytheluckystiff.net -version 0.6.1 -Platform Java

HPRICOT의 Java 버전을 설치합니다. 나는 classpath에 hpricot_scan.jar를 추가하지만 실행할 때 :

cucumber features -n

다음 출력을 얻습니다.

HpricotScanService.java:931:in `hpricot_scan': java.lang.NoSuchMethodError:
org.jruby.runtime.builtin.IRubyObject.getInstanceVariable(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
from HpricotScanService.java:1324:in `__hpricot_scan'
from null:-1:in `call'
from InvocationCallback.java:67:in `execute'
from FullFunctionCallbackMethod.java:69:in `call'
from DynamicMethod.java:243:in `call'
from CachingCallSite.java:283:in `cacheAndCall'
from CachingCallSite.java:121:in `callBlock'

등.

hpricotscanservice.java 파일을 컴파일하고 결과 .class 파일을 classpath에 추가하면 다음을 얻습니다.

Then I should see "Run"
private method `scan' called for Hpricot:Module (NoMethodError)
features/step_definitions/webrat_steps.rb:94:in `/^I should see "([^\"]*)"$/'
features/manage_activity.feature:9:in `Then I should see "Run"'

나중에 HPRICOT 버전을 설치하려고하면 다음을 얻습니다.

ERROR: Failed to build gem native extension.
C:/Program Files/Ruby/jruby-1.2.0/bin/../bin/jruby.bat extconf.rb install hpricot --platform java
C:/Program Files/Ruby/jruby-1.2.0/bin/../lib/ruby/1.8/mkmf.rb:7: JRuby does not support native extensions. Check wiki.jruby.org for alternatives. (Not
ImplementedError)
from C:/Program Files/Ruby/jruby-1.2.0/bin/../lib/ruby/1.8/mkmf.rb:1:in `require'
from extconf.rb:1

누구든지 내가 틀린 일에 대한 단서가 있습니까?

Windows XP 사용, Jruby 1.2.0

도움이 되었습니까?

해결책

참고로 Jruby의 버전 1.4는 이제 HPRICOT 버전 0.7을 지원합니다.

http://jruby.org/2009/11/02/jruby-1-4-0.html

다른 팁

나는 오이에 대해 잘 모르지만 jruby 1.2.0 (최신 버전의 HPRICOT는 아니지만)에서 HPRICOT를 사용할 수 있습니다. 어떤 버전의 HPRICOT를 설치 했습니까? 어쩌면 다른 라이브러리와 호환되지 않습니까?

다음 명령이 저를 위해 작동했습니다.

jruby -S gem install hpricot --version '~>0.6.1'  

Ola Bini가 지난 달 HPRICOT JRUBY 지원에 대한 재 작성 이후 git 헤드 hpricot의 Jruby와 함께 설치할 수 있습니다. 헤드를 다운로드 한 다음 사용하십시오

jruby -S rake package_jruby
cd pkg
sudo jgem install ./hpricot-0.8.1-jruby.gem

그리고 당신은 황금이어야합니다.

HPRICOT는 기본 C 확장을 사용하며 FFI를 준수하지 않습니다. 따라서 Jruby에서는 사용할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top