2010-02-07 4 views
5

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

Это конфигурация плагина в моей 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> 

Попытка запустить его с МВН причалу: бег дает следующий результат:

[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

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

ответ

8

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

<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.

+0

Это было! Благодаря! – Johnco

3

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

+0

ЭТО! Спасибо огромное! Кроме того, коннектор на самом деле является org.mortbay.jetty.security.SslSelectChannelConnector для 6.x. И здесь есть учебное пособие по созданию хранилища ключей: http://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Generating_Keys_and_Certificates_with_JDK_keytool – mowwwalker

15

Для текущей версии 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

0

На самом деле же, как ответил Паскаль Thivent с конъюнкции с 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> 
Смежные вопросы