jetty-maven-plugin jetty9.1 HTTPS

使用jetty9.1,通过jetty-maven-plugin配置https 服务器。

Configuring the Jetty Maven Plugin

http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html

Jetty 9.1.2
Oracle Java SE 7u51
Eclipse Kepler (4.3.1) SR1 (Eclipse IDE for Java EE Developers)
jetty-maven-plugin
Windows10

Keystore

Server 密匙设定,自己百度,很多例子

创建maven 项目

这个应该也不难,重点在下面

使用Jetty9的sample配置文件

在  http://download.eclipse.org/jetty/ 上下载最新的Jetty9程序包
解压展开, 把etc目录下的jetty.xml, jetty-ssl.xml, jetty-https.xml 复制到 Eclipse 的项目新疆etc文件夹中,注意jetty版本,不同版本这三个配置文件的内容有差异。下面是我自己的目录。注意和pom.xml里面文件引用路径对应就可以。


jetty.xml

添加配置

    <Call name="setProperty" class="java.lang.System">
        <Arg>org.eclipse.jetty.annotations.maxWait</Arg>
        <Arg>120</Arg>
    </Call>
也可以直接配置Goals时,使用 jetty:run -Dorg.eclipse.jetty.annotations.maxWait=120。另外修改start.ini应该也可以。


上面两种配置是为了解决下面的问题
[INFO] Scanning elapsed time=63777ms
[WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@1cb19dba{/zzbank,file:///D:/workspace/zzbank_tbs/src/main/webapp/,UNAVAILABLE}{file:///D:/workspace/zzbank_tbs/src/main/webapp/}
java.lang.Exception: Timeout scanning annotations
	at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:496)
	at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:365)
	at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:512)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1437)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:799)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:540)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:432)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
	at org.eclipse.jetty.server.Server.start(Server.java:452)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
	at org.eclipse.jetty.server.Server.doStart(Server.java:419)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:460)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:328)
	at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:170)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[INFO] x509=X509@2324bfe7(tgdslsg.com,h=[tgdslsg.com],w=[]) for SslContextFactory@112d1c8e(file:///D:/workspace/zzbank_tbs/src/main/resources/keystore/jetty.keystore,file:///D:/workspace/zzbank_tbs/src/main/resources/keystore/jetty.keystore)
[INFO] Started ServerConnector@3c35c345{SSL,[ssl, http/1.1]}{0.0.0.0:8443}
[INFO] Started @72011ms
[INFO] Started Jetty Server
https://stackoverflow.com/questions/25229710/jetty-annotation-timeout-reason

jetty-ssl.xml

把生成的keystore复制的项目的文件夹中,改变如下的配置

Xml代码   收藏代码
  1. ...  
  2. <Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">  
  3.   <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="src/main/resources/keystore"/></Set>  
  4.   <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="test"/></Set>  
  5.   <Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="testtest"/></Set>  
  6.   <Set name="EndpointIdentificationAlgorithm"></Set>  
  7.   <Set name="ExcludeCipherSuites">  
  8. ...  
 

如果没有生成keystory文件,也可以使用jetty9 文件包里etc目录下的文件,那样密码设定也不需要修改,仅供测试用。

jetty-https.xml

设定https的端口号,超时时间等。

 

Xml代码   收藏代码
  1. ...  
  2. <Set name="host"><Property name="jetty.host" /></Set>  
  3. <Set name="port"><Property name="https.port" default="9443" /></Set>  
  4. <Set name="idleTimeout"><Property name="https.timeout" default="30000"/></Set>  
  5. ...  
 

 

 

pom.xml

pom.xml 文件中 jetty-maven-plugin 设定中,把上面的三个文件加载进来

  1. <plugin>  
  2.     <groupId>org.eclipse.jetty</groupId>  
  3.     <artifactId>jetty-maven-plugin</artifactId>  
  4.     <version>9.2.6.v20141205</version>  
  5.     <configuration>  
  6.         <jettyConfig>${project.basedir}/src/etc/jetty.xml,${project.basedir}/src/etc/jetty-ssl.xml,${project.basedir}/src/etc/jetty-https.xml</jettyConfig>  
  7.         <stopKey>STOP</stopKey>  
  8.         <stopPort>9999</stopPort>  
  9.         <stopWait>5</stopWait>  
  10.         <scanIntervalSeconds>5</scanIntervalSeconds>  
  11.         <scanTargets>  
  12.            <scanTarget>${project.basedir}/src/main</scanTarget>  
  13.            <scanTarget>${project.basedir}/src/test</scanTarget>  
  14.        </scanTargets>  
  15.        <webAppConfig>  
  16.           <contextPath>/${project.artifactId}</contextPath>  
  17.        </webAppConfig>  
  18.     </configuration>  
  19. </plugin>  
 

启动jetty服务器

Ecipse中 运行goal jetty:run ,jetty启动好访问https://localhost:9943/, 成功开启https服务器

启动成功。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值