You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@abdera.apache.org by pratimat <pt...@yahoo.com> on 2008/09/03 01:03:02 UTC

Retrieving service document failing for AbderaServer

I wish to run ABDERA on TOMCAT. The thing runs correctly when i have Jetty as
well as tomcat.
But fails when i try to just use TOMCAT. This is what i have so far.
-------
web.xml
-------
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>AbderaServlet</servlet-name>
<servlet-class>org.apache.abdera.protocol.server.servlet.AbderaServlet</servlet-class>
<init-param>
<param-name>org.apache.abdera.protocol.server.Provider</param-name>
<param-value>AbderaServer.CustomProvider</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>AbderaServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>

-------------------
CustomProvider.java  [ This is CustomProvider from Abdera website ]
-------------------
public class CustomProvider extends AbstractWorkspaceProvider 
{
   
   public EmployeeCollectionAdapter ca = new EmployeeCollectionAdapter();
   
   public CustomProvider() 
   { 
     setTargetResolver(      
                        new RegexTargetResolver()
                           .setPattern("/services(\\?[^#]*)?",
TargetType.TYPE_SERVICE)
                           .setPattern("/services/([^/#?]+);categories",
TargetType.TYPE_CATEGORIES, "collection")
                           .setPattern("/services/([^/#?;]+)(\\?[^#]*)?",
TargetType.TYPE_COLLECTION, "collection")
                          
.setPattern("/services/([^/#?]+)/([^/#?]+)(\\?[^#]*)?",
TargetType.TYPE_ENTRY, "collection","entry")
                           .setPattern("/search",
OpenSearchFilter.TYPE_OPENSEARCH_DESCRIPTION)
                      );
		      .
		      .
		      .

     /* Adding my workspace information */
     SimpleWorkspaceInfo workspaceInfo = new SimpleWorkspaceInfo();
     workspaceInfo.setTitle("My Workspace");
     workspaceInfo.addCollection(ca);    
     addWorkspace(workspaceInfo); 
			   .
			   .
			   .
// End CustomProvider.java
}

------------------------------
EmployeeCollectionAdapter.java
------------------------------
public class EmployeeCollectionAdapter extends
AbstractEntityCollectionAdapter<Employee> {
	// Feed metadata
	// Entry metadata
	// Methods - PostEntry, PutEntry, DeleteEntry

}

-----------------------
SingletonAbdera.java
--------------------------

public class SingletonAbdera {
    
    private static Abdera abderaInstance = null;
    private static int instanceCounter = 0;
   
    /* Constructor */
    protected Client(){
    }
    
    public static synchronized Abdera getInstance() {
        if (abderaInstance == null) {
            abderaInstance = new Abdera(); instanceCounter++;
System.out.println("INSTANCE COUNTER FROM client.java: "+instanceCounter);
        }
        return abderaInstance;
    }
    
    public static synchronized UtilityObjects getUtilityObjects(Abdera
abderaInstance){
        UtilityObjects utilityObject = new UtilityObjects();
        utilityObject.setAbdera(abderaInstance);
        utilityObject.setAbderaClient(abderaInstance);
        utilityObject.setFactory(abderaInstance);
        utilityObject.setServiceDoc();
        return utilityObject;   
    }

}

-------------------
UtilityObjects.java
-------------------
public class UtilityObjects {
    private Abdera abderaUtilityObject;
    private AbderaClient abderaClientUtilityObject;
    private Service serviceDocumentUtilityObject;
    
    public Abdera getAbdera(){
        return abderaUtilityObject;
    }
    
    public void setAbdera(Abdera abdera){
        this.abderaUtilityObject = abdera;
    }
    
    public AbderaClient getAbderaClient(){
        return abderaClientUtilityObject;
    }
        
    public void setAbderaClient(Abdera abdera){
        this.abderaClientUtilityObject = new AbderaClient(abdera);   
    }
    
    public Service getServiceDoc(){
        return serviceDocumentUtilityObject;
    }
    
    public void setServiceDoc(){
        Document<Service> introspection =
this.abderaClientUtilityObject.get("http://localhost:8080/services").getDocument();
        this.serviceDocumentUtilityObject = introspection.getRoot();
    }
// End UtilityObjects.java   
  }




===============================================
 UtilityOnjects.java instance is used elsewhere.  
SingletonAbdera.java is used to get the abderInstance and the
abderaClientInstance
  [ Document<Service> introspection =
this.abderaClientUtilityObject.get("http://localhost:8080/services").getDocument();
] is   constantly throwing Null pointer Exception
  or some error. So, eventually
utilityObjectInstance.getServiceDoc().getCollection("My Workspace", "My
database") -FAILS.
  I should at least get the service document, and then i can proceed
further.

Can anyone please give suggestions here? 

Thanks.. 

			 

-- 
View this message in context: http://www.nabble.com/Retrieving-service-document-failing-for-AbderaServer-tp19280091p19280091.html
Sent from the abdera-dev mailing list archive at Nabble.com.