jruby:java类接受IRB中的参数,但从类调用时返回错误

jruby:java类接受IRB中的参数,但从类调用时返回错误,java,ruby,jruby,Java,Ruby,Jruby,我使用的是一个接受重写方法的类,我的意思是可选参数签名,不确定这在本例中是否重要,但可能 当我从IRB调用它时,它正在按预期工作,例如,它接受参数 使用[filtered]过滤名称空间和密码,在需要保密的地方为我的公司保密 jruby-1.5.0 > require 'java' => true jruby-1.5.0 > Dir.glob('lib/java/*.jar').each{|jar| require jar} => ["lib/java/[filte

我使用的是一个接受重写方法的类,我的意思是可选参数签名,不确定这在本例中是否重要,但可能

当我从IRB调用它时,它正在按预期工作,例如,它接受参数

使用[filtered]过滤名称空间和密码,在需要保密的地方为我的公司保密

jruby-1.5.0 > require 'java'
 => true 

jruby-1.5.0 > Dir.glob('lib/java/*.jar').each{|jar| require jar}
 => ["lib/java/[filtered].jar", "lib/java/[filtered].jar", "lib/java/[filtered].jar"] 

jruby-1.5.0 > import "[filtered].His351n1"
 => Java::[filtered]::His351n1 

jruby-1.5.0 > broker = [filtered].Broker.new('[filtered]', '[filtered]')
 => #<Java::[filtered]::Broker:0x4c4936f3> 

jruby-1.5.0 > rpc = "[filtered]"
 => "[filtered]" 

jruby-1.5.0 > his = His351n1.new(broker, rpc)
 => #<Java::[filtered]::His351n1:0x7fb6a1c4> 
最后,调用His351n1.new失败的错误

1)
ArgumentError in 'Legacy::Base should create a valid his351n1 object'
wrong # of arguments(2 for 0)
让事情复杂化的是,在irb上,这显然也是有效的:

jruby-1.5.0 > his = His351n1.new
 => #<Java::[filtered]::His351n1:0x5ad3c69c> 

在对象的实例化过程中,似乎需要整个名称空间:

his=Java::[filtered_namesapce]::His351n1.newbuild_broker,rpc

jruby-1.5.0 > his = His351n1.new
 => #<Java::[filtered]::His351n1:0x5ad3c69c> 
public His351n1() {
    super();
}

public His351n1(Broker broker) {
    this(broker, DEFAULT_SERVER);
}

public His351n1(BrokerService bs) {
    this(bs.getBroker(), bs.toString());
}

public His351n1(Broker broker, String serverAddr) {
    super(broker, serverAddr, "string", true);
}

public His351n1(final Broker broker, final String serverAddr, final String library)
{
    super(broker, serverAddr, library, true);
}