Как было указано, вы можете начать с использования JavaScript вместо Java. Кроме того, я заметил, что вы создаете новый объект JSON в своем коде, но я не уверен, почему.
Например, при использовании JavaScript веб-скрипт, который принимает имя папки, которая будет создана в домашнем офисе компании, может иметь контроллер, который будет выглядеть следующим образом:
function main() {
var folderName = args.folderName;
if (folderName != null && folderName != "") {
// continue
} else {
status.setCode(500);
status.setMessage("Missing folder name argument");
status.setRedirect(true);
return;
}
var createdFolder = companyhome.createFolder(folderName);
model.createdFolder = createdFolder;
}
main();
Код ищет переданный ему аргумент с именем folderName, а затем использует встроенную корневую переменную «companyhome» для создания новой папки. Затем он передает вновь созданный узел папки в модель, чтобы некоторые данные о новом узле могли быть возвращены пользователю.
Имя контроллера JavaScript (показанного выше) - createFolder.post.js. Я зарегистрировал его в хранилище в разделе Словарь данных / Веб-сценарии / пример. Наряду с этим я зарегистрировал файл с именем createFolder.post.desc.xml, который является дескриптором веб-скрипта:
<webscript>
<shortname>Create folder example</shortname>
<description>
<![CDATA[
Creates a new folder in Company Home using the name specified in the folderName argument.
]]>
</description>
<url>/example/createFolder?folderName={folderName}</url>
<format default="html">argument</format>
<authentication>user</authentication>
<transaction>required</transaction>
<family>Example</family>
</webscript>
И файл с именем createFolder.post.html.ftl, который является HTML-версией представления веб-скрипта:
<html>
<head>
<title>Create folder web script</title>
</head>
<body>
Successfully created a folder with the following metadata:<br />
Name: ${createdFolder.name}<br />
ID: ${createdFolder.id}<br />
Noderef: ${createdFolder.nodeRef}<br />
</body>
</html>
После регистрации я обновил индекс веб-скриптов, перейдя на http://localhost:8080/alfresco/s/index и нажав кнопку "обновить веб-скрипты".
Затем я вызвал веб-скрипт, используя CuRL, например:
curl -uadmin:admin -X POST "http://localhost:8080/alfresco/s/example/createFolder?folderName=foobar"
Вы заметите, что я решил, чтобы мой веб-скрипт принимал POST. Если вы хотите использовать другой метод HTTP, вы просто измените имена файлов соответственно.
Jeff