JettyのSPDY "Hello Server"
質問
テスト目的で、 Jetty 、テスト目的で。私はこのコードに取り組んでいます:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.spdy.http.HTTPSPDYServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class MySPDYHelloServer {
public static void main(String[] args) throws Exception {
Server server = new Server();
SslContextFactory sslFactory = new SslContextFactory();
sslFactory.setKeyStorePath("dummy_keystore.jks");
sslFactory.setKeyStorePassword("password");
sslFactory.setProtocol("TLSv1");
Connector connector = new HTTPSPDYServerConnector(sslFactory);
connector.setPort(8443);
server.addConnector(connector);
server.setHandler( new AbstractHandler(){
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>Hello World</h1>");
}
} );
server.start();
server.join();
}
}
.
私はキーストアを:
keytool -genkey -keystore dummy_keystore.jks
.
Google Chrome(SPDY Enabled)をhttps://localhost:8443
に点灯させると、信頼できない証明書について警告し、次に forever をロードします。
純SPDYクライアント - サーバの例(ここ)作業と単純なHTTPSサーバーも機能します。この問題は httpspdyServerConnector クラス
これが私が使っているjarのリスト:
.
jetty-all-7.6.7.v20120910.jar
npn-boot-7.6.2.v20120308.jar
servlet-api-2.5.jar
spdy-core-7.6.7.v20120910.jar
spdy-jetty-7.6.7.v20120910.jar
spdy-jetty-http-7.6.7.v20120910.jar
と私のJava環境に関するもの:
.
$ cat /opt/jdk1.7.0_07/release
JAVA_VERSION="1.7.0"
OS_NAME="Linux"
OS_VERSION="2.6"
OS_ARCH="i586"
溶液補遺
Jesse McConnell 答え、とにかくEclipseを使用する人は、以下の便利なものを見つけることができます。
JAR npn-boot-7.6.2.v20120308.jar
(また)に配置されている必要があります。
Run Configurations... -> Classpath -> Bootstrap Entries -> Add External JARs
.
順序の問題以降、そのエントリはの前にの前に表示されなければなりません。
npn-boot-7.6.2.v20120308.jar
(また)に配置されている必要があります。
Run Configurations... -> Classpath -> Bootstrap Entries -> Add External JARs
解決
これを起動するときにBootClassPath JarとしてNPN-Bootを使用していますか?
Stock JVMはNPNをサポートしていません(次のプロトコルネゴシエーション)、SPDYが機能しないため、NPN-Boot Jarが-xBootClassPathオプションと組み合わせて使用されていることを確認する必要があります。Kindaは、証明書のロードやその停止に対処してから、NPN-Bootを参照してから、JVMクラスの置き換えが一般的な依存関係として参照しています。