Hi,
I'm trying to add a simple resource to the REST API but I cannot get
access to it.
First I wrote a new resouce class:
package org.sipfoundry.sipxconfig.rest;
import static org.restlet.data.MediaType.TEXT_XML;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.restlet.Context;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.restlet.resource.Representation;
import org.restlet.resource.Resource;
import org.restlet.resource.ResourceException;
import org.restlet.resource.Variant;
import org.sipfoundry.sipxconfig.admin.callgroup.CallGroup;
import org.sipfoundry.sipxconfig.common.SipxHibernateDaoSupport;
public class CallGroupResource extends Resource {
private static final String QUERY_CALL_GROUP_IDS_WITH_ALIAS =
"callGroupIdsWithAlias";
private CallGroup m_callGroup;
@Override
public void init(Context context, Request request, Response response) {
super.init(context, request, response);
String name = (String) getRequest().getAttributes().get("name");
PrivateCallGroupFinder finder = new PrivateCallGroupFinder();
m_callGroup = finder.getCallGroup("TestGruppe3");
if (m_callGroup == null) {
//setAvailable(false);
}
getVariants().add(new Variant(TEXT_XML));
}
@Override
public Representation represent(Variant variant) throws
ResourceException {
if (TEXT_XML.equals(variant.getMediaType())) {
return new Dom4jRepresentation(getCallGroupXml());
}
return new Dom4jRepresentation(getCallGroupXml());
}
static Document getCallGroupXml() {
DocumentFactory factory = DocumentFactory.getInstance();
Document document = factory.createDocument();
Element rootItem = document.addElement("callGroupTest");
return document;
}
static class PrivateCallGroupFinder extends SipxHibernateDaoSupport{
public CallGroup getCallGroup(String name){
List ids =
getHibernateTemplate().findByNamedQueryAndNamedParam(QUERY_CALL_GROUP_IDS_WITH_ALIAS,
"value", name);
CallGroup cg = (CallGroup)
getHibernateTemplate().load(CallGroup.class, (Integer)ids.get(0));
return cg;
}
}
}
After that I added the resouce to rest.beans.xml:
<bean id="callGroupResource"
class="org.sipfoundry.sipxconfig.rest.CallGroupResource" scope="prototype">
<property name="callGroup" ref="callGroup" />
<property name="modifiable" value="false" />
</bean>
<alias name="callGroupResource" alias="/callgroup" />
Then I ran "ant install" from sipXconfig directory but I always get
error 404:
<html>
<head>
<title>Error 404 The server has not found anything matching the request
URI</title>
</head>
<body>
<h2>HTTP ERROR: 404</h2>
<pre>The server has not found anything matching the request URI</pre>
<p>RequestURI=/sipxconfig/rest/callgroup</p>
<p>
<i>
<small>
<a href="http://jetty.mortbay.org">Powered by Jetty://</a>
</small>
</i>
</p>
</body>
</html>
Is there anything I forgot or did wrong?
Regards
Stephan
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev/