ldap修改节点属性问题 传入空字符串报错

问题描述

我使用两种方式修改用户属性当传入的属性为空字符串时就抱错请高手看看这是什么原因不然设置不了空值javax.naming.directory.InvalidAttributeValueException:[LDAP:errorcode21-00000057:LdapErr:DSID-0C090A85,comment:Errorinattributeconversionoperation,data0,vece]remainingname'CN=,OU=,OU=,OU=,DC=,DC='2011-7-1310:50:51dao.impl.UserDaoImpleditUsers严重:null方式1Attributesattrs=newBasicAttributes();if(user.getTelephone()!=null&&!"".equals(user.getTelephone())){attrs.put(newBasicAttribute("telephoneNumber",user.getTelephone()));}if(user.getMobile()!=null&&!"".equals(user.getMobile())){attrs.put(newBasicAttribute("mobile",user.getMobile()));}if(user.getFax()!=null&&!"".equals(user.getFax())){attrs.put(newBasicAttribute("facsimileTelephoneNumber",user.getFax()));}if(user.getPosition()!=null&&!"".equals(user.getPosition())){attrs.put(newBasicAttribute("title",user.getPosition()));}if(user.getAddress()!=null&&!"".equals(user.getAddress())){attrs.put(newBasicAttribute("physicalDeliveryOfficeName",user.getAddress()));}ldcx.modifyAttributes(user.getDisName(),DirContext.REPLACE_ATTRIBUTE,attrs);returntrue;方式2ModificationItem[]mods=newModificationItem[5];//DirContext.REPLACE_ATTRIBUTE修改属性//newBasicAttribute("telephoneNumber",user.getTelephone())修改//把user的属性不为空的加入修改//否则报错javax.naming.directory.InvalidAttributeValueException:mods[i]=newModificationItem(DirContext.REPLACE_ATTRIBUTE,newBasicAttribute("telephoneNumber",user.getTelephone()));mods[i]=newModificationItem(DirContext.REPLACE_ATTRIBUTE,newBasicAttribute("mobile",user.getMobile()));mods[i]=newModificationItem(DirContext.REPLACE_ATTRIBUTE,newBasicAttribute("facsimileTelephoneNumber",user.getFax()));mods[i]=newModificationItem(DirContext.REPLACE_ATTRIBUTE,newBasicAttribute("title",user.getPosition()));mods[i]=newModificationItem(DirContext.REPLACE_ATTRIBUTE,newBasicAttribute("physicalDeliveryOfficeName",user.getAddress()));//执行修改//ldcx.modifyAttributes(user.getDisName(),DirContext.REPLACE_ATTRIBUTE,mods);

时间: 2024-09-17 03:28:23

ldap修改节点属性问题 传入空字符串报错的相关文章

ad-Java ldap修改AD属性报错

问题描述 Java ldap修改AD属性报错 用Java ldap做一个域用户某一个属性信息修改功能 LdapContext ctx = xxx; 已经用域管理用户连接上了,没问题. ModificationItem modificationItem[] =new ModificationItem[1]; modificationItem[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("empl

XML文件修改节点属性值(多种方法)_实用技巧

xml 文件内容: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <subtitles> <info> <content>最新通告:五一放假七天!请各教员悉知</content> <speed>4</speed> <color>red</color> </info> </subtitles

MongoDB 复制集节点增加移除及节点属性配置

复制集(replica Set)或者副本集是MongoDB的核心高可用特性之一,它基于主节点的oplog日志持续传送到辅助节点,并重放得以实现主从节点一致.再结合心跳机制,当感知到主节点不可访问或宕机的情形下,辅助节点通过选举机制来从剩余的辅助节点中推选一个新的主节点从而实现自动切换.对于一个已经存在的MongoDB Replica Set集群,可以对其进行节点的增加,删除,以及修改节点属性等等.本文即是围绕这些进行描述. 有关MongoDB复制集概念及其搭建,可以参考:MongoDB 复制集(

阿里云如何使用修改专有网络属性接口

修改专有网络属性 描述 修改指定 VPC 的属性 请求参数 名称 类型 是否必须 描述 Action String 是 系统规定参数,取值:ModifyVpcAttribute VpcId String 是 需要修改的 VPC 的 Id VpcName String 否 修改后的名字,不填则为空,默认值为空,[2, 128] 英文或中文字符,必须以大小字母或中文开头,可包含数字,"_"或"-",这个值会展示在控制台.不能以 http:// 和 https:// 开头

阿里云如何使用修改实例属性接口

修改实例属性 描述 修改实例密码.实例名称.安全组等属性信息. 此操作只修改参数中显式指定了的属性,没有指定的属性将不会发生改变. 重置实例的密码,状态为 Deleted 或 Starting 的实例不可以进行此操作.重置密码需要重启实例后才能生效. 被安全控制在实例的 OperationLocks 中标记了 "LockReason" : "security"的锁定状态时,不能修改密码. 请求参数 名称 类型 是否必须 描述 Action String 是 系统规定

jQuery修改class属性和CSS样式整理_jquery

class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔. 具体使用方法见:http://www.w3school.com.cn/css/css_selector_class.asp   用jQuery进行类名修改既可以用attr()方法修改"class"属性,也可以用addClass(), rem

sql-T-SQL修改字段属性,求指教,急!!

问题描述 T-SQL修改字段属性,求指教,急!! 表已经建好,存在很多外键关系,删除不方便,由于逻辑问题,必须将表中的 PI_ClassInfoCI_StartTime_Date DATETIME NOT NULLCI_EndTime_Date DATETIME NOT NULL 改为 CI_StartTime_VarC VARCHAR(16) NOT NULLCI_EndTime__VarC VARCHAR(16) NOT NULL 求语句 解决方案 在Management Studio中,右

js-在foreach标签中修改style属性

问题描述 在foreach标签中修改style属性 代码: html <body onload="test();"> <form name="f1" method="post" action=""> <c:forEach items="${list}" varStatus="state" var="dto"> <input s

Domino下通过代理公式批量修改用户属性值

Domino下通过代理公式批量修改用户属性值---勾选强制用户在下次登陆时更改Internet口令选项 我们大家都知道目前在windows下最常用的两套邮件系统是Mircrosoft Exchange和IBM Lotus,Microsoft Exchange使用起来比较方便,管理也比较方便,我们都知道Microsoft Exchange是跟域集成的,以至邮箱账户信息跟域账户登陆验证信息也就统一了;而IBM Lotus就不一样了,跟域不集成,如果在域环境下部署,会有产生两套信息系统,域账户跟邮箱账