2013년 11월 22일 금요일

ubuntu tomcat 기본설치 후 실행 노트

출처: http://stackoverflow.com/questions/10259738/how-to-restart-tomcat-6-in-ubuntu

/etc/init.d/tomcat7 start
/etc/init.d/tomcat7 stop
/etc/init.d/tomcat7 restart
우분투에 apt-get install tomcat7 으로 설치한 톰캣을 실행.

출처: http://askubuntu.com/questions/135824/what-is-the-tomcat-installation-directory

apt-get으로 설치한 후 폴더 구조이다.
/etc/tomcat6/
├── Catalina
│   └── localhost
│       ├── ROOT.xml
│       └── solr.xml -> ../../../solr/solr-tomcat.xml
├── catalina.properties
├── context.xml
├── logging.properties
├── policy.d
│   ├── 01system.policy
│   ├── 02debian.policy
│   ├── 03catalina.policy
│   ├── 04webapps.policy
│   ├── 05solr.policy -> /etc/solr/tomcat.policy
│   └── 50local.policy
├── server.xml
├── tomcat-users.xml
└── web.xml
/usr/share/tomcat6
/usr/share/tomcat6
├── bin
│   ├── bootstrap.jar
│   ├── catalina.sh
│   ├── catalina-tasks.xml
│   ├── digest.sh
│   ├── setclasspath.sh
│   ├── shutdown.sh
│   ├── startup.sh
│   ├── tomcat-juli.jar -> ../../java/tomcat-juli.jar
│   ├── tool-wrapper.sh
│   └── version.sh
├── defaults.md5sum
├── defaults.template
└── lib
    ├── annotations-api.jar -> ../../java/annotations-api-6.0.35.jar
    ├── catalina-ant.jar -> ../../java/catalina-ant-6.0.35.jar
    ├── catalina-ha.jar -> ../../java/catalina-ha-6.0.35.jar
    ├── catalina.jar -> ../../java/catalina-6.0.35.jar
    ├── catalina-tribes.jar -> ../../java/catalina-tribes-6.0.35.jar
    ├── commons-dbcp.jar -> ../../java/commons-dbcp.jar
    ├── commons-pool.jar -> ../../java/commons-pool.jar
    ├── el-api.jar -> ../../java/el-api-2.1.jar
    ├── jasper-el.jar -> ../../java/jasper-el-6.0.35.jar
    ├── jasper.jar -> ../../java/jasper-6.0.35.jar
    ├── jasper-jdt.jar -> ../../java/ecj.jar
    ├── jsp-api.jar -> ../../java/jsp-api-2.1.jar
    ├── servlet-api.jar -> ../../java/servlet-api-2.5.jar
    ├── tomcat-coyote.jar -> ../../java/tomcat-coyote-6.0.35.jar
    ├── tomcat-i18n-es.jar -> ../../java/tomcat-i18n-es-6.0.35.jar
    ├── tomcat-i18n-fr.jar -> ../../java/tomcat-i18n-fr-6.0.35.jar
    └── tomcat-i18n-ja.jar -> ../../java/tomcat-i18n-ja-6.0.35.jar
/usr/share/tomcat6-root/
/usr/share/tomcat6-root/
└── default_root
    ├── index.html
    └── META-INF
        └── context.xml
/usr/share/doc/tomcat6
/usr/share/doc/tomcat6
├── changelog.Debian.gz -> ../libtomcat6-java/changelog.Debian.gz
├── copyright
└── README.Debian.gz -> ../tomcat6-common/README.Debian.gz
/var/cache/tomcat6
/var/cache/tomcat6
├── Catalina
│   └── localhost
│       ├── _
│       └── solr
│           └── org
│               └── apache
│                   └── jsp
│                       ├── admin
│                       │   ├── form_jsp.class
│                       │   ├── form_jsp.java
│                       │   ├── get_002dproperties_jsp.class
│                       │   ├── get_002dproperties_jsp.java
│                       │   ├── index_jsp.class
│                       │   ├── index_jsp.java
│                       │   ├── schema_jsp.class
│                       │   ├── schema_jsp.java
│                       │   ├── stats_jsp.class
│                       │   ├── stats_jsp.java
│                       │   ├── threaddump_jsp.class
│                       │   └── threaddump_jsp.java
│                       ├── index_jsp.class
│                       └── index_jsp.java
└── catalina.policy
/var/lib/tomcat6
/var/lib/tomcat6
├── common
│   └── classes
├── conf -> /etc/tomcat6
├── logs -> ../../log/tomcat6
├── server
│   └── classes
├── shared
│   └── classes
├── webapps
│   └── ROOT
│       ├── index.html
│       └── META-INF
│           └── context.xml
└── work -> ../../cache/tomcat6
/var/log/tomcat6
/var/log/tomcat6
├── catalina.out
톰캣 외부 접속 설정
출처: http://asm0628.tistory.com/176
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" address="0.0.0.0" /> 

git hub 몇가지 노트

간단한 명령어 소개 링크 : http://unikys.tistory.com/323
-> 명령어를 잘 정리해 놓은 링크
내가 사용하는 몇가지 명령어 참조: http://chriskr7.blog.me/60203914580
1. 우선 깃헙에 리파지토리를 만든다.
2. 내 로컬에 git폴더를 만들고 리파지토리와 동일한 이름의 폴더를 만든다.
3. 커맨드 창에서 'git init' 명령어로 초기화 한다.
4. git remote add origin https://github.com..... 을 통해서 나의 리파지토리 url을 origin으로 설정
(git remote set-url origin https://UserID@github.com/UserID/repository.git 을 통해 변경가능)
5. git add . (or git commit -a) 명령어로 파일들을 더한다.
6. git commit 명령어로 커밋한다. (리눅스에서 커밋 코멘트를 다는 화면으로 이동한다)
7. git push -u origin master 명령어로 origin의 master 브랜치로 푸시한다.
8. git pull origin 명령어로 origin의 변경 내용을 내려받을 수 있다.


머지하기
출처: http://yaku.tistory.com/334
출처: http://gitref.org/branching/

git branch
-> 현재 브랜치를 확인한다.
git merge target
-> 타겟 브랜치를 현재 브랜치에 머지한다.
(git checkout -b change_class
Switched to a new branch 'change_class')
컨플릭트가 발생하면
git diff
-> 다른 항목들의 (컨플릭트가 발생한 항목) 내용을 확인 할 수 있다.
에디터로 해당 항목을 연 후
(git merge fix_readme
Auto-merging README
CONFLICT (content): Merge conflict in README
Automatic merge failed; fix conflicts and then commit the result.
$ cat README 
<<<<<<< HEAD
Many Hello World Examples
=======
Hello World Lang Examples
>>>>>>> fix_readme

This project has examples of hello world in 
nearly every programming language.)
>>>>>>>> 와 ======= 또는 <<<<<<<< 로 이루어진 항목을 찾아가서 해당 컨플릭트를 해결하면 된다. 현재까진 직접 중복 결과값을 수정해도 문제 없었다.
$ git status -s
UU README
$ git add README 
$ git status -s
M  README
$ git commit 
[master 8d585ea] Merge branch 'fix_readme'
위에 상태 확인을 했을 때 UU 항목이 컨플릭트 등에 의해서 머지가 제대로 안된 항목
컨플릭트를 해결한 후 add시키면 된다.
그 후에 커밋하면 끝.

Ignore 설정하기
출처: http://rapapa.net/?p=85
어느 소스폴더에서 "git init"를 한 폴더 전체가 소스관리 대상에 포함된다.
(git init 는 git로 현재폴더를 소스관리 하겠다는 명령어)
.git이 있는 최상위폴더 (git init을 한 폴더)에서
.gitignore 파일을 만든다
내용은 커밋을 제외하는 내용을 적으면 된다. (출처 참조)
글로빙 규칙에 맞춰서 적으면 된다.
이미 커밋이 되어 있던(사용중이던) 폴더라면
제외 시켜주면 되는데
출처에 나온 git rm 명령을 쓰면 된다.
제외 시킬 파일을 미리 확인하고 싶으면
git rm --dry-run *.log(제외시킬 파일 글로빙)
이렇게 하면 된다.

2013년 11월 19일 화요일

Facebook example을 사용하면서 생기는 에러 - Android

conversion to dalvik format failed unable to execute dex...
dex loader unable to execute dex buffer overflow....

-> 개인적으로 가장 이해가 안되는 에러였다. 이것저것 다 해봤지만 결국  버전의 다운그레이드가 정답이었다. 이 에러는 사람들마다 해결책이 다 다른것 같다.

unable to instantiate activity componentinfo

-> 전체적으로 페이스북 예제를 처음 만들어서 실행할 때 가장 큰 에러는 빌드 패스인것 같다.
출처2의 안드로이드 디펜던시를 제거했더니 실행이 된다는 내용은... 추천하지 않는다. 임시방편이고 단지 실행만 된다. 실제 런타임에서는 에러가 발생된다.

->  안드로이드 인증관련 문제인데... 해결책을 보면 볼수록 어렵다. 그냥 설치된 앱을 지우고 프로젝트 클린하고 재빌드해서 도전하는게 나을듯

가장 도움이 많이 되었던 링크 http://dakehosu.tistory.com/69
페이스북 SDK를 받아서 이클립스에서 라이브러리로 추가해야 한다는 내용이다.
가장 정확하고 도움이 많이 되었다.

실제 오랜시간 삽질을 하고 나니 대부분 빌드패스의 문제였다. 안드로이드 서포터 jar파일이 나의 프로젝트에도 있고 페이스북 SDK 프로젝트에도 있어서 생기는 문제가 가장 날 힘들게 했다. ㅠ

2013년 11월 18일 월요일

layout inflater

- 레이아웃 인플레이터(Layout Inflater)
: 레이아웃 인플레이터는 레이아웃 xml 파일에 상응하는 뷰 객체를 반환받는 데 사용한다. 자바 프로그램 코드상에서는 레이아웃 인플레이터에 직접 접근하지 못하고 getLayoutInflater() 메소드를 이용하거나 getSystemService(String) 메소드를 호출해 반환값으로 LayoutInflater 객체를 받아야 한다.