2013-09-05 16 views
0

我使用的是jetty 2.1.6和sbt 0.7.7。如何用https使用sbt運行jetty 0.7.7

目前我的應用程序上運行的HTTP,但我想以https

我嘗試以下方法以https運行它運行: http://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Configuring_Jetty_for_SSL

然後我build.scala文件中設置下面的代碼。

 override lazy val jettyInstance = new JettyRunner(customJettyConfiguration) 
    def customJettyConfiguration = { 
    val myLog = log 
    val myJettyClasspath = jettyClasspath 
    new CustomJettyConfiguration { 
     def war = "target/scala_2.8.0/tos.war" 
     def scanDirectories = Nil 
     def scanInterval = 0 
     def jettyClasspath = myJettyClasspath 
     def classpath = jettyRunClasspath 
     def classpathName = "test" 
     def log = myLog 
     override def jettyConfigurationXML = 
     <Configure id="Server" class="org.mortbay.jetty.Server"> 
      <Call name="addConnector"> 
      <Arg> 
       <New class="org.mortbay.jetty.security.SslSocketConnector"> 
       <Set name="Port">443</Set> 
       <Set name="maxIdleTime">30000</Set> 
       <Set name="handshakeTimeout">2000</Set> 
       <Set name="keystore"><SystemProperty name="jetty.home" default=""/>/etc/xinetd.d/keystore</Set> 
       <Set name="password">password</Set> 
       <Set name="keyPassword">password</Set> 
       <Set name="truststore"><SystemProperty name="jetty.home" default=""/>/etc/xinetd.d/keystore</Set> 
       <Set name="trustPassword">password</Set> 
       <Set name="handshakeTimeout">2000</Set> 
       </New> 
      </Arg> 
      </Call> 
      <Call name="addConnector"> 
      <Arg> 
       <New class="org.mortbay.jetty.nio.SelectChannelConnector"> 
       <Set name="host"><SystemProperty name="jetty.host"/></Set> 
       <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set> 
       <Set name="maxIdleTime">30000</Set> 
       <Set name="Acceptors">2</Set> 
       <Set name="statsOn">false</Set> 
       <Set name="confidentialPort">443</Set> 
       <Set name="lowResourcesConnections">5000</Set> 
       <Set name="lowResourcesMaxIdleTime">5000</Set> 
       </New> 
      </Arg> 
      </Call> 
     </Configure> 
    } 
    } 

但是我沒有完成我的工作。

請讓我知道,如果我做錯了什麼。

編輯

I am using 6.1.26 version of jetty. 

對不起,我提到它有錯在先。

編輯

現在我有我的碼頭服務器成功升級到碼頭,8.0.0.M3

現在,我得到下面的時候我寫在上面我build.scala文件中的代碼錯誤:

java.lang.NoSuchMethodError: org.eclipse.jetty.xml.XmlConfiguration.configure(Ljava/lang/Object;)V 
at sbt.jetty.LazyJettyRun7$$anonfun$3.apply(LazyJettyRun7.scala:96) 
at sbt.jetty.LazyJettyRun7$$anonfun$3.apply(LazyJettyRun7.scala:95) 
at scala.Iterator$class.foreach(Iterator.scala:414) 
at scala.List$$anon$2.foreach(List.scala:598) 
at scala.Iterable$class.foreach(Iterable.scala:256) 
at scala.xml.NodeSeq.foreach(NodeSeq.scala:34) 
at sbt.jetty.LazyJettyRun7$.apply(LazyJettyRun7.scala:95) 
at sbt.JettyRunner.runJetty$1(WebApp.scala:49) 
at sbt.JettyRunner.apply(WebApp.scala:58) 
at sbt.WebScalaProject$$anonfun$jettyRunTask$1.apply(ScalaProject.scala:383) 
at sbt.WebScalaProject$$anonfun$jettyRunTask$1.apply(ScalaProject.scala:383) 
at sbt.TaskManager$Task.invoke(TaskManager.scala:62) 
at sbt.impl.RunTask.doRun$1(RunTask.scala:77) 
at sbt.impl.RunTask.runTask(RunTask.scala:85) 
at sbt.impl.RunTask.run(RunTask.scala:32) 
at sbt.impl.RunTask$.apply(RunTask.scala:17) 
at sbt.impl.RunTask$.apply(RunTask.scala:16) 
at sbt.Project$class.run(Project.scala:98) 
at sbt.Project$class.act(Project.scala:129) 
at sbt.BasicScalaProject.act(DefaultProject.scala:21) 
at sbt.xMain$$anonfun$8.apply(Main.scala:530) 
at sbt.xMain$$anonfun$8.apply(Main.scala:530) 
at sbt.xMain.withAction(Main.scala:563) 
at sbt.xMain.sbt$xMain$$handleAction(Main.scala:530) 
at sbt.xMain.handleCommand(Main.scala:520) 
at sbt.xMain.processAction(Main.scala:459) 
at sbt.xMain.process$1(Main.scala:257) 
at sbt.xMain$Continue$1.apply(Main.scala:132) 
at sbt.xMain.run$1(Main.scala:136) 
at sbt.xMain.processArguments(Main.scala:266) 
at sbt.xMain.startProject(Main.scala:107) 
at sbt.xMain.run(Main.scala:84) 
at sbt.xMain.run0$1(Main.scala:35) 
at sbt.xMain.run(Main.scala:42) 
at xsbt.boot.Launch$.run(Launch.scala:55) 
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45) 
at xsbt.boot.Launch$.launch(Launch.scala:69) 
at xsbt.boot.Launch$.apply(Launch.scala:16) 
at xsbt.boot.Boot$.runImpl(Boot.scala:31) 
at xsbt.boot.Boot$.main(Boot.scala:20) 
at xsbt.boot.Boot.main(Boot.scala) 

[信息] ==碼頭運行== [錯誤]錯誤運行碼頭運行:錯誤運行碼頭:java.lang.NoSuchMethodError:org.eclipse.jetty.xml.XmlConfiguration.configure(Ljava /郎/對象;)V

+0

你知道存在Jetty 9和sbt 0.13嗎?你看到的鏈接是針對Jetty 7和8的。 – sschaef

+0

我注意到的一件事是,在'SelectChannelConnector'中''confidentialPort'爲'8443',但在'SslSocketConnector'中你的端口爲'443'。這些應該匹配嗎?點擊「https」URL時你指定了哪個端口? – theon

+0

Jetty 2.6.1非常古老,即使Jetty開發者也失去了它的所有副本。如果您使用的是Jetty 7.x,8.x或9,您應該使用'org.eclipse.jetty'作爲Jetty版本5.x和6.x的'org.mortbay.jetty'的類引用。 .x –

回答

0

0.7.7是SBT的一個很老的版本。我知道你可能有理由不升級,但如果你可以有xsbt-web-plugin SBT插件,使得Jetty中的configuring SSL超級容易。

+0

雅,你是正確的,我可以'升級,但我只需要此版本的解決方案。所以請給我提供這個版本的碼頭的解決方案 – Rishi

相關問題