Maven的jetty插件SSL配置问题

Joh*_*nco 6 maven-2 jetty maven-plugin

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

试图用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
Run Code Online (Sandbox Code Playgroud)

使用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 /码头-分布- 7.0.0.pre5现场组分/目标/站点/ apidocs /组织/ mortbay /码头/ 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 /码头 - 分布 - 7.0.0.pre5现场组分/目标/站点/ apidocs /组织/ mortbay /码头/ SSL/SslSelectChannelConnector.html

欢迎任何想法.

Gre*_*ala 16

对于当前版本的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>
Run Code Online (Sandbox Code Playgroud)

请参阅:http://wiki.eclipse.org/Jetty/Starting/Porting_to_Jetty_7


Pas*_*ent 8

不确定这是正常的但是jetty-maven-plugin jetty-ssl在它的pom 中没有依赖性.所以请像这样更新你的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>
Run Code Online (Sandbox Code Playgroud)

插件将成功加载org.mortbay.jetty.ssl.SslSelectChannelConnector.