sitelink1  
sitelink2  
sitelink3  

1. 테스트를 위한 HelloWorldServlet.java와 TestXdoclet.java 파일을 만든다.

2. HelloWorldServlet.java (web.xml 자동생성을 테스트하기 위한 소스)

package net.javajigi.chapter3.servlet;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

* web.xml을 생성할 때 쓸 주석문

*

* @web.servlet name="HelloWorldServlet"
*     display-name="HelloWorld Servlet"
*
* @web.servlet-init-param  name="name"
*        value="${hello.servlet.name}"
*
* @web.servlet-mapping url-pattern="/HelloWorld/*"
* @web.servlet-mapping url-pattern="*.HelloWorld"
* @web.servlet-mapping url-pattern="/HelloWorldServlet"
*/

public class HelloWorldServlet extends HttpServlet {

protected void doGet(
 HttpServletRequest request,
 HttpServletResponse response)
 throws ServletException, IOException {
 process(request, response);
}

protected void doPost(
 HttpServletRequest request,
 HttpServletResponse response)
 throws ServletException, IOException {
 process(request, response);
}

protected void process(
 HttpServletRequest request,
 HttpServletResponse response)
 throws ServletException, IOException {
 ServletConfig config = this.getServletConfig();
 String name = config.getInitParameter("name");

 response.setContentType("text/html");
 java.io.PrintWriter out = response.getWriter();
 out.println("<html>");
 out.println("<head>");
 out.println("<title>HelloWorld Servlet</title>");
 out.println("</head>");
 out.println("<body>");
 out.println("<h1>Hi!! " + name + ". Hello World!!</h1>");
 out.println("</body>");
 out.println("</html>");
 out.close();
}
}

3. TestXdoclet.java (struts-config.xml 생성테스트를 위한 소스)

package com.test;

import javax.servlet.http.*;

import org.apache.struts.action.*;
import org.apache.struts.actions.*;

/**
* struts-config.xml이 생성시킬 때 쓰이는 주석문

* @struts.action
*      name="signonForm"
*      path="/login"
*      input="/vm/login/Login.vm"
*      scope="request"
*      validate="false"
*
* @struts.action-forward
*      name="success"
*      path="/preferences.screen"
*
* @struts.action-forward
*      name="login"
*      path="/vm/login/Login.vm"
*
*/

public class Testxdoc extends DispatchAction{

public ActionForward search(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{
 
 return mapping.findForward("success");
}

}

4. Ant는 기본적으로 Eclipse에 포함되어 있으니 xdoclet만 설치하면 된다.

   xdoclet는 아래의 url에서 다운 받으면 된다.

   http://sourceforge.net/project/showfiles.php?group_id=31602

   압축을 푼 후 애플리케이션의 lib폴더에 모든 .jar파일을 import(이클립스의 import기능)하거나 복사한다. 또 Tomcat의 common/lib/servlet-api.jar 파일도 복사해 준다.

5. 프로젝트에서 build.xml 파일을 생성한다. 이 파일이 생성되면 Eclipse에서는 자동으로 Ant Editer를 작동한다.(필자의 경우에는 생성 후 바로 열리는 문서는 Ant Editer가 적용되지 않아 파일을 한번 닫고 다시 열어보니 적용이 되었다.)

6. build.xml을 작성한다.

<?xml version="1.0" encoding="UTF-8"?>
<project name="TestXdoclet" default="all">
<property file="build.properties"/>

<target name="init" description="initialize the properties">
 <mkdir dir="${javadoc.dir}"/>
 <path id="struts.class.path">
  <fileset dir="${lib.dir}" includes="**/*.jar"/>
 </path>
 
 <path id="xdoclet.class.path">
  <fileset dir="${lib.dir}" includes="**/*.jar"/>
 </path>
</target>

<target name="generateDD" depends="init">

 <taskdef name="webdoclet"
  classname="xdoclet.modules.web.WebDocletTask"
  classpathref="xdoclet.class.path"
 />  

  <webdoclet
   destdir="${build.dir}"
   mergedir="${resource.dir}/merge">
   
   <fileset dir="${src.dir}">
    <include name="**/*.java"/>
   </fileset>
   
   <deploymentdescriptor servletspec="2.3" destdir="${build.webinf.dir}">
   </deploymentdescriptor>
 
   <strutsconfigxml
    version="1.1"
    destdir="${build.webinf.dir}">
   </strutsconfigxml>
  </webdoclet>    
</target>
     
<target name="all">
 <!--<antcall target="clean"/>-->
 <antcall target="generateDD" />
</target>
</project>

7. build.properties를 작성한다.

src.dir=${basedir}/src
web.dir=${basedir}/pages

javadoc.dir=${basedir}/docs

build.dir=${basedir}/WebContent


build.webinf.dir=${build.dir}/WEB-INF/
build.lib.dir=${build.webinf.dir}/lib
build.class.dir=${basedir}/build
build.src.dir=${build.webinf.dir}/src
build.sql.dir=${build.dir}/sql

lib.dir=${basedir}/WebContent/WEB-INF/lib
resource.dir=${build.webinf.dir}

dist.dir=${basedir}/dist

deploy.dir=cbcyber
war.name=cbcyber.war

sql.name=sql-export.sql

backup.dir=d:/work/backup/

.properties에 나열된 경로는 자신의 애플리케이션 구조에 맞게 알맞게 수정한다.

8. 프로젝트 익스플로러에서 컨텍스트 메뉴(마우스 오른버튼)를 호출한 후 RUN as 에서 Ant build로 실행한다.

9. 위와 같은 과정이 정상적으로 실행된다면 web.xml파일과 struts-config.xml파일이 자동으로 생성 되어 있을 것이다.