2016-06-07 6 views
1

KML 데이터를 출력하고 Google 어스에서 네트워크 장소로 구성 할 수있는 KML 서버가 있습니다. KML 서버는 내장 된 Jetty를 사용합니다.부두가 임베디드 된 교차 원산지 요청 (COR)

또한 Cecium에서 KML 서버를 실행하고 싶지만 COR을 허용하도록 Jetty를 구성해야합니다. 세슘은 webbowser에서 실행됩니다.

w.r.t가 많은 예가 있습니다. 제트 티/COR,하지만 그들 중 많은 실행되지 않습니다, 구식이며, 그냥 명확하지 않습니다.

KML 서버의 주요 프로그램은 다음과 같습니다

/* 
    ** Create HHTP server 
    */ 
    final Server server = new Server(config.getKmlPortNumber()); 

    // Set a handler for each context 
    ContextHandlerCollection contexts = new ContextHandlerCollection(); 
    Handler[] contextHandler = new Handler[ForceIdentifier.TOTAL_IDENTIFIERS + 1]; 

    final ContextHandler context = new ContextHandler("/"); 
    context.setContextPath("/"); 
    context.setHandler(new DefaultHandler(env)); 
    contextHandler[0] = context; 

    // Set a handler for each Force Identifier. 
    for (byte i = 0; i < ForceIdentifier.TOTAL_IDENTIFIERS; i++) { 
     ContextHandler contexti = new ContextHandler("/" + i); 

     contexti.setHandler(new DefaultHandler(env, new ForceIdentifier(i))); 
     contextHandler[i + 1] = contexti; 
    } 

    contexts.setHandlers(contextHandler); 
    server.setHandler(contexts); 

    // Start the server and set some options 
    server.start(); 
    //server.dumpStdErr(); 
    server.setStopTimeout(1000); 
    server.setStopAtShutdown(true); 

    /* 
    ** Start the federate 
    */ 
    try { 
     federate.start(); 
    } catch (RTIexception ex) { 
     Main.logger.log(Level.SEVERE, null, ex); 
    } 

    /* 
    ** Stop the federate 
    */ 
    federate.stop(); 

KML 서버는 serveral 컨텍스트 핸들러를 사용합니다.

여기에서 COR을 사용하려면 무엇을해야합니까?

(부두 버전은 다음과 같습니다 부두 - 모든 9.2.10.v20150310)

+0

Jetty의 [DefaultHandler] (http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/server/handler/DefaultHandler.html)에는 인수가있는 생성자가 없습니다. 어떤 버전의 부두를 사용하고 있습니까? (물론 Jetty 9.2.10.v20150310이 아님). 또한 [jetty-all.jar를 사용하지 마십시오. 모든 부두가 포함되어 있지 않으며 빠른 시작 및 문서화 용도로만 사용할 수 없습니다] (https://dev.eclipse.org/mhonarc/lists/jetty) -users/msg06030.html). –

답변

1

org.eclipse.jetty.servlets.CrossOriginFilter 부두는 COR 관련 기능을 가능하게하는이 기술, '아무튼 귀하의 예제 코드를 의미하는 ServletContext 아래에서만 사용할 수 있습니다 Servlets을 사용하거나 ServletContext을 사용하면이 필터를 사용할 수 없습니다.

그러나 자신의 Handler은 서블릿이없는 환경에서 COR 관련 작업을 수행 할 수 있습니다. 합니다 (cougar project보고 고려, 영감에 대한 CrossOriginHandler 구현)

또는 당신은 ContextHandler 대신 ServletContextHandler 사용으로 전환 한 다음 프로젝트에 부두 CrossOriginFilter 사용의 혜택을 얻을 수 있습니다.