문제
테스트 목적으로 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
.
은 주문 이후, 에 나타나야합니다.
https://localhost:8443
는 다음과 같이 배치해야합니다 :
Run Configurations... -> Classpath -> Bootstrap Entries -> Add External JARs
해결책
이 작업을 시작할 때 BootClassPath Jar로 NPN 부팅을 사용하고 있습니까?
Stock JVM은 NPN (다음 프로토콜 협상)을 지원하지 않으며 Sphy가 작동하지 않으므로 NPN 부트 JAR이 -xbootclasspath 옵션과 함께 사용되고 있는지 확인해야합니다.인증서로드 중이고 실제로는 JVM 클래스를 교체 할 때 NPN 부팅을 참조하십시오.