A couple of things are different from using cocoon 2.1 to cocoon 2.2. Compiling and rendering to a war file for use on tomcat is all done through maven2. The following is a summary that I have gone through and confirmed working as of the time of writing.
apt-get install maven2
mvn archetype:generate -DarchetypeCatalog=http://cocoon.apache.org
Define value for groupId: : local.cocoon Define value for artifactId: : myBlock1 Define value for version: 1.0-SNAPSHOT: : 1.0.0 Define value for package: : local.cocoon.myBlock1
cd myBlock1
mvn jetty:run
http://192.168.0.1:8888/myBlock1
vim src/main/resources/COB-INF/sitemap.xmap
throw the following inside the pipline tags
<map:match pattern="myFile.xml"> <map:generate src="myXmlFile.xml" type="file"/> <map:serialize type="xml"/> </map:match> <map:match pattern="myFile.html"> <map:generate src="myXmlFile.xml" type="file"/> <map:transform src="myHtmlFile.xslt" type="xslt"/> <map:serialize type="html"/> </map:match> <map:match pattern="myFile.pdf"> <map:generate src="myXmlFile.xml" type="file"/> <map:transform src="myPdfFile.xslt" type="xslt"/> <map:serialize type="fo2pdf"/> </map:match> create myXmlFile.xml in the same folder as sitemap vim src/main/resources/COB-INF/myXmlFile.xml <?xml version="1.0" encoding="UTF-8"?> <content>test</content> create myHtmlFile.xslt in the same folder as sitemap vim src/main/resources/COB-INF/myHtmlFile.xslt <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <title>My second XML Pipeline</title> </head> <body> My second XML Pipeline: <xsl:value-of select="/content"/> </body> </html> </xsl:template> </xsl:stylesheet> create myPdfFile.xslt in the same folder as sitemap vim src/main/resources/COB-INF/myPdfFile.xslt <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="page" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm"> <fo:region-before extent="3cm"/> <fo:region-body margin-top="3cm"/> <fo:region-after extent="1.5cm"/> </fo:simple-page-master> <fo:page-sequence-master master-name="all"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference master-reference="page" page-position="first"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> </fo:layout-master-set> <fo:page-sequence master-reference="all"> <fo:static-content flow-name="xsl-region-after"> <fo:block text-align="center" font-size="10pt" font-family="serif" line-height="14pt">page <fo:page-number/></fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block font-size="36pt" space-before.optimum="24pt" text-align="center"> My second XML Pipeline </fo:block> <fo:block font-size="12pt" space-before.optimum="12pt" text-align="center"> <xsl:value-of select="/content"/> </fo:block> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> </xsl:stylesheet> edit pom.xml to include FOP vim pom.xml <dependency> <groupId>org.apache.cocoon</groupId> <artifactId>cocoon-fop-impl</artifactId> <version>1.0.0</version> </dependency> mvn compile mvn install cd ..
mvn archetype:generate -DarchetypeCatalog=http://cocoon.apache.org
Define value for groupId: : local.cocoon
Define value for artifactId: : cocoon-webapp
Define value for version: 1.0-SNAPSHOT: : 1.0.0
Define value for package: : local.cocoon.cocoon-webapp
cd cocoon-webapp vim pom.xml add the dependancy <dependency> <groupId>local.cocoon/groupId> <artifactId>myBlock1</artifactId> <version>1.0.0</version> </dependency>
mvn compile
mvn war:war
cd target
upload this war file to your tomcat server.
load the following url
http://192.168.0.1:8180/cocoon-webapp-1.0.0/myBlock1/myFile.pdf
http://192.168.0.1:8180/cocoon-webapp-1.0.0/myBlock1/myFile.html
http://192.168.0.1:8180/cocoon-webapp-1.0.0/myBlock1/myFile.xml
if all three loads, you have a dynamically generated pdf! (and html and xml)
next step is to force cocoon to retrieve the files remotely, by doing so, the content can be retrieved from a database of choice using your own desirable programming language of choice! In my case php+postgres/mysql and .net+sql/access
Leave a Reply