2016-11-16 6 views
-1

이 SunOne Directory Server에 연결되는 LDAP 클라이언트를 작성하는 응용 프로그램을 만듭니다. 사용자는 속성을 입력하고 유형을 선택하고 값을 입력하면 내 응용 프로그램이 SunOne에서 해당 사용자를 생성합니다.'homePhone'속성 값의 형식이 잘못되었습니다.

javax.naming.directory.InvalidAttributeValueException: Malformed 'homePhone' attribute value; remaining name 'cn=Identity3,ou=SunOU' 

동일한 코드는 I 사용이 사용자를 만들 수이다

for(...) 
{ 
    String attrName = attrRequest.getName(); 
    Object attrVal = attrRequest.getValue(); 
    BasicAttribute attribute = getBasicAttribute(attrName, attrVal); 
    attrs.put(attribute); 
} 

ldapCtx.bind(objectDN,null,attrs); 

사용자 Integer 같은 homePhone 입력을 선택하고 22334546로 값을 입력 할 때, 아래의 예외 실패

이다 Apache 디렉토리 Studio

enter image description here

답변

0

일반적으로 전화 번호는 정수가 아닌 문자열입니다. RFC 4517은 전화 번호를 정식 형식 (예 : E.123 international)으로 저장하도록 권장합니다. 속성 homePhone의 "전화 번호"구문은 LDAP 스키마에서 구성되며 기본적으로 적용됩니다. 그러나 구성을 변경할 수는 있습니다.

자신의 Java 프로그램과 Apache Directory Studio가 동일한 LDAP 서버 인스턴스에 연결하는 경우 구문은 서버가 아닌 클라이언트가 시행하므로 동일한 것으로 간주해야합니다. 그리고 22334546이 허용 가능한 값이기 때문에 Apache Directory Studio는 성공합니다.

오류가 귀하의 코드에있는 것 같습니다. 주로 attrVal이 올바른 값을 갖고 있지 않습니다.