axis2 客户端用户名密码

axis2客户端调用的时候需要设置用户名密码,在网上搜了下,发现了3种方式,其中方法1我调用成功了,2、3都认证失败,有没有高手帮忙解释下3面3种写法:
1、

HttpTransportProperties.Authenticator auth = new Authenticator();
auth.setUsername(userName);
auth.setPassword(password);
stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
2、
stub._getServiceClient().getOptions().setUserName(userName);
stub._getServiceClient().getOptions().setPassword(password);
3、
OMFactory fac = OMAbstractFactory.getOMFactory();

OMElement header = fac.createOMElement("AuthenticationToken", omNs);

OMElement ome_user = fac.createOMElement("Username", omNs);

ome_user.setText("");

header.addChild(ome_user);

OMElement ome_pass = fac.createOMElement("Password", omNs);

ome_pass.setText("");

header.addChild(ome_pass);

serviceClient.addHeader(header);