2013년 12월 12일 목요일

[참고] CSS 가운데 정령 참고 블로그

http://webdir.tistory.com/31

[호스팅] cafe24 Tomcat 재시작 명령어

ptty나 telnet으로 접속한 후

-tomcat 정지
./tomcat/bin/shutdown.sh

-tomcat 시작
./tomcat/bin/startup.sh

[오류] Unable to process Jar entry [com/mchange/Debug.class] from Jar

심각: Unable to process Jar entry [com/mchange/Debug.class] from Jar [jar:file:/D:/javaide/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/taxi/WEB-INF/lib/c3p0-0.9.1.1.jar!/] for annotations
java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(ZipFile.java:56)
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:679)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:415)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at java.io.DataInputStream.readInt(DataInputStream.java:387)
at org.apache.tomcat.util.bcel.classfile.ClassParser.readID(ClassParser.java:237)
at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:114)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2118)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1994)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1960)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1945)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1319)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)



위와 같은 에러 메시지를 만나게 된다면.....

그래서 이런경우에 Maven clean, Project clean, Server clean 을 하고 server를 다시 설치해도 해결이 되지 않았다.

구글링으로 찾아 보니, clean을 하는 도중에 jar파일이 깨지는 경우가 발생한다고 한다.
그래서 해당 jar파일을 다운받아서 다시 넣어주면 간단하게 해결할수 있다.!!

2013년 12월 11일 수요일

Cordova 3.2 에서 FacebookConnection plugin 등록과 테스트까지

 Adobe Phonegap Build의 Plugin  에서 FacebookConect Plugin 을 찾아서들어가면 repository주소가 있다고 그러면 github로 가게 될것이다.
https://build.phonegap.com/plugins

https://github.com/phonegap-build/FacebookConnect/tree/962eb0a1c07935ff813e28aa9eaa5581f2e10416


이제 repository 주소를 복사해서
커맨드창을 열어서 plugman을 이용해서 FacebookConnect plugin을 설치해 준다.
$ plugman install --platform android --project c:\workspace\HellWorld --plugin https://github.com/phonegap-build/FacebookConnect.git --variable APP_ID=123345 --variable APP_NAME=Hello
 plugin설치는 이것을 다된것이다. 이제는 테스트를 해볼 차례인데.

그전에 필요한 작업이 있다.

READ ME에 친절하게 설명이 되어 있지만 영어라서 너무 울렁 거린다.


Facebook 연동을 위해
https://developers.facebook.com
에서 개발자 등록을 해주고 앱등록을 해주어야 한다.

앱등록 할때 매우 주의해야 할 사항이 있다.
저는 이것때문에 1박2일을 쩔었습니다.
READ ME를 좀더 꼼꼼하게 보고 따라 했으면 안그랬을 것을 말입니다.

key hash를 등록하는 부분인데
Elipse에서 c:\Users\사용자이름\.android\debug.keystore 를 생성 하게 되는데,
이것을 openssl을 이용해서 hashkey 값을 받아서 등록을 해줘야 하는 하는데.

이때 openssl을 설치 해야 하는데 openssl이 문제였습니다.
window 64비트 이용자 같은 경우에는  0.9.8e , 0.9.8d 이 두개의 버전 중에 하나를 이용해야 합니다.
아니면 테스트 도중에 "Invalid android_key parameter.~~~ " 이런 에러를 만나실수 있습니다.

openssl 다운로드 받고 환경병수를 잡아 준다.
https://code.google.com/p/openssl-for-windows/downloads/list


이제 hash key를 생성할 준비가 다 된것이다.
생성하자.
$ keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
 이렇게 치면 비밀번호를 입력하라고 한다. 이때 이클립스가 만들때 비밀번호를 android로 만들 었기 때문에 android를 입력해주면된다.
## 주의해야 할 것은 만약 비밀번호를 입력하라고 하지 않으면 무엇인가 잘못 된것이다. 키값을 주지만 잘된것 키 값이니 낚이지 말자!!!
오타를 확인해 보고 .android/debug.keystore가 있는지 확인해 보자.


이제 Sample폴더의 index.html 를 옮겨다 놓고 테스트 하면 된다.

Phonegap (Cordova) 3.2 프로젝트 만들고 플러그인 추가 하기

phonegap VS cordova VS adobe phonegap build ??????
: 원래의 이름은 phonegap 이고 apache제단으로 편입되면서 cordova라는 이름을 가지게 된것이고 폰갭을 이용하는데 있어서 많은 지식없이도 빌드를 쉽게할수 있도록 서비스를 제공해주는 곳이 adobe phonegap build 이다.
adobe phonegap build는 1개까지는 무료로 제공해주고 그 이후 부터는 유료다.

api 참고는 cordova 사이트에서 하는것을 추천 한다.
http://cordova.apache.org/docs/en/3.2.0/index.html



Cordova  설치
Cordova 설치서 부터 프로젝트 생성 플러그인 추가/삭제 까지 너무 친절하게 나와 있다.
영어를  거의 못하는 나조차도 명령어만 따라 쳐보고 감이 올 정도다.
아래를 참고 하면 더욱더 좋다.
http://cordova.apache.org/docs/en/3.2.0/guide_cli_index.md.html#The%20Command-Line%20Interface


 
Cordova를 설치하기 전에 필요한 준비물이 있다.
node.js 와 apache 제단은 ant가 필요하다.
http://www.nodejs.org/download/
node.js 를 다운받아 설치 해주고

http://ant.apache.org/bindownload.cgi
최신번전 압축파일을 받아 주고,
압축을 풀고 bin폴더를 환경변수에 잡아주도록 한다.

환경변수 잡는 방법은 따로 검색을 해보도록 한다.

이렇게 두가지를 다했다면 Cordova 설치 준비가 끝난 것이다.

Cordova는 2.x 버전 까지는 다운받아서 설치를 해야하지만 3.x버전 부터는 커맨트 창에서 명령어를 입력하는 방식으로 설치를 하게 된다.


#윈도우 사용자라면 sudo를 붙이지 않는다. 그리고 '$'는 입력하지 않는다.

Cordova 설치
$ sudo npm install -g cordova

프로젝트 생성
  $ cordova create hello com.example.hello HelloWorld
  $ cd hello


사용할 플랫폼 등록
    $ cordova platform add ios
    $ cordova platform add amazon-fireos
    $ cordova platform add android
    $ cordova platform add blackberry10
    $ cordova platform add firefoxos
$ cordova platform remove blackberry10
    $ cordova platform rm amazon-fireos
    $ cordova platform rm android

빌드
  $ cordova build
플러그인 등록/삭제
$ cordova plugin add org.apache.cordova.device
$ cordova plugin add org.apache.cordova.network-information
$ cordova plugin add org.apache.cordova.battery-status

$ cordova plugin add org.apache.cordova.device-motion
$ cordova plugin add org.apache.cordova.device-orientation
$ cordova plugin add org.apache.cordova.geolocation
$ cordova plugin add org.apache.cordova.camera
$ cordova plugin add org.apache.cordova.media-capture
$ cordova plugin add org.apache.cordova.media
$ cordova plugin add org.apache.cordova.file
$ cordova plugin add org.apache.cordova.file-transfer

$ cordova plugin add org.apache.cordova.dialogs
$ cordova plugin add org.apache.cordova.vibration

$ cordova plugin add org.apache.cordova.contacts
$ cordova plugin add org.apache.cordova.globalization
$ cordova plugin add org.apache.cordova.splashscreen
$ cordova plugin add org.apache.cordova.inappbrowser
$ cordova plugin add org.apache.cordova.console
$ cordova plugin rm org.apache.cordova.console
    $ cordova plugin remove org.apache.cordova.console 
추가로 필요한 플러그인들은 필요에 따라 만들어서 꼽을수도 있고 다른 사람이 만들어 놓은 플러그인도 꼽아서 쓸수 있다.그것은 아래서 다시 알아 보자.


이제 Cordova 프로젝트가 만들어 졌으니 Android 프로젝트 만들어볼 차례다

이클립스에서 좀전에 생성된 hello 폴더로 들어가서 Android Applicatoin Project를 import하면 된다.

이제 이미 개발된 html / js / css 를 asset/www 폴더로 이동시키고,
res/xml/config.html 파일 안에서 index.html로 된부분을 원하는 시작페이지 경로로 바꿔 주기만 하면 된다.




plugman
Cordova 3.2버전에서는 plugman  이라는 것이 제공되는데 이것은 프로젝트 진행중에도 플러그인은 꼽았다 제거할수 있는 매우 유용한 툴이다.

설치
$ npm install -g plugman

plugin  등록 / 삭제
$ plugman install --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
$ plugman uninstall --platform <ios|amazon-fireos|android|blackberry10|wp7|wp8> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]
 <>는 와야할 것이고 [] 없어도 상관없는 것이다.
아래와 같이 작성하면된다.

$ plugman install --platform android --project c:\workspace\HellWorld --plugin org.apache.cordova.Device
$ plugman install --platform android --project c:\workspace\HellWorld --plugin https://github.com/phonegap-build/FacebookConnect.git --variable APP_ID=123345 --variable APP_NAME=Hello
 위에서 보면 알수 있듯이github 주소로도 등록이 가능한데 이때 한가지 조건이 필욯다.
CLI 툴이 설치 되어 있어야 한다.
http://git-scm.com/downloads
CLI툴 중하나인 git-GUI 를 설치하면 에러 없이 git주소로도 plugin 등록이 가능해 진다.


## 추가적인 plugin이 필요한 경우
adobe phonegap build > plugin을 적극 활용하도록 하자 많은 플러그인들을 만날수 있다.