On 07/22/2013 12:17 PM, Piratenvisier wrote:
> 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)
>
>
Not sure but seems that he cannot resolve: return new
URLResponse("servlet:/controller/screen", data);
However that seems pretty much as the sample block.
Try just to start cocoon-rest-optional and do mvn clean install jetty:run
I just added a small sample (I consider it quite clean) to use a
pipeline in your java code.
HTH
salu2
--
Thorsten Scherler <scherler.at.gmail.com>
codeBusters S.L. - web based systems
<consulting, training and solutions>
http://www.codebusters.es/