문제

테스트 목적으로 Jetty 가있는 Spdy 서버를 통해 최소한의 HTTP를 설정하려고합니다. ...에 나는이 코드에서 일하고있다 :

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 크롬 (Sphy Enabled)을 ProgenaCodiceTag 코드로 가리킬 때 신뢰할 수없는 인증서에 대해 나를 경고 한 다음 영원히로드 로드합니다.

순수한 샘플 클라이언트 - 서버 예제 ( -How-use-spdy-jetty relinch"nofollow noreferrrer"> "여기) 작업 및 간단한 HTTPS 서버도 작동합니다. 이 문제는 relvollow noreferrer"> httpspdyserverconnector 클래스.

여기에있는 항아리 목록은 다음과 같습니다.

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 " 답변 , 이클립스를 사용하는 사람들은 다음과 같은 유용합니다.

jar https://localhost:8443는 다음과 같이 배치해야합니다 :

Run Configurations... -> Classpath -> Bootstrap Entries -> Add External JARs
.

은 주문 이후, 에 나타나야합니다.

도움이 되었습니까?

해결책

이 작업을 시작할 때 BootClassPath Jar로 NPN 부팅을 사용하고 있습니까?

Stock JVM은 NPN (다음 프로토콜 협상)을 지원하지 않으며 Sphy가 작동하지 않으므로 NPN 부트 JAR이 -xbootclasspath 옵션과 함께 사용되고 있는지 확인해야합니다.인증서로드 중이고 실제로는 JVM 클래스를 교체 할 때 NPN 부팅을 참조하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top