Chapter 1 - Netbeans 설정 및 Jetty 소스 코드 실행

Netbeans 에 자바 프로젝트 를 새로 만 든 다음 Jetty 6 의 소스 코드 를 추가 하고 필요 한 의존 패 키 지 를 추가 하 며 ant 스 크 립 트 를 추가 하여 디 버 깅 을 시작 합 니 다.
1. 자바 프로젝트 를 새로 만 들 고 Jetty 6 source package 를 추가 합 니 다.
   너 는 이 url 에서 원본 가방 을 받 을 수 있다.
  
http://dist.codehaus.org/jetty/jetty-6.1.26/jetty-6.1.26-src.zip
2. 컴 파일 jetty 를 추가 할 때 필요 한 의존 패키지:
   servlet-api-2.5-20081211.jar
   slf4j-api-1.3.1.jar
3. 프로필 추가:
   etc/jetty.xml
   etc/webdefault.xml
   realm.properties
4. Netbeans 스 크 립 트 설정:
  

<project xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.ant.freeform</type>
    <configuration>
        <!-- Either of the below two is applicable -->
        <!--<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">-->
        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
            <name>jetty</name>
            <properties>
                <property name="ant.script">nbproject/targets.xml</property>
                <property name="jetty.script">build/jetty-build.xml</property>
            </properties>
            <folders>
                <source-folder>
                    <label>jetty</label>
                    <location>.</location>
                    <encoding>windows-1252</encoding>
                </source-folder>
                <source-folder>
                    <label>Java Sources</label>
                    <type>java</type>
                    <location>src</location>
                    <encoding>windows-1252</encoding>
                </source-folder>
            </folders>
            <ide-actions>
                <action name="build">
                    <script>${jetty.script}</script>
                    <target>nbbuild</target>
                </action>
                <action name="clean">
                    <script>${jetty.script}</script>
                    <target>clean</target>
                </action>
                <action name="run">
                    <script>${jetty.script}</script>
                    <target>nbrun</target>
                </action>
                <action name="debug">
                    <script>${jetty.script}</script>
                    <target>nbdebug</target>
                </action>
            </ide-actions>
            <view>
                <items>
                    <source-folder style="tree">
                        <label>Web folder</label>
                        <location>webapps</location>
                    </source-folder>
                    <source-folder style="tree">
                        <label>Jetty configs</label>
                        <location>webapps/WEB-INF/etc</location>
                    </source-folder>
                    <source-folder style="packages">
                        <label>Java src</label>
                        <location>src</location>
                    </source-folder>
                </items>
                <context-menu>
                    <ide-action name="build"/>
                    <ide-action name="clean"/>
                    <ide-action name="javadoc"/>
                    <ide-action name="run"/>
                    <ide-action name="test"/>
                    <ide-action name="debug"/>
                </context-menu>
            </view>
        </general-data>
        <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/3">
            <compilation-unit>
                <package-root>src</package-root>
                <classpath mode="compile"></classpath>
                <built-to>classes</built-to>
                <javadoc-built-to>doc</javadoc-built-to>
                <source-level>1.6</source-level>
            </compilation-unit>
        </java-data>
    </configuration>
</project>

5. 제 티 스 크 립 트 추가
   컴 파일 할 때마다 변경 상황 에 따라 새로운 classes 를 생 성 합 니 다.이 classes 들 은 jar (update) 에서 jetty - 6.1.26. jar 까지 입 니 다.IDE 의 debugger 를 시작 하고 Jetty 6 를 시작 하 며 Jetty 6 를 debugger 에 추가 하면 코드 를 디 버 깅 할 수 있 습 니 다.
   a. 빌 드 스 크 립 트
   javac.source=1.6
   javac.target=1.6
   JAVAC_EXE=
   srcDir=source directory
   outDir=output directory
  

    <target name="nbbuild" depends="configProperties">
        <javac source="${javac.source}" target="${javac.target}"
            executable="${JAVAC_EXE}" fork="yes" destdir="${outDir}"
            classpath="${outDir}" classpathref="libraries"
            optimize="off" verbose="off" debug="on"
            memoryInitialSize="512M" memoryMaximumSize="768M">
            <src path="${srcDir}"/>
            <include name="**/*.java"/>
        </javac>
        
        <jar update="true" compress="true" jarfile="${jettyOutDir}\\lib\\jetty-6.1.26.jar">
            <manifest>
                <attribute name="Build-Date" value="${build.time}"/>
                <attribute name="Build-User" value="${user.name}"/>
                <attribute name="Build-File" value="${ant.file}"/>
                <attribute name="Build-Location" value="${prefix}"/>
                <attribute name="Build-Platform" value="${os.name} ${os.version}(${os.arch})"/>
                <attribute name="Specification-Title" value="${java.specification.name}"/>
                <attribute name="Specification-Vendor" value="${java.vendor}"/>
                <attribute name="Specification-Version" value="${java.version}"/>
                <attribute name="CopyrightNotice" value="Copyright (c) 2012-${build.year} ${corp.name}"/>
                <attribute name="Implementation-Title" value="${ant.project.name} - HTTPS Handler"/>
                <attribute name="Implementation-Vendor" value="${corp.name}"/>
                <attribute name="Implementation-Version" value="${build.version}"/>
            </manifest>
            <fileset dir="${outDir}">
                <include name="org/mortbay/**/*.class"/>
            </fileset>
        </jar>
    </target>
   

   b. 디버그 스 크 립 트
  

    <target name="nbdebug" depends="nbbuild">
        <!-- Copy the necessary configuration files and libraries to the jetty output direction -->
        <copy todir="${jettyOutDir}" file="jetty/start.jar" overwrite="no"/>
        <copy todir="${jettyOutDir}/etc" overwrite="no">
            <fileset dir="jetty/etc">
                <include name="jetty.xml"/>
                <include name="webdefault.xml"/>
                <include name="configure.dtd"/>
                <include name="realm.properties"/>
            </fileset>
        </copy>

        <copy todir="${jettyOutDir}/lib" overwrite="no">
            <fileset dir="lib">
                <include name="**/*.jar"/>
            </fileset>
        </copy>
        <copy todir="${jettyOutDir}/ext" overwrite="no">
            <fileset dir="jetty/ext">
                <include name="*.jar"/>
            </fileset>
        </copy>
        <mkdir dir="${jettyOutDir}/lib"/>
        <mkdir dir="${jettyOutDir}/bin/logs"/>
        <copy todir="${jettyOutDir}/webapps" overwrite="no">
            <fileset dir="webapps">
                <include name="**/*"/>
            </fileset>
        </copy>

        <!-- Start the debugger -->
        <nbjpdastart name="Jetty 6" addressproperty="jpda.address2" transport="dt_socket">
            <sourcepath>
                <pathelement path="${srcDir}"/>
            </sourcepath>
        </nbjpdastart>
        
        <!-- Start the application -->
        <java jar="${jettyOutDir}\\start.jar" fork="yes" dir="${jettyOutDir}\\bin" failonerror="true"
            classpathref="libraries" jvm="${java.executable}">
            <jvmarg value="-Xdebug"/>
            <jvmarg value="-mx256M"/>
            <jvmarg value="-Xnoagent"/>
            <jvmarg value="-Djetty.home=."/>
            <jvmarg value="-Djava.compiler=none"/>
            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address2}"/>
            <jvmarg value="-DSTOP.PORT=-1"/>
            <jvmarg value="-Xverify:none"/>
            <jvmarg value="-Xbootclasspath/a:${jettyOutDir}\\ext\\mail.jar"/>
            <jvmarg value="-Dprimary.address=10.158.171.103"/>
            <jvmarg value="-Dprimary.port=8080"/>
        </java>
    </target>
   

6. 디 버 깅 소스 코드
debug 를 누 르 면 output panel 에 출력 이 있 고 debug toolbar 도 나타 납 니 다.Jetty 코드 에 정지점 을 추가 하면 디 버 깅 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기