2013-02-21 2 views
0

Я пытаюсь создать свое первое приложение встраиваемого режима Jetty после учебника по вики Eclipse. Я хочу сделать это в JRuby, а не в Java.jetty embedded app using jruby

Вот код Java:

public class ManyConnectors 
{ 
public static void main(String[] args) throws Exception 
{ 
    Server server = new Server(); 

    SelectChannelConnector connector0 = new SelectChannelConnector(); 
    connector0.setPort(8080); 
    connector0.setMaxIdleTime(30000); 
    connector0.setRequestHeaderSize(8192); 

    SelectChannelConnector connector1 = new SelectChannelConnector(); 
    connector1.setHost("127.0.0.1"); 
    connector1.setPort(8888); 
    connector1.setThreadPool(new QueuedThreadPool(20)); 
    connector1.setName("admin"); 

    SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector(); 
    String jetty_home = 
     System.getProperty("jetty.home","../jetty-distribution/target/distribution"); 
    System.setProperty("jetty.home",jetty_home); 
    ssl_connector.setPort(8443); 
    SslContextFactory cf = ssl_connector.getSslContextFactory(); 
    cf.setKeyStore(jetty_home + "/etc/keystore"); 
    cf.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"); 
    cf.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g"); 

    server.setConnectors(new Connector[]{ connector0, connector1, ssl_connector }); 

    server.setHandler(new HelloHandler()); 

    server.start(); 
    server.join(); 
} 
} 

У меня проблема перевод эту строку в эквивалентный JRuby:

server.setConnectors(new Connector[]{ connector0, connector1, ssl_connector }); 

Любая помощь будет оценена.

+0

В чем проблема? Покажите свои усилия, ваши испытания, ваши ошибки. – gaborsch

+0

Можете ли вы показать свой импорт? – Rob

ответ

1

Попробуйте использовать обычный старый массив:

server.set_connectors([connector0, connector1, ssl_connector ]) 

EDIT - вот рабочий пример:

require 'pp' 
require 'java' 
require 'jetty-6.1.3.jar' # in local dir 
require 'jetty-util-6.1.3.jar' # in local dir 
require 'servlet-api-2.5-6.1.3.jar' # in local dir 

class MyHandler 
    include org.mortbay.jetty.Handler 
    def destroy;end 
    def start;end 
    def getServer;end 
    def handle(target, request, response, dispatch) 
    pp target 
    pp request 
    end 
    def setServer(server);end 
end 
server = Java::OrgMortbayJetty::Server.new 


connector0 = org.mortbay.jetty.nio.SelectChannelConnector.new 
connector0.set_port(8080) 
connector0.set_max_idle_time(30000) 
# connector0.set_request_header_size(8192) # could not find this method 

server.set_connectors([connector0]) 
server.set_handlers([MyHandler.new]) 
server.start 
server.join 
+0

Спасибо. Это сделал трюк. Вы ученый и джентльмен. – user2095940

Смежные вопросы