2012-09-11 3 views
0

나는 android 및 서버 버전이있는 라이브러리를 빌드 중입니다.Android 및 JDK 클래스

LdapJDK는 android JDK에 포함되지 않은 javax.naming 클래스를 가져옵니다.

내 라이브러리의 Android 버전에서 LdapJDK가 호출되지 않으므로 아래 코드는 Android 휴대 전화에서 작동합니다.

그러나 이것이 안전한 방법인지 확신하지 못합니다. 일부 응용 프로그램 (예 : 웹 서버)이 초기화 중에 모든 클래스 종속성을 검사하면 내 라이브러리에서 예외가 발생합니다.

의견을 보내 주시면 감사하겠습니다.

public static X509Certificate[] getCertFromLDAP(String url, String dn) throws ASN1Exception, CertificateException, UnsupportedEncodingException 
{ 
    if (JeTS.getType() == PKIConstants.ANDROID_TYPE) 
     return LdapAndroid.getCertFromLDAP(url, dn); 
    else 
     return LdapJDK.getCertFromLDAP(url, dn); 
} 

답변

0

안심하고 싶다면 Android와 서버를위한 다양한 항아리를 만드십시오. Android에서 필요하지 않거나 사용할 수없는 것을 제외합니다.

그렇다면 Android 2.x 이상에서 실행되는 한 클래스는 느리게로드되며 위의 코드는 문제가되지 않습니다. Android는 이전 패턴과의 호환성을 처리하기 위해 동일한 패턴을 사용하므로이를 시험하고 테스트합니다.

+0

웹 서버가 eager-loading을 사용할 수 있으므로 서버 버전이 문제를 일으켜야 함을 의미합니까? 나는 도서관을 다시 건설해야한다. 답변 주셔서 감사합니다 – tompal18

+0

자바 SE는 항상 게으른 클래스 로딩을 사용합니다. 그러나 서버 컨테이너 (Tomcat 등) 또는 프레임 워크 (Spring 등)는 주석을 확인하기 위해 클래스 검색을 수행 할 수 있으므로 실제로 사용되기 전에 클래스가로드 될 수 있습니다. 필요한 라이브러리가 모두 있기 때문에 일반적으로 문제가되지 않습니다. 전체 Java API를 지원하지 않기 때문에 Android에서는 그렇지 않을 수 있습니다. –