I have some problem getting the Restexample running:
In the pom I have :
<dependency>
<groupId>org.apache.cocoon.pipeline</groupId>
<artifactId>cocoon-pipeline</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon.databases</groupId>
<artifactId>cocoon-databases</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon.sax</groupId>
<artifactId>cocoon-sax</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon.rest</groupId>
<artifactId>cocoon-rest</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon.stringtemplate</groupId>
<artifactId>cocoon-stringtemplate</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon.wicket</groupId>
<artifactId>cocoon-wicket</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon.optional</groupId>
<artifactId>cocoon-optional</artifactId>
<version>${cocoon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-serializers-charsets</artifactId>
<version>${cocoon.serializers.charset.version}</version>
</dependency>
</dependencies>
my sitemap includes :
<map:pipeline>
<map:match pattern="controller/{id}/{name}">
<controller:call controller="rest-controller"
select="org.apache.cocoon.sample.controller.DemoRESTController">
<map:parameter name="id" value="{map:id}" />
<map:parameter name="name" value="{map:name}" />
</controller:call>
</map:match>
</map:pipeline>
<map:pipeline type="noncaching">
<map:match pattern="controller/screen">
<map:generate src="controller/demo.html"
type="controller-aware-string-template" />
<map:serialize type="xml" status-code="202" />
</map:match>
</map:pipeline>
I included cocoon-sample-controller.xml :
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
">
<!-- Scan for all REST controllers and make them as beans available -->
<context:component-scan
base-package="org.apache.cocoon.sample.controller"
use-default-filters="false"
name-generator="org.apache.cocoon.rest.controller.ControllerBeanNameGenerator"
scope-resolver="org.apache.cocoon.rest.controller.ControllerBeanScopeResolver">
<context:include-filter type="annotation"
expression="org.apache.cocoon.rest.controller.annotation.RESTController"
/>
</context:component-scan>
<context:annotation-config />
<bean id="org.apache.cocoon.sample.controller.aspect1"
class="org.apache.cocoon.sample.controller.DemoRESTControllerAspect1" />
<bean id="org.apache.cocoon.sample.controller.aspect2"
class="org.apache.cocoon.sample.controller.DemoRESTControllerAspect2" />
</beans>
and cocoon-sample-servlet-service.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:servlet="http://cocoon.apache.org/schema/servlet"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cocoon.apache.org/schema/servlet
http://cocoon.apache.org/schema/servlet/cocoon-servlet-1.0.xsd">
<!-- A Cocoon-Sitemap based servlet-service. -->
<bean id="org.apache.cocoon.sample.servlet"
class="org.apache.cocoon.servlet.XMLSitemapServlet">
here I am not sure if I did this the right way:
<servlet:context mount-path=""
context-path="jar:classpath:/WEB-INF/lib/cocoon-servlet-3.0.0-beta-1-SNAPSHOT!/webapp/"/>
</bean>
<!-- A servlet-service that exposes JAX-RS REST endpoints. -->
<!-- <bean id="org.apache.cocoon.sample.rest.servlet"
class="org.apache.cocoon.rest.jaxrs.container.CocoonJAXRSServlet">
<servlet:context mount-path="/jax-rs"
context-path="jar:classpath:lib/${project.build.finalName}.jar!/COB-INF/">
<servlet:connections>
<entry key="sample"
value-ref="org.apache.cocoon.sample.servlet" />
</servlet:connections>
</servlet:context>
<property name="restResourcesList">
<list>
<ref bean="org.apache.cocoon.sample.rest.resource.one" />
<ref bean="org.apache.cocoon.sample.rest.resource.two" />
</list>
</property>
</bean>-->
</beans>
in web.xml the only part of importance is :
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/applicationContext-resources.xml
classpath:/applicationContext-dao.xml
classpath:/applicationContext-service.xml
/WEB-INF/applicationContext*.xml
/WEB-INF/cocoon-sample-*.xml
</param-value>
</context-param>
I get the error:
java.net.MalformedURLException: unknown protocol: servlet at
java.net.URL.<init>(URL.java:592) at
java.net.URL.<init>(URL.java:482) at
java.net.URL.<init>(URL.java:431) at
org.apache.cocoon.rest.controller.response.URLResponse.<init>(URLResponse.java:49)
at
org.apache.cocoon.sample.controller.DemoRESTController.doGet(DemoRESTController.java:54)