Проблема конфигурации SSL подключаемого модуля Maven's jetty - PullRequest
5 голосов
/ 07 февраля 2010

Я использую плагин Jetty для Maven, версия 7.0.0.pre5, но у меня возникают проблемы с его настройкой на наличие SSL-коннектора. Всякий раз, когда я запускаю приложение, оно терпит неудачу, заявляя, что запрошенная реализация не найдена.

Это конфигурация плагина в моем pom.xml

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>7.0.0.pre5</version>
  <configuration>
    <connectors>
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
        <port>8080</port>
      </connector>
      <connector implementation="org.mortbay.jetty.ssl.SslSelectChannelConnector">
        <port>8443</port>
        <keystore>src/test/resources/server.keystore</keystore>
        <keyPassword>123456</keyPassword>
        <password>123456</password>
      </connector>
    </connectors>
  </configuration>
</plugin>

Попытка запустить его с помощью mvn jetty: run дает следующий вывод:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to configure plugin parameters for: org.mortbay.jetty:jetty-maven-plugin:7.0.0.pre5



Cause: Class name which was explicitly given in configuration using 'implementation' attribute: 'org.mortbay.jetty.ssl.SslSelectChannelConnector' cannot be loaded

Использование org.mortbay.jetty.ssl.SslSocketConnector приводит к тому же результату.

Это действительно странно, поскольку, согласно собственной документации Jetty, оба класса существуют, и это их правильное имя (обратите внимание, в Jetty 6 вместо ssl была использована защита пакета).

Ссылка: http://www.jarvana.com/jarvana/view/org/mortbay/jetty/jetty-assembly/7.0.0.pre5/jetty-assembly-7.0.0.pre5-site-component.jar!/jetty-7.0.0.pre5/jetty-distribution-7.0.0.pre5-site-component/target/site/apidocs/org/mortbay/jetty/ssl/SslSocketConnector.html

http://www.jarvana.com/jarvana/view/org/mortbay/jetty/jetty-assembly/7.0.0.pre5/jetty-assembly-7.0.0.pre5-site-component.jar!/jetty-7.0.0.pre5/jetty-distribution-7.0.0.pre5-site-component/target/site/apidocs/org/mortbay/jetty/ssl/SslSelectChannelConnector.html

Любые идеи приветствуются.

Ответы [ 4 ]

15 голосов
/ 03 мая 2011

Для текущей версии jetty-maven-plugin, 8.0.0.M2, имена классов были перемещены в org.eclipse. *, И никаких дополнительных зависимостей не требуется.

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.0.0.M2</version>
    <configuration>
        <webAppConfig>
            <contextPath>/</contextPath>
        </webAppConfig>
        <connectors>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                <port>8080</port>
            </connector>
            <connector implementation="org.eclipse.jetty.server.ssl.SslSocketConnector">
                <port>8443</port>
                <keystore>src/test/resources/server.keystore</keystore>
                <keyPassword>123456</keyPassword>
                <password>123456</password>
            </connector>
        </connectors>
    </configuration>
</plugin>

См .: http://wiki.eclipse.org/Jetty/Starting/Porting_to_Jetty_7

8 голосов
/ 07 февраля 2010

Не уверен, что это нормально, но у jetty-maven-plugin нет зависимости jetty-ssl в зависимости Поэтому, пожалуйста, обновите ваш пом как:

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>7.0.0.pre5</version>
  <configuration>
    <connectors>
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
        <port>8080</port>
      </connector>
      <connector implementation="org.mortbay.jetty.ssl.SslSelectChannelConnector">
        <port>8443</port>
        <keystore>src/test/resources/server.keystore</keystore>
        <keyPassword>123456</keyPassword>
        <password>123456</password>
      </connector>
    </connectors>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-ssl</artifactId>
      <version>7.0.0.pre5</version>
    </dependency>
  </dependencies>
</plugin>

И плагину удастся загрузить org.mortbay.jetty.ssl.SslSelectChannelConnector.

3 голосов
/ 12 октября 2010

Для любого, кто использует Jetty 6.x, артефакт для включения в зависимости для плагина: jetty-sslengine.

0 голосов
/ 08 августа 2011

Фактически то же, что и ответ Паскаля Тивента с сочетанием ответа gnuf, но действительный (вер. 6.1.26).

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>6.1.26</version>
  <configuration>
    <connectors>
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
        <port>8080</port>
      </connector>
      <connector implementation="org.mortbay.jetty.security.SslSelectChannelConnector">
        <port>8443</port>
        <keystore>server.keystore</keystore>
        <keyPassword>password</keyPassword>
      </connector>
    </connectors>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-sslengine</artifactId>
      <version>6.1.26</version>
    </dependency>
  </dependencies>
</plugin>
...