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/

Reply via email to