* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
|
Red Hat Enterprise Linux release 9.1 |
|
CUBRID 11.2 (11.2.2.0705-4ea991d) (64bit release build for Linux) (Oct 28 2022 16:13:18) |
|
[도움말]-[버전정보] 확인 |
|
openjdk version "1.8.0_352" |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
다음 순서로 작업 진행했습니다.
1.
$CUBRID/conf/cubrid.conf 에 java_stored_procedure=yes 추가
2.
vi HelloWorldJar.java
public class HelloWorldJar {
public static String helloWorld() {
return "Hello, World!";
}
}
3.
javac HelloWorldJar.java
jar -cvf0 HelloWorldJar.jar HelloWorldJar.class
loadjava demodb HelloWorldJar.jar
4.
export CLASSPATH=$CUBRID/databases/demodb/java/HelloWorldJar.jar:.
env | grep CLASSPATH
CLASSPATH=/home/cubrid/CUBRID/databases/demodb/java/HelloWorldJar.jar:.
5.
cubrid javasp start demodb
cubrid server start demodb
6.
csql -u dba demodb
csql> create FUNCTION jar_Test()
RETURN string as language java name 'HelloWorldJar.helloWorld() return java.lang.String';
csql> select jar_Test() from db_root;
In line 1, column 19,
ERROR: Stored procedure execute error: java.lang.ClassNotFoundException: HelloWorldJar
0 command(s) successfully processed.
csql>
jar 파일의 경로를 $CUBRID/lib, $CUBRID/java 로 옮겨 보아도 현상은 마찬가지입니다.
cubrid 11.2에서 CLASSPATH로 jar를 지정할 수 있는 방법이 뭔가요?
매뉴얼을 모두 확인해봐도 해당 부분에 대한 내용이 없습니다.
(jar가 아닌 class 파일로 loadjava 사용했을때는 정상적으로 동작합니다. jar 파일을 cubrid에 인식시킬 수 있는 방법이 궁금합니다. )
11.2.2에 jar를 인식하지 못하는 오류가 발견되어 11.2.3에서 수정되었습니다.
11.2.3를 사용해보세요.