일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 가우스
- 선택적조인
- Eclipse
- jQuery
- GPS
- tomcat
- dock
- iBATIS
- 전자정부프레임워크
- JDOM
- oracle
- jsr 296
- WebLogic
- ibsheet
- node.js
- MySQL
- Spring
- swingx
- MFC
- Ajax
- sencha touch
- Google Map
- phonegap
- PLSQL
- PHP
- appspresso
- Struts
- JSON
- Android
- rowspan
- Today
- Total
Where The Streets Have No Name
Weblogic상에서의 Servlet 실습, war 파일의 배포 본문
(template_web.xml, template_weblogic.xml)
>>>>> template_web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
>>>>> template_weblogic.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>KSC5601</java-charset-name>
</input-charset>
</charset-params>
<context-root>/</context-root>
</weblogic-web-app>
▩ Weblogic상에서의 Servlet 실습
//jsp(.jsp) >> servlet (.java) jsp page를 jsp컨테이너에서 실시간으로 servlet으로 바꾸어준다.
톰켓,웹로직,레진등.. .java=>.class 바꾸어서 결과를 웹브라우저에 보내어줌
//디자인작업이 많이 필요한site 는 Jsp유리 디자인변경없이 속도처리중요시하면 servlet성능우수
반면 servlet은 한문장을 처리하는데 여러줄의 코딩이 필요함으로 처리로직 페이지에 적합함
logic서버를 정지 시킵니다.
//Jsp Beans(처리로직) .java,전역변수(레코드),getter,setter로 변수를 액세스
1. Servlet 파일의 작업
- eclipse에서는 작업시 아래의 경로를 지정하며 weblogic.jar을 추가해야 서블릿이 인식됩니다.
경로:C:eaweblogic81serverlibweblogic.jar
. Create Project At External Location: C:eauser_projectsdomainsmydomainapplicationswebtestWEB-INFclasses
. Libraries: weblogic.jar 추가
. Superclass: HttpServlet
>>>>> HelloServlet.java
package servlettest;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html;charset=EUC-KR");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>안녕하세요. Hello</title></head>");
out.println("<body>안녕하세요. <br> Hello World</body>");
out.println("</html>");
}
}
>>>>> DOS 컴파일, Eclipse는 자동 컴파일 됨
C:eauser_projectsdomainsmydomainapplications estWEB-INFclasses>javac -d . *.java
2. jsptest/WEB-INF/web.xml파일을 이용해 서블릿 등록
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>servlettest.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3. 테스트
- http://127.0.0.1:7001/jsptest/hello
결과>>Error 500--Internal Server Error //servletTest/classes/에 eclics C:ejbeclipseworkspaceservletTestclasses 에 복사하여
C:eauser_projectsdomainsitwillapplicationsjsptestWEB-INFclasses 에 붙여넣기 해주어야 함>> eclipse 컴파일한 걸 weblogic에 복사
▩ war 파일의 배포
1.jsp페이지 작성
>>>>> count.jsp
<%@ page contentType="text/html;charset=EUC-KR"%>
<% // 서블릿으로 부터 전달된 Integer객체를 읽어오는 부분.
Integer icount = (Integer)request.getAttribute("count");
String count = icount.toString();
%>
<html>
<head>
<title> 카운트 출력 </title>
</head>
<body>
<h3>
지금까지 방문한 사용자는 <%=count%> 입니다.
</h3>
</body>
</html>
2. servlet 페이지 작성
>>>>> CounterServlet.java
package servlettest;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CounterServlet extends HttpServlet {
private int count = 0;
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
} // doPost
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
// count.jsp에게 증가된 카운트 값을 RequestDispatcher를 이용하여 전달 //Request객체 전달자(RequestDispatcher)
// 하고 있다.
count++;
request.setAttribute("count", new Integer(count));
RequestDispatcher rd = getServletContext().getRequestDispatcher("/count.jsp");
rd.forward(request, response);
}// doGet
}
3. webtest/WEB-INF/web.xml, webtest/WEB-INF/weblogic.xml 파일의 수정
>>>>> web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>servlettest.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>counter</servlet-name>
<servlet-class>servlettest.CounterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>counter</servlet-name>
<url-pattern>/counter</url-pattern>
</servlet-mapping>
</web-app>
>>>>> WEB-INF/weblogic.xml
<?xml version="1.0" ?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>KSC5601</java-charset-name>
</input-charset>
</charset-params>
<context-root>/jsptest</context-root>
</weblogic-web-app>
보기: http://127.0.0.1:7001/jsptest/counter
/* 조금더 편하게 자동화 시키는방법*/
▩ war 파일을 생성하여 배포
- C:eaatch 폴더를 만들고 PATH 환경변수에 등록합니다.
- HTML, JSP, Beans, Servlet쪽 개발 종료후 배포시에 생성합니다.
- 압축 원리는 jar하고 같으나 확장자만 war입니다.
- 저장위치는 C드라이브의 루트나 PATH에 잡힌 경로에 저장하면 자동으로 인식됩니다.
- C:/bea/war 폴더를 생성합니다. 나중에 이곳은 확장자 "war"파일이 저장될 것입니다.
1.1 war.bat 를 작업하여 C:/bea/batch폴더로 저장합니다.
@ECHO OFF
c:
cd
cd beauser_projectsdomainsitwillapplications
cd jsptest
REM .war파일을 생성합니다.
jar cvf C:eawarwartest.war *.*
ECHO wartest.war이 생성되었습니다.
cd
cd beawar
dir
- DOS명령 창을 열어 war.bat를 실행합니다.
- applications/jsptest폴더를 삭제합니다.
1.2 builder.bat
REM weblogic서버를 실행합니다.
c:
cd C:eauser_projectsdomainsitwill
start startWeblogic.cmd
REM WeblogicBuilder를 실행합니다.
C:eajdk141_03injavaw.exe -client -cp "C:eaweblogic81serverlibweblogic.jar;C:eaweblogic81commonevalpointbaselibpbclient44.jar" weblogic.marathon.Main
2. Weblogic Builder를 통한 배치
- Weblogic을 먼저 실행합니다.
- [Other Development Tool] --[Weblogic Builder]를 통한 배치
- [Tools] -- [Connect to Server..] //colsole에서처럼 로그인한다.
- [Files] -- [Open] wartest.war //압축한 war파일을 불러들인다.
- [Tools] -- [Deploy Module] //실제 배포작업
- war 파일이 있는곳이 소스 원본이 있는 곳으로 지우거나 이동할 수 없다. 따라서 폴더를 미리 결정한후 복사해서 작업합니다.
- war 파일이 압축이 풀려 실행되는 곳은 C:eauser_projectsdomainsmydomain2myserver.wlnotdeleteextract 폴더안이 됩니다.
보기: http://127.0.0.1:7001/jsptest/counter
- WebLogic Server Administration Console에서 확인합니다.
3. webdeploy.bat 를 작업하여 C:/bea/batch폴더로 저장합니다.
@ECHO OFF
c:
cd
cd beawar
dir
REM 빈을 EJB서버로 이동시킵니다.
copy /Y wartest.war C:eauser_projectsdomainsitwillapplications
REM weblogic서버를 실행합니다.
c:
cd C:eauser_projectsdomainsitwill
start startWeblogic.cmd
pause
REM counter Servlet 실행
c:
cd
cd Program FilesInternet Explorer
IEXPLORE.EXE http://127.0.0.1:7001/jsptest/counter
4. wardeploy.bat 를 작업하여 C:/bea/batch폴더로 저장합니다.
- start wardeploy.bat counter
@ECHO OFF
c:
cd
cd beawar
dir
REM 빈을 EJB서버로 이동시킵니다.
copy /Y %1.war C:eauser_projectsdomainsitwillapplications
REM weblogic서버를 실행합니다.
c:
cd C:eauser_projectsdomainsitwill
start startWeblogic.cmd
pause
REM counter Servlet 실행
c:
cd
cd Program FilesInternet Explorer
IEXPLORE.EXE http://127.0.0.1:7001/jsptest/%1