'JSP, JAVA'에 해당되는 글 80건

  1. 2011/03/22 visualp jstl, map 데이터 처리
  2. 2011/03/22 visualp EL , 연산자 정리
  3. 2011/03/22 visualp EL , from 값 처리 하기
  4. 2011/03/21 visualp jstl , foreach, 구구단
  5. 2011/03/11 visualp jsp, 한글 자르기
  6. 2010/09/16 visualp <struts2> bean 사용하기
  7. 2010/09/06 visualp 싱글톤 패턴
  8. 2010/09/01 visualp jsp한글처리 파라메터로 전달될 경우
  9. 2010/06/14 visualp Java 어노테이션(Annotation)에 관한 간략한 소개
  10. 2010/03/22 visualp java_home 설정 방법
Using like statement in mybatis mysql

mysql에서
name like CONCAT('%',#{username},'%')
2014/11/17 17:08 2014/11/17 17:08
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/655

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/655

eclipse 설정시 jvm 경로 설정

openFile
-vm
C:\Program Files\Java\jdk1.7.0_01\jre\bin\server\jvm.dll

eclipse.ini 파일에 설정 한다.
2014/11/12 15:53 2014/11/12 15:53
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/654

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/654

c:if 공백 체크, jstl

JSP, JAVA RSS Icon ATOM Icon 2013/11/21 15:47 visualp
jstl c:if 공백처리

==> 공백이면
<c:if test="${!empty view.fscastfrontimage}"></c:if>

==>공백이 아니면
<c:if test="${empty view.fscastfrontimage}"></c:if>
2013/11/21 15:47 2013/11/21 15:47
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/621

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/621

ModelAttribute Annotation

JSP, JAVA RSS Icon ATOM Icon 2013/10/30 17:11 visualp
[원문]http://blog.naver.com/genesis1343?Redirect=Log&logNo=90151827084

public Class testClass {

    String a;

    int b;

}

모델을 만들었으면 아래와 같이 사용합니다.

@RequestMapping("/test/abc")

@ResponseBody

public Object test(@ModelAttribute testClass test) {

   return "";

}

testClass에 멤버로 String a, int b가 있기 때문에,

파라미터로 a, b에 값을 담아서 보내면, test라는 클래스변수에 자동으로 값이 세팅되는 편리한 기능입니다.

게시판 같은 경우 Model단위로 파라미터를 넘기고 받는 경우가 많기 때문에, 유용할 것입니다.

2013/10/30 17:11 2013/10/30 17:11
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/618

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/618

[원문] : http://blog.naver.com/PostView.nhn?blogId=zino1187&logNo=110026018352



Java 메일 서버(james) 설치 및 환경 구축 Apache Project

2008/01/01 23:16

복사 http://blog.naver.com/zino1187/110026018352

전용뷰어 보기

----------------------------------------------------

1단계 : 메일 서버 다운로드

----------------------------------------------------

자바의 메일서버는 아파치에서 제공하는 james(Java Apache Mail Enterprise Server) 서버를 이용할 수 있다

서버 다운로드 ==> http://james.apache.org


----------------------------------------------------

2단계 : 메일 서버 설치

----------------------------------------------------

설치방법은 간단하다,

다운로드 받은 파일의 압축을 풀면되는데, 주의 할점은 바탕화면에 압축을 풀면 가동되지 않는다.

필자의 경우 C:\james-2.3.1 에 위치 시켰다.


----------------------------------------------------

3단계 : 메일 서버 환경 설정

----------------------------------------------------

james 서버의 환경설정은 config.xml 파일로 제어한다.

파일의 경로는 /app/james/SAR-INF 에 있다.

config.xml 을 연후 다음과 같이 수정해준다.

1.사용자의 암호 지정 (설정이 끝나면 이 암호로 서버에 접속할 것이다.)

  <account login="root" password="내 암호"/>


2.메일서버 지정하기

  servername 태그안에 자신의 아이피 혹은 호스트명을 적는다.

  <servername>127.0.0.1</servername>


3.DNS서버 지정하기

  ipconfig로 자신의 DNS서버를 찾아서 다음과 같이 기재한다.

   <dnsserver>
      <servers>
          <server>DNS서버 주소</server>
      </servers>
      <autodiscover>true</autodiscover>
      <authoritative>false</authoritative>

      <maxcachesize>50000</maxcachesize>
   </dnsserver>

------------------------------------------------------------

4단계: james 서버 실행 및 접속하기

------------------------------------------------------------

/bin/ 디렉토리의 run.bat 파일을 실행시킨다.

이로써 모든 설정을 다 마쳤다.



------------------------------------------------------------

james 서버 접속 및 관리

------------------------------------------------------------

1단계 : 커맨드창에서 (cmd) 다음과 같이 명령어를 입력하여 텔넷으로 서버에 접속해 보자

C:/> telnet   localhost  4555

 

2단계 :  root계정으로 로그인 한다.

아이디 - root,

패스워드-  config.xml 에서 지정한 비밀번호

3단계 : help 라고 입력하여 명령어 정보를 확인한다.

2013/08/13 21:50 2013/08/13 21:50
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/594

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/594


[원문] : http://pridesky.tistory.com/6


파일 업로드 기능을 사용하기 위해선 2가지의 jar 파일 필요


* commons io
* commons fileupload
1. MultipartResolver 설정

* 파일 업로드 빈등록 (commonsContext 같은 공용 Context.xml 설정파일이 적당)


<property> = maxUploadSize : 최대 업로드 가능한 바이트 크기
maxInMemorySize : 임시파일 생성전 메모리에 보관할수있는 최대바이트 크기
defaultEncoding : 요청을 파싱할 때 사용할 캐릭터 인코딩(기본값 : ISO-8859-1)
2. 웹 설정 부분

* 업로드 기능이 들어가는 폼은 enctype="multipart/form-data" 속성을 넣어줘야 함.



3. 업로드 파일 접근

* 어노테이션을 이용한 업로드 파일 접근
- MultipartFile 내장 객체가 업로드하려고하는 파일을 담고있음


* 이외 HttpServletRequest 를 이용한 방식과
Command 객체를 이용한 방식이 있다.
2013/03/04 17:55 2013/03/04 17:55
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/565

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/565

eclipse에서 wsdl client를 구현하기 위해서는 간단하다.
웹서비스를 추가 하면서 wsdl주소를 넣어 준다 .

그러면 알아서 wsdl과 관련된 정보들을 자동으로 생성 해준다.

생성된 자바 객체 중 proxy로 끝난 객체를 생성 하여 사용하면된다.

wsdl클라이언트는 쉽게 개발 할 수 있다.

2013/02/07 14:47 2013/02/07 14:47
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/551

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/551

[원문] : http://it-box.tistory.com/11

:: 증상 ::
org.apache.axis.utils.JavaUtils isAttachmentSupported
경고: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.

:: 설명 ::
activation.jar와 mail.jar 파일이 없어서 발생하는 경고이다.
경고가 나도 프로그램 실행은 되나 찜찜하다.

:: 해결책 ::
이 jar 파일은 J2Enterprise Edition 포함되어 있는 API이기 때문에 j2ee 버전을 설치하면 해결된다.
첨부된 j2ee.jar
jdk설치폴더\jre\lib\ext 안에 넣어주면 에러가 잡힌다.
2013/02/07 14:44 2013/02/07 14:44
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/550

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/550

java 날자 api tutorial

JSP, JAVA RSS Icon ATOM Icon 2013/02/05 21:57 visualp
[원문] http://www.vogella.com/articles/JavaDateTimeAPI/article.html


DateFormat df = new SimpleDateFormat("dd/MM/yy");
String formattedDate = df.format(new Date()); 

DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); String formattedDate = df.format(theDate);



package conversion; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class ConversionExamplesDate { // Convert from String to date private void stringToDate() { try { Date date1; date1 = new SimpleDateFormat("MM/dd/yy").parse("05/18/05"); System.out.println(date1); Date date2 = new SimpleDateFormat("MM/dd/yyyy").parse("05/18/2007"); System.out.println(date2); } catch (ParseException e) { e.printStackTrace(); } } // Convert from millisecs to a String with a defined format private void calcDate(long millisecs) { SimpleDateFormat date_format = new SimpleDateFormat("MMM dd,yyyy HH:mm"); Date resultdate = new Date(millisecs); System.out.println(date_format.format(resultdate)); } private void writeActualDate(){ Calendar cal = new GregorianCalendar(); Date creationDate = cal.getTime(); SimpleDateFormat date_format = new SimpleDateFormat("MMM dd,yyyy HH:mm"); System.out.println(date_format.format(creationDate)); } public static void main(String[] args) { ConversionExamplesDate convert = new ConversionExamplesDate(); convert.stringToDate(); convert.calcDate(System.currentTimeMillis()); convert.writeActualDate(); }
2013/02/05 21:57 2013/02/05 21:57
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/549

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/549

[원문] : http://ir.bagesoft.com/640
Daemon
이란 백그라운드로 실행되면서, 사용자의 인터페이스(tty)가 없는 프로그램을 말한다. 우리가 흔히 사용하는 리눅스 서비스들은 대부분 데몬으로 동작하며, -d로 끝나는 프로그램(예: sshd, syslogd)이 모두 해당된다. 리눅스 명령인 nohup으로 백그라운드 구동은 가능하지만, kill 명령으로 종료해야 한다.
따라서 비정상 종료시의 처리를 하려면, OS로부터 signal을 받아야 하므로 데몬으로 구동시켜야 한다.
Apache Commons Daemon에서 제공하는 Jsvc를 이용하여, 간단한 데몬 프로그램을 작성해 보자.
(우리가 잘 알고 있는 Tomcat도 Jsvc를 이용하여, 데몬으로 프로세스를 실행한다고 한다.)
1. Jsvc 실행파일 생성
이미 컴파일된 Jsvc를 다운로드할 수는 있지만, 실제로 받아서 실행해 보면 에러를 출력하므로, 직접 컴파일하여야 한다.
Linux(CentOS 5.5)에 /opt/jdk1.6.0_24/에 JAVA를 설치했다고 가정한다.
mkdir /root/commons-daemon
cd /root/commons-daemon
wget http://www.apache.org/dist/commons/daemon/binaries/1.0.5/commons-daemon-1.0.5.jar
wget http://mirror.apache-kr.org//commons/daemon/source/commons-daemon-1.0.5-src.tar.gz
tar zxvf commons-daemon-1.0.5-src.tar.gz
cd commons-daemon-1.0.5-src/src/native/unix/
support/buildconf.sh
./configure --with-java=/opt/jdk1.6.0_24/
make
mv jsvc /root/commons-daemon
위와 같이 실행하면, 작업할 경로(/root/commons-daemon)에 jar와 jsvc파일이 생성되어 있을 것이다.

2. 실행할 JAVA 클래스 작성
jsvc에 의해서 실행되는 JAVA 클래스는 Daemon 인터페이스를 구현해야 한다. 또한 스레드로 실행되어야 하므로, Runnable도 구현해야 한다. 만약 스레드로 구동하지 않을 경우, 종료처리가 제대로 되지 않으며, "Service exit with a return value of 143"라는 오류를 표시할 것이다.
테스트를 위해, 1초마다 숫자를 하나씩 증가시키면서 찍는 프로그램을 JAVA로 아래와 같이 만들었다.
TestDaemon.java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.bagesoft.test.daemon;
import org.apache.commons.daemon.Daemon;
import org.apache.commons.daemon.DaemonContext;
import org.apache.commons.daemon.DaemonInitException;
public class TestDaemon implements Daemon, Runnable {
private String status = "";
private int no = 0;
private Thread thread = null;
@Override
public void init(DaemonContext context) throws DaemonInitException,
Exception {
System.out.println("init...");
String[] args = context.getArguments();
if (args != null) {
for (String arg : args) {
System.out.println(arg);
}
}
status = "INITED";
this.thread = new Thread(this);
System.out.println("init OK.");
System.out.println();
}
@Override
public void start() {
System.out.println("status: " + status);
System.out.println("start...");
status = "STARTED";
this.thread.start();
System.out.println("start OK.");
System.out.println();
}
@Override
public void stop() throws Exception {
System.out.println("status: " + status);
System.out.println("stop...");
status = "STOPED";
this.thread.join(10);
System.out.println("stop OK.");
System.out.println();
}
@Override
public void destroy() {
System.out.println("status: " + status);
System.out.println("destroy...");
status = "DESTROIED";
System.out.println("destroy OK.");
System.out.println();
}
@Override
public void run() {
while (true) {
System.out.println(no);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (no > 1000) {
break;
}
no++;
}
}
}
위의 클래스를 jar로 묶어서 BageSoft.jar 라는 파일을 만들고 작업경로(/root/commons-daemon/)에 저장했다.
3. JAVA를 실행할 쉘스크립트 작성
쉘스크립트를 작성할 때, 위에서 다운 받아서 압축 풀었던 위치(commons-daemon-1.0.5-src/src/samples)에서 ServiceDaemon.sh를 참고하면 된다.
아래에서 $DAEMON_HOME은 작업 경로를 의미한다.
나중에 디버깅의 편의성 때문에 에러 출력을 표준출력과 같은 파일에 저장하도록 했다.
TestDaemon.sh
#!/bin/sh
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
JAVA_HOME=/opt/jdk1.6.0_24
JSVC=/root/commons-daemon/jsvc
USER=root
DAEMON_HOME=/root/commons-daemon
PID_FILE=$DAEMON_HOME/daemon.pid
OUT_FILE=$DAEMON_HOME/daemon.out
#ERR_FILE=$DAEMON_HOME/daemon.err
CLASSPATH=\
$DAEMON_HOME/commons-daemon-1.0.5.jar:\
$DAEMON_HOME/BageSoft.jar
MAIN_CLASS=com.bagesoft.test.daemon.TestDaemon
case "$1" in
start)
#
# Start Daemon
#
rm -f $OUT_FILE
$JSVC \
-user $USER \
-java-home $JAVA_HOME \
-pidfile $PID_FILE \
-outfile $OUT_FILE \
-errfile $OUT_FILE \
-cp $CLASSPATH \
$MAIN_CLASS
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
#
# Stop Daemon
#
$JSVC \
-stop \
-nodetach \
-java-home $JAVA_HOME \
-pidfile $PID_FILE \
-outfile $OUT_FILE \
-errfile $OUT_FILE \
-cp $CLASSPATH \
$MAIN_CLASS
exit $?
;;
*)
echo "[Usage] TestDaemon.sh start | stop"
exit 1;;
esac
4. 실행/종료
실행
/root/commons-daemon/TestDaemon.sh start

로그를 남기도록 몇초 기다리고....
종료
/root/commons-daemon/TestDaemon.sh stop
제대로 처리 되는지는 daemon.out의 내용을 확인하면 된다.
init(), start(), stop(), destroy()가 모두 수행되면 정상이다.
아래는 start 후 10초 후에 stop 했을 때의 daemon.out의 내용이다.
init... init OK. status: INITED start... start OK. 0 1 2 3 4 5 6 7 8 9
status: STARTED stop... stop OK. status: STOPED destroy... destroy OK.

2012/12/12 09:09 2012/12/12 09:09
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://blog.visualp.com/rss/response/539

댓글+트랙백 ATOM :: http://blog.visualp.com/atom/response/539