2010. 10. 13. 11:08 DEV ENVIRONMENT
[ECLIPSE] JSP, JAVA 이외의 파일 에러, 경고 마커 해제
이클립스 프로젝트 파일들중에 특히 javascript파일들에서 에러가 나는 경우가 많이 있습니다.
에러도 아닌데 에러라고...
문제는 이런 에러가 쌓이면 다른 java에러들과 겹쳐서
마커탭에서 도통 살펴볼수가 없습니다.

Window > Preferences > Validation > Disable All





2010. 10. 11. 17:54 COMPUTER/JAVA, JSP
[JAVA/JSP] java.lang.NoClassDefFoundError: org/apache/xpath/XPathAPI
jdk1.5이상 버전에서 import org.apache.xpath.XPathAPI; 가 포함되면 에러가 납니다.

1.5부터는 XPathAPI의 경로가 com.sun.org.apache.xpath.internal 로 변경됬습니다.

1. 임포트 줄을 변경하거나
2. 예전 xpath를 넣어주는것으로 문제를 해결 할 수 있습니다.

xalan-2.4.1에 XPathAPI가 포함되어있습니다.
WEB-INF/lib폴더에 복사하면 됩니다.



2010. 10. 11. 16:54 DEV ENVIRONMENT
[JAVA/ECLIPSE] 이클립스 에러 Multiple markers at this line, Enumeration cannot be resolved to a variable.
옛날소스중에 변수명 enum을 사용한 소스가 있으면 나는 에러입니다.
Enumeration 을 가장 많이 사용하는 변수명이 enum일수밖에 없죠. ㅎㅎ

에러가 나는 이유는 JDK 1.5부터 'enum'이 예약어가 됬기 때문입니다.

에러날때 'Multiple markers at this line' 이라고 '이줄에 여러개의 마커가 있습니다.'
실제 에러는 두번째줄
'Enumeration cannot be resolved to a variable.'
'이넘을 해당 변수로 정의할 수 없습니다.'

해결하려면 enum 변수명을 교체하면 됩니다.

2010. 10. 5. 12:45 COMPUTER/JAVA, JSP
[JAVA/JSP] 날짜용 유틸 함수
자바에서 날짜처리할때 사용하는 함수들 입니다.
파일명.java로 저장
클래스명은 파일명과 맞춰주세요.

package common.util;

import java.util.*;
import java.text.*;

public class 클래스명
{
    private static Date date;
    private static Calendar cal;
    private static String result;
    private static String pattern = "yyyy년 M월 d일  a h시 m분";
    private static SimpleDateFormat formatter;
    private static Locale nation = new Locale("ko","KOREA");

    /**
     * 내용  : 오늘 날짜를 Default Format으로 return
     * 입력 값 :
     * 출력 값 : String result
     */
    public static String getToday()
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
        result = formatter.format(date);
        return result;
    }
   
    /**
     * 내용  : 오늘 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern
     * 출력 값 : String result
     */
    public static String getToday(String datePattern)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
        result = formatter.format(date);
        return result;
    }

    /**
     * 내용  : 원하는 시기의 일단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : int change
     * 출력 값 : String result
     */
    public static String getDayDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 일단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getDayDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 주단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : int change
     * 출력 값 : String result
     */
    public static String getWeekDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        change = change * 7;
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 주단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getWeekDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        change = change * 7;
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 월단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getMonthDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.MONTH, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 월단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getMonthDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.MONTH, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 년단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getYearDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.YEAR, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 년단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getYearDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.YEAR, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

 /**
     * 내용  : form부터 to까지 일수를 구하여 결과값 return
     * 입력 값 : String from, String to, String pattern
     * 출력 값 : int result
     */
 public static int daysBetween(String from, String to, String pattern)
 {
  SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.KOREA);
  Date date1 = null;
  Date date2 = null;

  try
  {
   date1 = format.parse(from);
   date2 = format.parse(to);
  }
  catch(ParseException e)
  {
   return -999;
  }

  if(!format.format(date1).equals(from))
  {
   return -999;
  }
  
  if(!format.format(date2).equals(to))
  {
   return -999;
  }

  long duration = date2.getTime() - date1.getTime();

  return (int)(duration/(1000 * 60 * 60 * 24));
 }
}



2010. 3. 24. 12:15 COMPUTER/JAVA, JSP
[JAVA/JSP] 정규표현식 스크립트 제거 Regex Replace Function
<script~, onclick=~, onmouseover=~, onmouseout=~ 제거함수

정규표현식 클래스 임포트
import java.util.regex.*;

함수 
public String getRemoveScript(String strContent){
  Pattern patternTag=Pattern.compile("\\<(\\/?)(\\w+)*([^<>]*)>");
  Pattern patternScript=Pattern.compile("(?i)\\<script(.*?)</script>");
  Pattern patternMouseOver=Pattern.compile("(?i) onmouseover=[\"']?([^>\"']+)[\"']*");
  Pattern patternMouseOut=Pattern.compile("(?i) onmouseout=[\"']?([^>\"']+)[\"']*");
  Pattern patternMouseClick=Pattern.compile("(?i) onclick=[\"']?([^>\"']+)[\"']*");
  Matcher matcherContent=patternScript.matcher(strContent);
  strContent=matcherContent.replaceAll("");
  Matcher matcherMouseOver=patternMouseOver.matcher(strContent);
  strContent=matcherMouseOver.replaceAll("");
  Matcher matcherMouseOut=patternMouseOut.matcher(strContent);
  strContent=matcherMouseOut.replaceAll("");
  Matcher matcherMouseClick=patternMouseClick.matcher(strContent);
  strContent=matcherMouseClick.replaceAll("");
  return strContent;
 }
2010. 3. 12. 04:46 COMPUTER/JAVA, JSP
[JSP/JAVA] 최상위, 파일 경로 알아내기
JSP/Servlet 사이트 경로 1 (드라이브:\사이트경로\)
String strRoot=request.getSession().getServletContext().getRealPath("/");
out.println(strRoot);

JSP/Servlet 사이트 경로 2 (드라이브:\사이트경로\)
String strRoot=getServletContext().getRealPath("/");
out.println(strRoot);

JSP/Servlet 특정 페이지 경로
String strRealPath=getServletContext().getRealPath("경로/파일명");
strRealPath=strRealPath.substring(0,strRealPath.lastIndexOf(System.getProperty("file.separator")));
out.println(strRealPath);

JSP/Servlet 현재 페이지 경로
String strRealPath=getServletContext().getRealPath(request.getRequestURI());
strRealPath=strRealPath.substring(0,strRealPath.lastIndexOf(System.getProperty("file.separator")));
out.println(strRealPath);

JAVA - 현재 클래스 경로
this.getClass().getResource("").getPath();


JAVA - 클래스 디렉토리 경로
this.getClass().getResource("/").getPath();
2010. 2. 11. 17:12 COMPUTER/JAVA, JSP
[JAVA/JSP] JSP Request 객체에서 모든변수 뽑기, 출력, Request, Enumeration

Request는 페이지에서 넘어오면 생성되는 JAVA객체입니다.
이 문서는 enumeration을 이용해 Request객체 안에 들어있는 모든 변수를 출력하는 예제입니다.

JSP용이므로,
JAVA에서는 out.println대신에 system.out.println을 사용하시면 됩니다.

<%
String query="";
Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){  
	String key=(String)enum.nextElement();
	String value=request.getParameter(key);
	query+="&"+key+"="+value;
}
query="?"+query.substring(1);
out.println(query);
%>
2010. 2. 9. 17:20 ANDROID IOS
안드로이드 헬로월드 Android HelloWorld

나으 첫 작품;;



재료 - 이클립스, 안드로이드 SDK, 자바 SDK
http://www.eclipse.org/downloads/ Eclipse IDE for Java Developers 최신버전 Eclipse Galileo SR1
http://java.sun.com/javase/downloads/index.jsp JDK 최신버전 JDK 6 Updae 18
http://developer.android.com/sdk/ Android SDK R04

설명은 안드로이드 SDK다운로드 하단에 자세히 설명되어있다 (ㅅㅂ영문)

2009. 7. 17. 14:17 COMPUTER
웹로직 아파치 연동, weblogic 11g, apache 2.2 install log

웹로직 설치, 아파치 설치, 도메인 생성, 어플리케이션 구조 설정, 아파치 연동, 테스트

1. weblogic 11g


Oracle WebLogic > User Projects > 생성된도메인 (전 localhost로 했습니다) > Start Admin Server for Weblogic Server Domain

2. apache version 2.2 Win32 Binary including OpenSSL 0.9.8i (MSI Installer)

3. 모듈 파일 복사
C:\Oracle\Middleware\wlserver_10.3\server\plugin\win\32\mod_wl_22.so >
C:\Program Files\Apache Software Foundation\Apache2.2\modules\mod_wl_22.so

4. apache 설정
C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 편집

4-1.

LoadModule weblogic_module modules/mod_wl_22.so

추가 (약 127줄, LoadModule들 아래쪽에)

4-2.

<Location /weblogic>
SetHandler weblogic-handler
PathTrim /weblogic
</Location>


4-3.

<IfModule mod_weblogic.c>
WebLogicHost localhost
WebLogicPort 7001
#WebLogicCluster 127.0.0.1:7001,127.0.0.2:7001
ConnectTimeoutSecs 20
ConnectRetrySecs 5
MatchExpression *.jsp
MatchExpression *.do
MatchExpression *Servlet
</IfModule>



5. 어플리케이션 설정

루트디렉토리/WEB-INF/classes 디렉토리 생성
루트디렉토리/WEB-INF/lib 디렉토리 생성
루트디렉토리/WEB-INF/src 디렉토리 생성

루트디렉토리/WEB-INF/weblogic.xml 생성

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE weblogic-web-app
    PUBLIC "-//BEA Systems, Inc.//DTD Web Application 7.0//EN"
    "
http://www.bea.com/servers/wls700/dtd/weblogic700-web-jar.dtd" >
<weblogic-web-app>
<context-root>/</context-root>
</weblogic-web-app>

루트디렉토리/WEB-INF/web.xml 생성

<?xml version="1.0" encoding="UTF-8" ?>
 <!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>

루트디렉토리/index.jsp 생성 (테스트파일)

<%
out.println("안두봉");
%>


5. 배포 (Deployments)
5-1. http://localhost:7001/console 에 접속 > 로그인 (변경안했다면 아이디는 weblogic)
5-2. Deployments > Install
5-3. 루트디렉토리 선택 > Next > Next ... > Finish

6. weblogic 시작, apache 서비스 시작

7. http://localhost/index.jsp 접속


2009. 7. 17. 11:57 COMPUTER
오라클, 웹로직 11g 다운로드 링크
사이트를 좀 구리게 만들어놔서 다운로드찾는데 시간좀 걸리네요
로그인 해야 받을 수 있습니다.

oracle 11g download link

최근에 올라온 글

최근에 달린 댓글