我使用的是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
你知道存在Jetty 9和sbt 0.13嗎?你看到的鏈接是針對Jetty 7和8的。 – sschaef
我注意到的一件事是,在'SelectChannelConnector'中''confidentialPort'爲'8443',但在'SslSocketConnector'中你的端口爲'443'。這些應該匹配嗎?點擊「https」URL時你指定了哪個端口? – theon
Jetty 2.6.1非常古老,即使Jetty開發者也失去了它的所有副本。如果您使用的是Jetty 7.x,8.x或9,您應該使用'org.eclipse.jetty'作爲Jetty版本5.x和6.x的'org.mortbay.jetty'的類引用。 .x –