jetty 입문 사용

11560 단어 jetty
upnp 는 독립 서버 를 사용 할 수 있 습 니 다.
 
원문의 출처: http://blog.chenlb.com/2009/01/quick-start-jetty-and-embed-in-project.html

오픈 소스 프로젝트 가 발 표 될 때 jsp 용기 (Jetty) 를 가 져 옵 니 다.데모, 개발, 디 버 깅 서버 를 만 드 는 것 도 좋 습 니 다.오늘 은 시험 해 보 자, 주로 그것 을 운행 하기 시작 했다.
첫 번 째 다운로드: http://dist.codehaus.org/jetty/jetty-6.1.14/jetty-6.1.14.zip ㎡ 0 ㎡ 2 는 현재 최신 안정 판 입 니 다.예 를 들 어 E: \ jetty - 6.1.14 로 압축 을 풀 었 습 니 다. 그 중에서 가장 중요 한 디 렉 터 리 는 etc, contexts, webapps 입 니 다.개인 적 으로 tomcat 의 conf, conf \ Catalina \ localhost, webapps 디 렉 터 리 를 비교 할 수 있다 고 생각 합 니 다.contexts 는 열 배치 용 입 니 다.
웹 앱 디 렉 터 리 나 *. war, 예 를 들 어 웹 - demo (또는 웹 - demo. war) 를 웹 앱 디 렉 터 리 에 넣 을 수 있 는 간단 한 웹 항목 을 실행 해 보십시오.
 
첨부 파일 은 demo 입 니 다. 스스로 뽑 았 습 니 다.
E:\jetty-6.1.14>java -jar start.jar2009-01-13 15:34:38.937::INFO: Logging to STDERR via org.mortbay.log.StdErrLog2009-01-13 15:34:39.265::INFO: jetty-6.1.142009-01-13 15:34:39.421::INFO: Deploy E:\jetty-6.1.14\contexts\javadoc.xml -> org.mortbay.jetty.handler.ContextHandler@15cda3f{/javadoc,file:/E:/jetty-6.1.14/javadoc/ }...2009-01-13 15:35:01.828::INFO: Opened E:\jetty-6.1.14\logs\2009_01_13.request.log2009-01-13 15:35:01.953::INFO: Started [email protected]:8080
열기: http://localhost:8080/web-demo 네, 결과 가 나 왔 습 니 다.
웹 - demo 를 웹 apps 디 렉 터 리 에 두 지 않 아 도 됩 니 다. contexts 디 렉 터 리 에 파일 을 만들어 Jetty 에 게 알려 주면 됩 니 다.contexts 디 렉 터 리 에서 test. xml 를 웹 - demo. xml 로 복사 한 후 다음 과 같이 수정 할 수 있 습 니 다.
http://jetty.mortbay.org/configure.dtd ">

      /web-demo e:/workspace/web-demo/WebContent
    false false   /etc/webdefault.xml 

war 는 절대 경로 로 설정 할 수 있 습 니 다.그리고 다시 제 티 를 다시 시작 해 보 세 요.자, 제 티 에 대한 초보적인 인식.
프로젝트 에 어떻게 넣 는 지 다시 보 겠 습 니 다.현재 저 는 예제 항목 e: / work space / web - demo (procject home 이 라 고 함) 가 있 습 니 다. 안의 웹 루트 디 렉 터 리 는 웹 콘 텐 츠 입 니 다.
procject 에서홈 은 contexts, etc, lib 와 같은 Jetty 디 렉 터 리 를 만 듭 니 다.
${jetty home} / etc 디 렉 터 리 에 있 는 jetty. xml, webdefault. xml 파일 을 ${procject home} / jetty / etc 디 렉 터 리 에 복사 합 니 다.
${jetty home} / lib / jsp - 2.1 디 렉 터 리 를 ${procject home} / jetty / lib 디 렉 터 리 에 복사 합 니 다.
마찬가지 로 jetty - 6.1.14. jar, jetty - util - 6.1.14. jar, servlet - api - 2.5 - 6.1.14. jar 를 ${procject home} / jetty / lib 디 렉 터 리 에 복사 합 니 다.
${jetty home} / start. jar 를 ${procject home} / jetty 디 렉 터 리 에 복사 합 니 다.
다음은 ${procject home} / jetty / context 디 렉 터 리 에 파일 을 추가 합 니 다.위 에서 제시 한 웹 - demo. xml 일 수 있 습 니 다.하지만 war 는
/../WebContent
설명 ${procject home} / jetty / etc / jetty. xml 파일 의:

RequestLog 는 방문 기록 이 므 로 주석 을 달 지 않 아 도 됩 니 다. 전 제 는 logs 디 렉 터 리 가 있 습 니 다.
addLifeCycle 은 설명 하지 않 아 도 됩 니 다. 전 제 는 webapps 디 렉 터 리 가 있 습 니 다.
Test Realm 주석 을 달 지 않 는 것 도 etc 디 렉 터 리 에 realm. properties 가 있다 는 전제 입 니 다.
설정 되 었 습 니 다. 이제 E: \ workspace \ 웹 - demo \ jetty 까지 자바 - jar start. jar 를 실행 하면 이 프로젝트 를 시작 할 수 있 습 니 다.
 
코드 시작 jetty
 
public static void main(String[] args) throws Exception {   
    Server server = new Server();   
    BoundedThreadPool threadPool = new BoundedThreadPool();   
    threadPool.setMaxThreads(100);   
    server.setThreadPool(threadPool);   
    Connector connector = new SelectChannelConnector();   
    connector.setPort(8080); //     
    server.setConnectors(new Connector[] { connector });   
    WebAppContext context = new WebAppContext("  web    ", "  context");   
    server.addHandler(context);   
    server.setStopAtShutdown(true);   
    server.setSendServerVersion(true);   
    server.start();   
    server.join();   
}  

 
xml 프로필 시작 jetty
 
먼저 jetty - web. xml 를 만 들 고 웹 app 디 렉 터 리 에 놓 으 세 요.
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure id="Server" class="org.mortbay.jetty.Server">

    <Set name="ThreadPool">
      <New class="org.mortbay.thread.QueuedThreadPool">
        <Set name="minThreads">10</Set>
        <Set name="maxThreads">200</Set>
        <Set name="lowThreads">20</Set>
        <Set name="SpawnOrShrinkAt">2</Set>
      </New>
    </Set>

    <Call name="addConnector">
      <Arg>
          <New class="org.mortbay.jetty.nio.SelectChannelConnector">
            <Set name="host"><SystemProperty name="jetty.host" default="127.0.0.1"/></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">8443</Set>
	    <Set name="lowResourcesConnections">5000</Set>
	    <Set name="lowResourcesMaxIdleTime">5000</Set>
          </New>
      </Arg>
    </Call>

    <Set name="handler">
      <New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
        <Set name="handlers">
         <Array type="org.mortbay.jetty.Handler">
           <Item>
             <New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
           </Item>
	   <Item>
		   <New class="org.mortbay.jetty.webapp.WebAppContext">  
			  <Set name="contextPath">/demo</Set>  
                          <Set name="war">xx</Set>  <!--  web     -->
                 </New>  
          </Item>
         </Array>
        </Set>
      </New>
    </Set>
    
    <Ref id="RequestLog">
      <Set name="requestLog">
        <New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
          <Set name="filename"><SystemProperty name="jetty.logs" 
		 />/yyyy_mm_dd.request.log</Set>
          <Set name="filenameDateFormat">yyyy_MM_dd</Set>
          <Set name="retainDays">90</Set>
          <Set name="append">true</Set>
          <Set name="extended">true</Set>
          <Set name="logCookies">false</Set>
          <Set name="LogTimeZone">GMT</Set>
        </New>
      </Set>
    </Ref>

    <Set name="stopAtShutdown">true</Set>
    <Set name="sendServerVersion">true</Set>
    <Set name="sendDateHeader">true</Set>
    <Set name="gracefulShutdown">1000</Set>

</Configure>

 이상 은 상대 적 으로 완전한 Jetty. xml 입 니 다. 수요 에 따라 간소화 할 수 있 을 것 입 니 다. 중요 한 것 은 가입 입 니 다.
 
<Item>
<New class="org.mortbay.jetty.webapp.WebAppContext">  
	<Set name="contextPath">/demo</Set>  
        <Set name="war">xx</Set>  <!--  web     -->
 </New>  
 </Item>

 웹 애플 리 케 이 션 발표 디 렉 터 리 와 context 지정 을 위 한 새로운 handler이 럴 때 프로그램 에서 Jetty 를 시작 하려 면:
public static void main(String[] args) throws Exception {
	Server server = new Server();
	XmlConfiguration configuration = new XmlConfiguration(
	new FileInputStream(
		"xx/demo/jetty-web.xml")); //      jetty.xml  
	configuration.configure(server);
	server.start();
}

 사실 이 main 함수 도 필요 없습니다. org. mortbay. xml. XmlConfiguration 을 시작 클래스 로 사용 하면 Program arguments 에 사용자 정의 Jetty. xml 를 입력 하면 됩 니 다.이렇게 하면 eclipse 플러그 인 도 버 릴 수 있 습 니 다.
주의:
끼 워 넣 는 방법 으로 NO JSP Support 의 이상 을 만 날 수 있 습 니 다.
jetty - 6.1.14 \ lib \ jsp - 2.1 아래 가방 을 환경 에 가 져 오 면 됩 니 다.

좋은 웹페이지 즐겨찾기