You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@abdera.apache.org by pratimat <pt...@yahoo.com> on 2008/09/03 06:32:59 UTC
Unable to retrieve service document - Abdera server on tomcat
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/Unable-to-retrieve-service-document---Abdera-server-on-tomcat-tp19282771p19282771.html
Sent from the abdera-user mailing list archive at Nabble.com.