There are a couple of things that may not be right.
1. You need to set the userPrincipalName attribute. At the
same time, set the sAMAccountName attribute. userPrincipalName is
generally the email address. firstname.lastname@example.org. sAMAccountName is
just the username part of the email address.
2. You need to call the de.setInfo() method after setting the
userPrincipalName, but BEFORE setting the password. This actually
creates the directory object. You can't set a password on an object
that doesn't yet exist in the directory.