이클립스와 톰켓은 모두 다운로드 후 설치 하셨지요?

아직 하지 않으셨거나 기억이 나지 않으신다면
아래 링크를 참조하세요.


이제는 효율적인 개발을 위한
이클립스와 톰켓의 연동방법 입니다.

가장 먼저 서버 실행 환경을 설정해야 합니다.

서버 실행 환경 설정




이클립스 메뉴에서 환경설정으로 들어갑니다.




왼쪽탭의 Server 에서 runtime Environment 메뉴를 선택하여
Add 버튼을 선택합니다.






그런 뒤 다운로드 받은 톰켓 6.0 을 선택한 뒤 다음으로 .





설치된 디렉토리를 선택해야 되므로 선택을 누릅니다.





이전, 톰켓 설치 폴더를 지정해 준 뒤 Finish 를 합니다.






자 그럼 이제 설정이 완료되었답니다~ㅎ

바로 테스트하로 가볼까요?


테스트 하기.


테스트를 하기 위하여 우선 프로젝트를 하나 추가해 줍니다.








프로젝트가 만들어 졌다면은,
프로젝트 내에 있는

WebContent 폴더에서 마우스 오른쪽 -> JSP 페이지를 만듭니다.









그러면 이제 새로운 JSP 페이지가 아래처럼 만들어 집니다.




그럼 이제 테스트를 위하여 적당한 텍스트를 입력한 후 실행해 보도록 하죠

단축키 : Ctrl + F11 을 선택합니다.






정상 출력이 될것입니다.!!!

<http://underclub.tistory.com/160> 

'IT 공부 > JSP' 카테고리의 다른 글

JSP TOMCAT 설치(시작)  (0) 2012.03.19

 JSP를 사용하기 위해서는 반드시 웹 컨테이너가 필요합니다.

대부분의 웹 컨테이너에는 웹 서버 기능을 가지고 있습니다. 물론 웹 서버용으로 별도로 제공되는 것들에 비해서 아주 기본적인 기능만 제공하지만, 상업용으로 JSP를 서비스할 목적이라면 웹 컨터이너 이외에 웹 서버를 따로 설치해야 합니다.

또한 여기에 웹 어플리케이션 서버도 따로 설치해야 됩니다.

 

 

톰캣(Tomcat) 사이트에 접속합니다.
http://tomcat.apache.org
 

 

 

 

 

 

 

 

 왼쪽 메뉴에 Download <Tomcat 6.x>를 클릭합니다.

 

 

 

 

 

 

 

 

 

Binary Distributions 밑에  Core: Zip을 클릭하여 압축파일을 다운로드 받습니다.

 

 

 

 

 

 

 

 

 

[내 컴퓨터] - [속성] - [고급 탭] - [환경변수] - [시스템 변수 새로만들기]에서 아래와 같이

변수 이름과 변수 값을 입력합니다.

 

*** 변수 값에는 톰켓 폴더가 위치한 경로를 확인 해주세요 ***

 

 

 

 

 

 

설치된 톰켓 폴더 안에 bin 폴더에 들어갑니다.

startup 파일 또는 startup.bat 파일을 실행 합니다.

 

 

 

 

 

 

 

startup 파일 또는 startup.bat 파일을 실행이 된 모습입니다.

 

 

 

 

 

 

 

마지막으로  인터넷 창을 열고   " http://127.0.0.1:8080 "을 입력했을때 다음과 같은 창이 나온다면 톰켓 설치는 끝난 것입니다.

 

 



[174  javajni.c] [error] 지정된 모듈을 찾을 수 없습니다. 
[947  prunsrv.c] [error] Failed creating java C:\Sun\SDK\jdk\jre\bin\server\jvm.dll

[1202 prunsrv.c] [error] ServiceStart returned 1

 

만약 다음과 같은 에러가 발생한 경우에는 Windows의 system32 안에 JVM이 설치된 폴더에서 msvcr71.dll 파일을 찾아 복사해서

넣어두면 됩니다.

http://blog.naver.com/ssuyastory?Redirect=Log&logNo=100096350007 > 


'IT 공부 > JSP' 카테고리의 다른 글

TOMCAT & Eclipse 연동시키기!(연결)  (3) 2012.03.19

Service는 background에서 처리를 계속할 수 있는 클래스이다.
Service는 기본적으로 activity를 가지지 않는다.

서비스를 구현하기 위한 3가지 절차
-- Service 클래스를 확장한 새로운 클래스 정의
-- Manifest file에 Service 선언 추가
-- App에서 Service 실행



1. 서비스를 실행하는 클래스 - 타이머를 이용한 반복 처리.


public class MyService extends Service implements Runnable {

    // 시작 ID
    private int mStartId;
    // 서비스에 대한 스레드에 연결된 Handler. 타이머 이용한 반복 처리시 사용.
    private Handler mHandler;
    // 서비스 동작여부 flag
    private boolean mRunning;
    // 타이머 설정 (2초)
    private static final int TIMER_PERIOD = 2 * 1000; 
    private static final int COUNT = 10;
    private int mCounter;


    // 서비스를 생성할 때 호출
    public void onCreate() {
        Log.e("MyService", "Service Created.");
        super.onCreate();
        mHandler = new Handler();
        mRunning = false;
    }


    // 서비스 시작할 때 호출. background에서의 처리가 시작됨.
    // startId : 서비스 시작요구 id. stopSelf에서 종료할 때 사용. 

     //onStart는 여러번 호출될 수 있기 때문에 식별자로 사용.

    public void onStart(Intent intent, int startId) {
        Log.e("MyService", "Service startId = " + startId);
        super.onStart(intent, startId);
        mStartId = startId;
        mCounter = COUNT;

        // 동작중이 아니면 run 메소드를 일정 시간 후에 시작
        if (!mRunning) {
              // this : 서비스 처리의 본체인 run 메소드. Runnable 인터페이스를 구현 필요.
              // postDelayed : 일정시간마다 메소드 호출
              mHandler.postDelayed(this, TIMER_PERIOD);
              mRunning = true;
        }
    }

 

    // 서비스의 종료시 호출
    public void onDestroy() {
        // onDestroy가 호출되어 서비스가 종료되어도
        // postDelayed는 바로 정지되지 않고 다음 번 run 메소드를 호출.
        mRunning = false;
        super.onDestroy();
    }


    // 서비스 처리
    public void run() {
        if (!mRunning) {
            // 서비스 종료 요청이 들어온 경우 그냥 종료
            Log.e("MyService", "run after destory");
            return;
        } else if (--mCounter <= 0) {
            // 지정한 횟수 실행하면 스스로 종료
            Log.e("MyService", "stop Service id = "+mStartId);
            stopSelf(mStartId);
        } else {
            // 다음 작업을 다시 요구
            Log.e("MyService", "mCounter : " + mCounter);
            mHandler.postDelayed(this, TIMER_PERIOD);
        }
    }

    // 원격 메소드 호출을 위해 사용
    // 메서드 호출을 제공하지 않으면 null을 반환
    public IBinder onBind(Intent intent) {
        return null;
    }
}




2. 서비스 실행, 종료를 사용자가 요청하는 클래스


// 서비스 시작과 종료를 요구하는 Activity
public class MyServiceActivity extends Activity {

    ComponentName mService;    // 시작 서비스의 이름
    TextView mTextView;              // 서비스 상태 표시


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mTextView = (TextView)findViewById(R.id.text_view);
       
        Button start = (Button)findViewById(R.id.start_button);
        start.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                startHelloService();
            }});
       
        Button stop = (Button)findViewById(R.id.stop_button);
        stop.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                stopHelloService();
            }});
    }


    // 서비스 시작 요청
    private void startHelloService() {
        mService = startService(new Intent(this, MyService.class));
        mTextView.append(mService.toShortString()+" started.\n");
    }

 

    // 실행한 서비스 중지 요청

    private void stopHelloService() {
        if (mService == null) {
            mTextView.append("No requested service.\n");
            return;
        }
       
        Intent i = new Intent();
        i.setComponent(mService);
        if (stopService(i))
            mTextView.append(mService.toShortString()+" is stopped.\n");
        else
            mTextView.append(mService.toShortString()+" is alrady stopped.\n");
    }
}



<service android:enabled="true" android:name=".MyServic"></service>

'IT 공부 > 안드로이드' 카테고리의 다른 글

Failed to install on device timeout ERROR  (2) 2012.10.27
Intent 활용 예시들  (0) 2012.10.26
안드로이드 한글 깨짐 현상 수정법  (2) 2012.03.10
android intent 여러값넘기기  (1) 2012.03.08
android animation 반복  (1) 2012.03.05

+ Recent posts