2010년 5월 18일 화요일

How Will Java Technology Change My Life?

We can't promise you fame, fortune, or even a job if you learn the Java programming language. Still, it is likely to make your programs better and requires less effort than other languages. We believe that Java technology will help you do the following:

  • Get started quickly: Although the Java programming language is a powerful object-oriented language, it's easy to learn, especially for programmers already familiar with C or C++.
  • Write less code: Comparisons of program metrics (class counts, method counts, and so on) suggest that a program written in the Java programming language can be four times smaller than the same program written in C++.
  • Write better code: The Java programming language encourages good coding practices, and automatic garbage collection helps you avoid memory leaks. Its object orientation, its JavaBeansTM component architecture, and its wide-ranging, easily extendible API let you reuse existing, tested code and introduce fewer bugs.
  • Develop programs more quickly: The Java programming language is simpler than C++, and as such, your development time could be up to twice as fast when writing in it. Your programs will also require fewer lines of code.
  • Avoid platform dependencies: You can keep your program portable by avoiding the use of libraries written in other languages.
  • Write once, run anywhere: Because applications written in the Java programming language are compiled into machine-independent bytecodes, they run consistently on any Java platform.
  • Distribute software more easily: With Java Web Start software, users will be able to launch your applications with a single click of the mouse. An automatic version check at startup ensures that users are always up to date with the latest version of your software. If an update is available, the Java Web Start software will automatically update their installation.

2010년 5월 17일 월요일

Spring seucrity 2.0 태그 사용하기

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

<!-- 권한에 따라 페이지에서 보여주는 것을 달리하기 위해 authorize 태그를 사용할 수 있다. -->
<sec:authorize ifNotGranted="ROLE_USER">
<a href="<s:url value="/public/blog/login.jsp"/>">로그인</a>
</sec:authorize>
<sec:authorize ifAnyGranted="ROLE_USER, ROLE_ADMIN">
<b><sec:authentication property="principal.username"/></b>님 반갑습니다. <br>
<a href="<s:url value="/j_spring_security_logout"/>">로그아웃</a>
</sec:authorize>
 
수정 및 삭제 버튼도 위에서 사용한 authorize 태그를 사용해서 로그인 상태에 따라 보여주거나 보여주지 않을 수 있다.

authentication 태그를 사용하여 현재 로그인된 사용자의 정보를 확인할 수 있다.

* Spring Security Tag Library *
- authentication 태그
 property="principal.username" 설정으로 현재 로그인 된 사용자의 username을 확인 할 수 있다.
- authorize 태그
 현재 로그인 된 사용자가 해당되는 권한에 따라, 태그 안에 포함된 내용을 보여주거나 보여주지 않을 수 있다.
 
 ifAllGranted 속성: 사용자가 나열된 모든 권한에 해당할 경우 태그 안에 포함된 내용을 보여준다.
 ifAnyGranted 속성: 사용자가 나열된 권한 중 한가지에라도 해당할 경우 태그 안에 포함된 내용을 보여준다.
 ifNotGranted 속성: 사용자가 나열된 권한 중 한가지에라도 해당할 경우 태그 안에 포함된 내용을 보여주지 않는다.

Web Service 쉽게 구현하기 II - 웹서비스 프로그램 작성 예

1. 서버 프로그램 작성
 <웹서비스 구현 플로우>

2. 자바 Interface와 자바 Implement 클래스 작성
- c:\test\ 에 아래 2개의 파일을 생성한다.

// HelloIF.java
package hello;
public interface HelloIF extends java.rmi.Remote {
public String hello(java.lang.String name) throws java.rmi.RemoteException;
}

// HelloImpl.java
package hello;
public class HelloImpl implements HelloIF {
public HelloImpl() {}
public String hello(String name) {
System.out.println(name);
return "hi " + name;
}
}

- 컴파일 후 c:\test\webservice/hello 디렉토리 밑에 HelloImpl.class 와 HelloIF.class가 생성. 생성된 class파일을 C:\Tomcat\webapps\axis\WEB-INF\classes 디렉토리에 패키지 디렉토리를 포함해서 복사한다.

3. 구현된 클래스로부터 WSDL 생성 하기
 Ex) java org.apache.axis.wsdl.Java2WSDL -o C:\test\hello\Hello.wsdl
-l http://localhost:8080/axis/services/Hello
-n http://hello.webservice -pwebservice.Hello http://hello.webservice hello.Hello
- C:\test 밑에 hello.wsdl 파일이 생성되었는지 확인한다.

4. WSDL 파일로부터 deploy.wsdd 및 client-side 자바 클래스 생성
Ex) java org.apache.axis.wsdl.WSDL2Java -o C:\test\hello\ -d Application -s C:\test\hello\Hello.wsdl

5. deploy.wsdd 파일 수정
wsdd 파일은 wsdl 파일만 가지고 생성되었기 때문에 실제 구현클래스가 무엇인지 제대로
설정이 안되어 있으므로 그부분을 수정해 주어야한다.
붉은색 부분으로 해당 부분을 수정해주면 된다.

xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
...
...생략...
...
hello.HelloImpl"/>  <- 실제 구현 클래스 명칭 및 패키지 경로를 수정한다.
...
...생략...

6. 서비스 디플로이먼트 하기
Ex) java org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd

[디플로이먼트 확인하기]
http://localhost:8080/axis/servlet/AxisServlet
'Hello' 라는 서비스가 설치된 것을 확인할 수 있다.

7. 서비스 언디플로이먼트 하기
Ex) java org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService undeploy.wsdd

[언디플로이먼트 확인하기]
http://localhost:8080/axis/servlet/AxisServlet
'Hello' 라는 서비스가 삭제된 것을 확인할 수 있다.

Web Service 쉽게 구현하기 I - 환경설정

본 강좌는 Axis를 이용한 웹서비스 구축 및 클라이언트 구현 방법을 소개한다.

I. 환경설정
1. JDK 설치
- http://java.sun.com 에서 jdk1.5 버전을 다운받아 설치한다.
- 설치 후 CLASSPATH 를 설정한다.
- set CLASSPATH=.;C:\jdk15\lib\tools.jar;C:\tomcat\common\lib\servlet-api.jar;
- set JAVA_HOME=C:\jdk15
- set PATH=C:\jdk15\bin; 을 기존 PATH에 추가한다.

2. Apache Tomcat 설치
- http://tomcat.apache.org/ 에서 Tomcat 5.5 다운로드
- set CATALINA_HOME=tomcat 설치폴더 ex) C:\tomcat
- 설치 후 CATALINA_HOME\bin\startup.bat 를 실행한다.
- 웹 브라우저에서 http://localhost:8080으로 확인한다.

3. AXIS 설치
- http://ws.apache.org/axis/ 에서 1.4 버전을 다운로드 한다.
- set AXIS_HOME=C:\axis
- set AXIS_LIB=%AXIS_HOME%\lib
- set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar;
- %AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
- %AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar;
- %AXIS_LIB%\wsdl4j.jar
- set CLASSPATH=%CLASSPATH%;%AXISCLASSPATH% 으로 기존 CLASSPATH 에 추가한다.
- CLASSPATH에 있는 xml-apis.jar 파일과 xercesImpl.jar 파일은http://xml.apache.org/ 에서 받으면 된다.

4. AXIS를 Tomcat에 연동하기
- C:\axis\webapps\axis\ 에서 axis디렉토리를 C:\tomcat\webapps\axis로 복사하면 된다. 즉, 톰캣 webapps디렉토리에 axis 컨텍스트가 추가 되었다고 이해해도 되겠다.
- 웹 브라우저에서 http://localhost:8080으로 확인한다.

5. AXIS 테스트
- tomcat을 실행하고 연결테스트를 해본다. (http://localhost:8080/axis)
- 라이브러리 테스트 : http://localhost:8080/axis/happyaxis.jsp 에서 필요하거나 필수적인 추가 라이브러리를 설치하라는 경고 메시지를 보여주기 때문에 이때 필요한 라이브러리를 다운받아서 C:\tomcat\webapps\axis\lib\ 에 복사해주고 다시 테스트를 해본다.

maven

1. maven 다운로드 및 설치

1) 다운로드
  maven 최신버전을 다운로드 한다

2) 설치
  압축을 적당한 경로에 풀고 path를 설정한다.
  path : C:\apache-maven-2.0.10\bin
  확인 : mvn --version
           Maven version: 2.0.10
           Java version: 1.5.0_17
           OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"

3) Maven Integration for Eclipse
  Help -> Software Update and add-ons -> Available Software 선택
  Add Site 버튼선택 후 http://m2eclipse.sonatype.org/update/ 를 추가

2010년 5월 11일 화요일

Research

Danga :  Memcached(캐싱처리), MogileFS(분산파일시스템), Gearman(병렬처리,로드밸런싱)

 

Twitter : Starling(메모리캐싱, 소스코드는 여기)

 

WordPress.com : Pound(로드밸런싱), Wackamole(클러스터링), Spread(메시징서비스), HyperDB