Как вызвать обработчик формы с помощью ATG REST Client
Я пытаюсь вызвать дескриптор создания ProfileFormHandler с помощью клиента отдыха ATG, как показано ниже.
mSession = RestSession.createSession(mHost, mPort,"kim@example.com","password");
mSession.setUseHttpsForLogin(false);
mSession.login();
Map<String,Object> params = new HashMap<String,Object>();
params.put("value.login", "buddha@oracle.com");
params.put("value.email", "buddha@oracle.com");
params.put("value.password", "password");
RestResult result = RestComponentHelper.executeMethod("/atg/userprofiling/ProfileFormHandler","create",null,params,mSession);
Я получаю исключения формы, которые говорят, что я не передаю поля логина и пароля.
["Missing value for the required property Password",
"Missing value for the required property Login name"]
Я перепробовал все комбинации полей логина и пароля, например value.login
, Login
, login
, value.Login
и т. д., но ничего не получалось. Все комбинации дают одинаковые формы исключений.
Как вызвать обработчик формы ATG с помощью клиента ATG REST и передать ему параметры?
2 ответа
Определенно нужно больше информации, но, глядя на ваш код, я вижу, что у вас есть value.login
который не настроен ootb и считаю, что это вызывает NPE. Предполагая, что вы не настроили ootb ATG RegistrationFormHandler и обязательное поле в хранилище, единственными значениями, которые необходимо передать обработчику формы, являются:
- value.email
- value.password
- value.confirmPassword
- value.firstName
- value.lastName
Кроме того, в справке указывается, что тип данных value
собственность должна быть java.util.Dictionary
Добавьте следующее в /atg/rest/security/restSecurityConfiguration.xml
<resource component="/atg/userprofiling/ProfileFormHandler" secure="false">
<method name="handleCreate" secure="false">
<acl value="EVERYONE:read,write,execute" />
</method>
<property name="value.login" secure="false" />
<property name="value.password" secure="false" />
</resource>