enter code here
우리는 데이터베이스 풀링을 위해 c3p0 jar를 사용하고 있습니다. 이제 c3p0 코드에서 다음 예외가 발생합니다.IllegalAccessError in Linux (수세 10)
발생 원인 : java.lang.IllegalAccessError : 클래스 com.mchange.v2.c3p0.impl에서 클래스 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource $ 1에 액세스하려고 시도했습니다. com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource에서 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.setUpPropertyEvents (AbstractPoolBackedDataSource.java:74) 에서 .AbstractPoolBackedDataSource . (AbstractPoolBackedDataSource.java:63)에서 com.mchange .v2.c3p0.ComboPooledDataSource. (ComboPooledDataSource.java:109) com.mchange.v2.c3p0.ComboPooledDataSource에서. (ComboPooledDataSource.java:105)
이제 AbstractPoolBac에서 kedDataSource.java (라인 74) = 새로운의 PropertyChangeListener PropertyChangeListener에 L을()
PropertyChangeListener l = new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent evt)
{ resetPoolManager(); }
};
그래서 PropertyChangeListener를 여기 내부 클래스이다 .. AbstractPoolBackedDataSource $ 1 가 PropertyChangeListener를 자바 클래스 java.beans.PropertyChangeListener있다!
이유가 무엇일까요? 이것은 리눅스에서만 발생합니다 (suse 10). Windows에서는 잘 작동합니다 (jdk 1.6_10 및 jre 1.6_20). 다른 jdk, jre 조합 (jdk 1.6_25 등)을 시도했습니다.