I am following the alfresco wiki's guide to java backed webscripts and cannot get it to work. What's worse, I cannot get as far as generating errors in the logs or otherwise, or a webscript listing in <alfresco>/alfresco/service/index/all.Other than the wiki example, I am not using an AMP but a jar for my classes. This is because I am bound to adding my webscripts to an existing app that currently builds to a jar.As far as I understand, there are three major steps in creating a java backed webscript:<ol><li>Create the java class</li><li>Register the bean</li><li>Place the descriptor</li></ol>I implemented this as follows. File locations are relative to the jar's root.<strong>nl/mark/alfresco/myservice/webscript/GetFooTypes.java</strong>
package nl.mark.alfresco.myservice.webscript;
import java.util.HashMap;
import java.util.Map;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptRequest;
public class GetFooTypes extends DeclarativeWebScript {
@Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status) {
Map<String, Object> model = new HashMap<String, Object>();
model.put("types", "[\"foo\", \"bar\"]");
return model;
}
}
<strong>alfresco/extension/templates/webscripts/nl/mark/cacher/footype.desc.xml</strong>
<webscript>
<shortname>Retrieve a list of foo types associated to a bar type.</shortname>
<description>Returns an empty JSON array or a JSON array filled with foo types as Strings, named 'types'.</description>
<url>/mark/cacher/footype?typecode={code}</url>
<authentication>user</authentication>
<family>Mark cacher</family>
</webscript>
<strong>alfresco/extension/mark-context.xml</strong>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!– Java backed webscripts –>
<bean id="webscript.nl.mark.cacher.footype.get" class="nl.mark.alfresco.myservice.webscript.GetFooTypes"
parent="webscript">
</bean>
</beans>
Finally, this jar is placed in alfresco's WEB-INF/lib folder after which the server is restarted. However, the webscript is not available under its URL (404), and I find no mention of anything related in the (awefully clean) logs. It's also not listed in the webscripts index, not even as failed to load. I feel like I am messing up file locations.