검색
다른 검색어로 검색을 시도하시기 바랍니다.
[구너 플레이어] 15.8 단일파일 php 음악 플레이어.
순수하게 본인의 필요에 의해 만들어진 html5 기반의 음악 플레이어.
브라우저상에서 실행이되며 PHP 와 Http 서버가 필요함(디렉토리 인덱스 체크)
mp3 와 ogg 를 지원하며 소스의 51번 라인 에 wav 등을 추가할 수 있음.
실행화면, 크기 자동조절.
소스상 표시문제로 테그를 -- 로 치환함
사용상 모든 브라우저를 지원하지만 mp3 파일등의 음원은 직접 구해서
플레이어가 있는 디렉터리에 함께 넣어주고 브라우저에서 주소를 열면 된다.
문의는 댓글로.
'Develop' 카테고리의 다른 글
구너갤러리 15.11.2 (0) | 2015.11.16 |
---|---|
구너갤러리 15.11 (0) | 2015.11.04 |
구너 플레이어 15.11 (1) | 2015.11.04 |
베지에 곡선 (Bezier Curve) (1) | 2015.09.04 |
PHP html5 css3 음악 플레이어. (0) | 2014.10.18 |
Redhat JBoss mysql Datasource 설정하기
JBoss 서버에 데이터소스를 설정하는 내용을 담은 글들이 매우 많으나, 사실상 적용이 안되는 경우가 많았다.
톰캣처럼 컨텍스트 추가하고 읽으면 바로 사용할 수 있는 방법은 없다.
JBoss 에서 데이터소스를 사용하는 순서는 다음과 같다.
1. 드라이버 모듈 추가
2. 데이터소스 드라이버 등록
3. 데이터소스 추가
4. 데이터소스 매핑 jboss-web.xml
1. 드라이버 모듈 추가
드라이버 모듈은 modules 에 디렉토리를 생성하고 module.xml 을 생성하여 넣는 방법이 대부분 소개되어있다. 그러나 간혹 jboss 에서 인식이 되지 않는 경우가 발생한다. 모듈이 없거나 존재하지 않는다는 경고가 발생한다. 공백이나 양식, 문법등의 문제겠지만 정확히 어떤것이 문제인지는 확인할 수 없었다.
여기서는 jboss-cli 를 이용한다. jbosscli 실행하여 해당 서버콘솔에 접속하고 다음과 같이 입력한다.
module add --name=com.mysql --resources={mysql connector jar file 경로} --dependencies=javax.api,javax.transaction.api
그러면 자동으로 modules 아래에 com 폴더 아래에 새로운 mysql 모듈이 등록이된다.
2. 데이터소스 드라이버 등록
/subsystem=datasources/jdbc-driver=mysql:add(driver-module-name=com.mysql,driver-name=mysql,driver-class-name=com.mysql.jdbc.Driver)
위와같이 입력하면 데이터소스드라이버가 등록이 된다.
3. 데이터소스 등록
standalone/configuration/standalone.xml 을 편집하거나 management Web 을 이용한다.
필자의 경우 management Web 을 이용하였으나 standalone.xml 을 편집하여 등록하는 방법을 적어본다.
jdbc:mysql://localhost:3306/DB명.....파라미터 com.mysql.jdbc.Driver com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource mysql 2 30 아이디 패스워드 false false true
위처럼 소스를 삽입한다.
4. war 파일에 web.xml 과 함께 jboss-web.xml 을 추가한다.
/{context path} jdbc/jndi별명 javax.sql.DataSource java:/jdbc/jndi별명 Container
위와같이 설정후 context lookup 시 comp/env 를 통해 lookup 하는것은 제외하도록 한다.
war 를 배포하고 배포경로를 통해 확인한다.
BCEL로 런타임에 Arguments(매개변수들) 캡쳐하는 Instruction 추가하기.
Bcel 을 처음 다룰 당시에 만들었던 간단한 매개변수 출력하는 BCEL transform이다.
상당히 다듬어지지않은 막코드라서 감안해서 볼 필요가있다.
핵심부분은 밑줄과 주석을 달겠다.
이전글(http://blog.sanguneo.com/21) 에서 premain 을 이용한 javaagent 사용법은 간략하게 배웠는데.
BCEL을 여기에 접목시킨다는것은 조금 고차원적인 접근이 필요하다.(필자의 생각)
우선적으로 소스를 펼치기에 앞서 이론설명을 하자면 자바의 .class 파일은 완전하계 기계어(?)로 번역된것이 아닌,
그렇다고 소스형태도아닌 그 중간어딘가의 형태로 볼수있다.
javac 명령어를 실행하면 소스파일을 java컴파일하면 class 파일로 뱉어내게되는데, 이 class파일이 ByteCode의 목적집합코드인셈이다.(?)
길게 이야기할거없이 일단 class파일은 바이트코드로 되어있다고 보면 된다.
웹상의 대부분의 자료들(BCEL에 관련해서만) 은 BCEL을 이용한 정적인 BCI 기술을 보여준다.
정적인 BCI기술이라함은 class 파일화된 바이트코드를 다루는것이라 하겠다.
하지만! 이 정적인 BCI기술은 엄청난 한계가있는데,
상용프로그램에대한 라이센스문제(수정불가등의 조항), 묶여있는 클래스군 혹은 시스템클래스 에대한문제(rt.jar 등) 이 그것이다.
그렇다면 실시간으로 무엇을 어떻게 불러와서 사용할수 있을고 하니. 자바에서 기본적으로 Transform 을 지원한다.(since jdk1.5)
여기서 사용할것은 ClassFileTransformer 이다.
우선 클래스파일 트랜스포머 메소드는 아래처럼 implements 로 얻어와서 정의하여 사용한다.
주의) 소스가 동작하지않을 수 있음. 버그있으면 피드백 바랍니다. 원본 코드를 자꾸 수정해서 아래코드는 기억을 더듬어 작성했습니다.
즉, 위에서 사용한 방식을 요약하면
클래스 파싱->메소드 검사후 조건검색->새 메소드인스트럭션 생성->인스트럭션에 아규먼트출력절차 추가->원본 인스트럭션 추가->생성된 인스트럭션을 원본 메소드에 교체->메소드를 클래스젠에 추가->클래스젠으로부터 클래스를 받아 바이트코드로 출력 하게된다.
이를 지칭하여
BCEL on fly, dynamic BCEL 이라고 부르기도 한다.
'Study > BCI&BCEL&ASM' 카테고리의 다른 글
BCEL 중요용어 및 사용법 간단 소개. (0) | 2015.01.12 |
---|---|
bcel 6 다운로드 (0) | 2015.01.12 |
BCI 기술과 BCEL (0) | 2015.01.12 |
ASM 으로 바이트코드 변경하기. (0) | 2014.08.21 |
BCEL 그나마 나은 참고자료.. (0) | 2014.08.04 |
BCEL 중요용어 및 사용법 간단 소개.
'Study > BCI&BCEL&ASM' 카테고리의 다른 글
BCEL로 런타임에 Arguments(매개변수들) 캡쳐하는 Instruction 추가하기. (0) | 2015.01.12 |
---|---|
bcel 6 다운로드 (0) | 2015.01.12 |
BCI 기술과 BCEL (0) | 2015.01.12 |
ASM 으로 바이트코드 변경하기. (0) | 2014.08.21 |
BCEL 그나마 나은 참고자료.. (0) | 2014.08.04 |
bcel 6 다운로드
최신 개발버전 스냅샷 위치는 다음과같음
http://repository.apache.org/content/groups/snapshots/org/apache/bcel/bcel/6.0-SNAPSHOT/
'Study > BCI&BCEL&ASM' 카테고리의 다른 글
BCEL로 런타임에 Arguments(매개변수들) 캡쳐하는 Instruction 추가하기. (0) | 2015.01.12 |
---|---|
BCEL 중요용어 및 사용법 간단 소개. (0) | 2015.01.12 |
BCI 기술과 BCEL (0) | 2015.01.12 |
ASM 으로 바이트코드 변경하기. (0) | 2014.08.21 |
BCEL 그나마 나은 참고자료.. (0) | 2014.08.04 |