摘录了几篇文章下来,感觉这位作者写得很详细明了!
http://tag.csdn.net/tag/Cocoon/8.html
http://tag.csdn.net/Article/bd989a60-6d43-4f31-aa4c-aee33100c6cb.html
http://blog.csdn.net/wuyou/archive/2004/11/20/188301.aspx
http://blog.csdn.net/junnef/archive/2003/11/27/10283.aspx
作者tag: java CSDN 推荐tag: 安装 版本 编译 下载 文件夹 文件 tomcat jakarta sdk apache 学习 xml <script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
Author:Junnef Jin
Date: 2003/11/25
E_mail:junnef21@sohu.com
Blog:http://blog.csdn.net/junnef
声明:本人保留本文的所有权利。
最近在学XML,而说起XML在java中的实际应用,就不能不提到COCOON,在国外已经有了很多使用COCOON1做得网站,而且非常成功。COCOON之于XML就象STRUTS之于JSP一样,随着XML的流行,并将也会成为热门的开发框架。不过国内基于COCOON的中文资料相当的少,所以在学习中也遇到了不少困难,特别是在开始的时候。这里是我的一些经验,写出来,希望对大家能够有所帮助,能有更多的人来共同学习应用COCOON。
开发环境, win2000;开发工具,任意文本编辑器,这里用XMLSpy 2004专业版+EditPlus2.11。
开发前的准备工作:
1、 下载Aapache Cocoon2.1.3的安装文件
下载网址:http://cocoon.apache.org/mirror.cgi,这里我们下载source包,就是名称中带有src标志的那个包,自己编译产生部署文件。
2、下载Jakarta Tomcat5.0的安装文件
下载网址:http://jakarta.apache.org/site/binindex.cgi,当前用的是5.0版本,使用5.1.4版本也没有太大的差别,不会影响下面的过程。
3、下载jsdk1.4.2版本
下载网址:http://java.sun.com/downloads/,也可以下载最新的版本,只要你的机器上编译和运行时环境(jre)都是一个jsdk版本的就行了。
在tomcat下配置cocoon2:
4、 安装jsdk1.4.2
这里我们安装至c:/j2sdk目录下,并设置环境变量JAVA_HOME=c:/j2sdk,在CLASSPATH中加入c:/j2sdk/tool.jar,在PATH中加入c:/j2sdk/bin。
5、 安装Jakarta Tomcat5.0
这里我们安装至c:/tomcat50目录下,并设置环境变量CATALINA_HOME=c:/tomcat50。
6、 装Apache Cocoon
将Apache Cocoon2.1.3的压缩包,解压到c:/下,重命名为cocoon,我们这里假定COCOON2_HOME=c:/cocoon。
7、 建Apache Cocoon 2 的web服务包(以前版本生成的cocoon.war包)
打开命令行窗口,进入COCOON2_HOME目录,运行如下命令:
build.bat –Dinclude.webapp.libs=yes webapp
注:此处可能会出现错误,可能会说找不到某些包,这时你可以把他们设置进classpath中试一试,如果缺少某些包,你又找不到可以去google搜一下,到相应的网站下载。
最后将出现:
BUILD SUCCESSFUL
Total time: 6 minutes 22 seconds
表示编译成功。在COCOON2_HOME/build/cocoon-2.1.3目录下可以找到cocoon.jar和另外两个jar文件,cocoon.jar中封装了cocoon2的基本库文件。
此时,我们会找不到cocoon.war包,而在COCOON2_HOME/build/文件夹下有一个文件夹webapp,这个文件夹中所放的就是以前cocoon.war包中的所有文件。确保tomcat服务关闭,将webapp文件夹拷贝至CATALINA_HOME/webapps下,并重命名为cocoon,启动tomcat服务器。
8、 测试服务是否可以运行
打开IE浏览器,并输入http://localhost:8080/cocoon/,第一次运行将会比较慢,因为tomcat需要对一些文件进行处理,以后会比较快。
如果可以正常运行,则显示如下页面:
看到上面的画面表示安装成功,我们可以点击sample链接,学习cocoon给我们提供的一些例程,可以给我们一个很直观的印象,对cocoon的强大功能也可以有一个初步的认识,那个hello world例程特别值得研究,那个例程是一个用cocoon开发很典型的开发架构模式。
注:这是可能有版本冲突,特别是直接装cocoon.war包时,如你以前装有的例如xalan等的版本与当前版本不同等等,,这时就要卸载以前的版本;如果你下载的是二进制的包,就是已经有了cocoon.war包,不是你当前编译的,如果你当前的jsdk与发行编译时的jdk版本不同,可能你在后面部署这个包后,也不能正常运行,所以强烈建议下载source版本,用当前机器所配置的jdk编译。
如果你可以看到页面,在如下的地址,你可以看到Cocoon所用到的工具包列表:http://localhost:8080/cocoon/docs/installing/jars.html
(未完待续)
作者tag: java CSDN 推荐tag: xsl template 文件夹 文件 tomcat apache html <script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
Author:Junnef Jin
Date: 2003/11/25
E_mail:junnef21@sohu.com
Blog:http://blog.csdn.net/junnef
声明:本人保留本文的所有权利。
开发一个简单的程序:
下面我们来开发一个简单的程序,这个例子参考了Cocoon帮助文档中的一个例子,如果你已经按照Jakarta Tomcat5.0+Apache Cocoon2.1.3开发初步指南一--安装篇做了,那么通过下面的链接可以看到英文原例:
http://localhost:8080/cocoon/docs/howto/howto-html-pdf-publishing.html
下面一步一步来创建这个程序。
9、创建程序目录
在部署到Tomcat中的那个cocoon文件夹下,新建一个目录,命名为html-pdf。
10、创建XML文档
在html-pdf文件夹下创建如下两个文件:
pageOne.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<page>
<title>This is the pageOne.xml example</title>
<s1 title="Section one">
<p>This is the text of section one</p>
</s1>
</page>
pageTwo.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<page>
<title>This is the pageTwo.xml example</title>
<s1 title="Yes, it works">
<p>Now you're hopefully seeing pageTwo in HTML or PDF</p>
</s1>
</page>
11、为HTML文件创建XSLT转换器
在html-pdf文件夹下创建
doc2html.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- generate HTML skeleton on root element -->
<xsl:template match="/">
<html>
<head>
<title><xsl:apply-templates select="page/title"/></title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<!-- story is used later by the Meerkat example -->
<xsl:template match="p|story">
<p><xsl:apply-templates/></p>
</xsl:template>
<!-- convert sections to HTML headings -->
<xsl:template match="s1">
<h1><xsl:apply-templates select="@title"/></h1>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
12、创建站点地图文件
这个文件是cocoon2中的两个重要配置文件之一,且必须命名为sitemap.xmap,放到该模块的根目录下,这里,放到html-pdf下,文件内容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- define the Cocoon processing pipelines -->
<map:pipelines>
<map:pipeline>
<!-- respond to *.html requests with
our docs processed by doc2html.xsl -->
<map:match pattern="*.html">
<map:generate src="{1}.xml"/>
<map:transform src="doc2html.xsl"/>
<map:serialize type="html"/>
</map:match>
<!-- later, respond to *.pdf requests with
our docs processed by doc2pdf.xsl -->
<map:match pattern="*.pdf">
<map:generate src="{1}.xml"/>
<map:transform src="doc2pdf.xsl"/>
<map:serialize type="fo2pdf"/>
</map:match>
</map:pipeline>
</map:pipelines>
</map:sitemap>
13、现在可以测试我们程序的HTML版面了
在IE地址栏中输入下面的链接,将会看到如图所示的页面
http://localhost:8080/cocoon/html-pdf/pageOne.html
http://localhost:8080/cocoon/html-pdf/pageTwo.html
高兴吧,刚开始而已,下面我们会有更多的收获。
待续。
作者tag:java CSDN 推荐tag:.net ai blog coding com html oo orm sa xml xslt
<script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>Author:JunsanJin
Date: 2003/11/25
E_mail:junnef21@sohu.com
主页:http://www.inspiresky.com
Blog:http://blog.csdn.net/junnef
声明:本人保留本文的所有权利。
14、创建PDF的XSLT转换器
在html-pdf文件夹下创建一个文件名为doc2pdf.xsl的文件,内容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
>
<!-- generate PDF page structure -->
<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:flow flow-name="xsl-region-body">
<fo:block><xsl:apply-templates/></fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<!-- process paragraphs -->
<xsl:template match="p">
<fo:block><xsl:apply-templates/></fo:block>
</xsl:template>
<!-- convert sections to XSL-FO headings -->
<xsl:template match="s1">
<fo:block font-size="24pt" color="red" font-weight="bold">
<xsl:apply-templates select="@title"/>
</fo:block>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
其实这就是所谓的XML FO文件了,W3C所定制的XSL标准中的一个,另外两个是XSLT和Xpath。我们这里转换XML文档到PDF主要靠它的定义,如果感兴趣的话可以去查一下相关的资料,学习一下。同时,我们还要顺便指出一下,这里从XML到PDF的转变,还借助了一个工具,那就是Apache XML Projects八大开源项目中的另外一个FOP,感兴趣的话,可以去http://xml.apache.org/fop/index.html看看,cocoon2.1.3带有FOP。
这里提纲式的介绍一下Apache XML Projects的组成:
(1) Xerces XML的解析器。
(2) Xalan XSLT样式处理器。
(3) Cocoon 基于XML的web出版框架。
(4) FOP 使用java编写的XSL FO应用工具,可以将XSL FO文件转换为PDF文件。
(5) Xang 使用JavaScript快速开发动Server Pages的技术。
(6) SOAP 实现了W3C的同名标准-简单对象访问协议。
(7) Batik 基于java的针对SVG标准开发的工具包。
(8) Crimson 源于Sun Project X Parser的Java XML解析器,功能相对简单。
可以访问下面的网站获得更多的信息:
15、测试我们的PDF文档
终于到了最激动人心的时刻,输入链接你会看到如下的页面:
http://localhost:8080/cocoon/html-pdf/pageOne.pdf
http://localhost:8080/cocoon/html-pdf/pageTwo.pdf
pdf文档看起来比html漂亮多了,记得别忘了安装Adobe Reader,否则你就无法看到了。
到此,我们对cocoon2应该有了一个初步的认识,如XSP编程,这里都没有涉及,更多的东西都在cocoon的帮助文档中,大家深入研究一下将会有更大的收获。
附录:一些资源网址
http://cocoon.apache.org/2.1/index.html cocoon的官方网站。
http://wiki.cocoondev.org/Wiki.jsp?page=HowTos 一个How-To网站。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=10285