2015-09-23 4 views
0

В Jetty 8, это было довольно легко переписать стандартный порт сервера и добавить соединитель SSL в пользовательском jetty.xml файле следующим образом:Использование Jetty 9 и jetty.xml с Basex

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 
    <Call name="addConnector"> 
    <Arg> 
     <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
     <Set name="port">8984</Set> 
     <Set name="confidentialPort">8986</Set> 
     </New> 
    </Arg> 
    </Call> 

    <Call name="addConnector"> 
    <Arg> 
     <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> 
     <Set name="Port">8986</Set> 
     <!-- keystore, password, keyPassword, ... --> 
     </New> 
    </Arg> 
    </Call> 
</Configure> 

Поскольку эта конфигурация не принимается Jetty 9, я проверил Jetty documentation и связанные с ним проблемы StackOverflow (например, How to override jetty.xml with jetty.port) без успеха.

Какую конфигурацию можно переписать, чтобы сделать то же самое в Jetty 9?

ответ

1

Существует практически нет причин быть редактирования XML-файлов больше с Jetty 9.

Используйте модуль системы Jetty 9 и ${jetty.base} понятий.

$ cd /opt/jetty 
$ tar -zxvf jetty-distribution-9.3.3.v20150827.tar.gz 
$ mkdir my.base 
$ cd my.base 
$ java -jar ../jetty-distribution-9.3.3.v20150827/start.jar \ 
    --add-to-start=http,https,deploy,webapp 
INFO: server   initialised (transitively) in ${jetty.base}/start.ini 
INFO: http   initialised in ${jetty.base}/start.ini 
INFO: ssl    initialised (transitively) in ${jetty.base}/start.ini 
INFO: https   initialised in ${jetty.base}/start.ini 
INFO: webapp   initialised in ${jetty.base}/start.ini 
INFO: deploy   initialised in ${jetty.base}/start.ini 
DOWNLOAD: http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/src/test/config/etc/keystore?id=master to ${jetty.base}/etc/keystore 
MKDIR: ${jetty.base}/webapps 
INFO: Base directory was modified 
$ ls -laF$ ls -laF 
total 48 
drwxrwxr-x. 4 joakim joakim 4096 Sep 23 06:01 ./ 
drwxr-xr-x. 22 joakim joakim 12288 Sep 23 06:00 ../ 
drwxrwxr-x. 2 joakim joakim 4096 Sep 23 06:01 etc/ 
-rw-rw-r--. 1 joakim joakim 5009 Sep 23 06:01 start.ini 
drwxrwxr-x. 2 joakim joakim 4096 Sep 23 06:01 webapps/ 

На данный момент:

  • Заменить etc/keystore файл с вашего SSL ключей.
  • Редактирование start.ini для:
    • вашего порт HTTP (jetty.http.port)
    • вашего HTTPS порт (jetty.https.port)
    • и ваше различного SSLContext значение/ключей (см ключей, начинающиеся с jetty.sslContext.)

После завершения запуска Jetty ..

$ cd /opt/jetty/my.base 
$ java -jar ../jetty-distribution-9.3.3.v20150827/start.jar 
2015-09-23 06:05:40.619:INFO::main: Logging initialized @272ms 
2015-09-23 06:05:40.764:INFO:oejs.Server:main: jetty-9.3.3.v20150827 
2015-09-23 06:05:40.779:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///home/joakim/code/jetty/distros/my.base/webapps/] at interval 1 
2015-09-23 06:05:40.790:INFO:oejs.ServerConnector:main: Started [email protected]{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} 
2015-09-23 06:05:40.810:INFO:oejus.SslContextFactory:main: [email protected](jetty,h=[jetty.eclipse.org],w=[]) for [email protected](file:///home/joakim/code/jetty/distros/my.base/etc/keystore,file:///home/joakim/code/jetty/distros/my.base/etc/keystore) 
2015-09-23 06:05:40.810:INFO:oejus.SslContextFactory:main: [email protected](mykey,h=[],w=[]) for [email protected](file:///home/joakim/code/jetty/distros/my.base/etc/keystore,file:///home/joakim/code/jetty/distros/my.base/etc/keystore) 
2015-09-23 06:05:41.026:INFO:oejs.ServerConnector:main: Started [email protected]{SSL,[ssl, http/1.1]}{0.0.0.0:8443} 
2015-09-23 06:05:41.027:INFO:oejs.Server:main: Started @680ms 

Любопытно, как выглядит ваша конфигурация сервера? Запуск этого ...

$ cd /opt/jetty/my.base 
$ java -jar ../jetty-distribution-9.3.3.v20150827/start.jar --list-config 
+0

Благодарим Вас за отзыв! Мы настраиваем и запускаем Jetty из другого программного обеспечения (см. Https://github.com/BaseXdb/basex/blob/master/basex-api/src/main/java/org/basex/BaseXHTTP.java), и мы используем автономный файл [jetty.xml] (https://github.com/BaseXdb/basex/blob/master/basex-api/src/main/webapp/WEB-INF/jetty.xml) для настройки специфичного для Jetty настройки. Мне интересно, можем ли мы поддерживать аналогичную настройку с Jetty 9? –

+0

Вот некоторые (основные) [пользовательская документация] (http://docs.basex.org/wiki/Web_Application) о том, как мы используем jetty.xml. –

+0

Не без каких-либо серьезных обновлений кода от BaseXdb (например, он делает допущения о несоответствиях разъемов и коннекторов). В Jetty 9+ нет такой вещи, как SelectChannelConnector, поскольку она продвигается с потребностями современного мира (TLS/ALPN) и обновлениями, которые HTTP/2 приносит в таблицу. Старая концепция SelectChannelConnector была недостаточной для достижения этой цели. –

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