﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-叶明的javablog-随笔分类-JS</title><link>http://www.blogjava.net/guming123416/category/6972.html</link><description>java学习天堂,个人关于JAVA的论坛bbs.javaworker.cn,欢迎大家访问</description><language>zh-cn</language><lastBuildDate>Fri, 30 Mar 2007 06:54:08 GMT</lastBuildDate><pubDate>Fri, 30 Mar 2007 06:54:08 GMT</pubDate><ttl>60</ttl><item><title>eclipse搭配Resin开发Struts应用之环境篇 </title><link>http://www.blogjava.net/guming123416/archive/2007/03/30/107472.html</link><dc:creator>lovajava_ye</dc:creator><author>lovajava_ye</author><pubDate>Fri, 30 Mar 2007 06:27:00 GMT</pubDate><guid>http://www.blogjava.net/guming123416/archive/2007/03/30/107472.html</guid><wfw:comment>http://www.blogjava.net/guming123416/comments/107472.html</wfw:comment><comments>http://www.blogjava.net/guming123416/archive/2007/03/30/107472.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guming123416/comments/commentRss/107472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guming123416/services/trackbacks/107472.html</trackback:ping><description><![CDATA[大家都知道，无论是Eclipse还是Resin，它们在启动的时候都能自动寻找JDK路径，这里假设JDK路径为$JAVA_HOME。<br /><br />JDK下面有一个非常重要的目录，即： $JAVA_HOME/jre/lib，大家用得最普遍的就是$JAVA_HOME/jre/lib/ext目录（可以放置常用的JAR扩展包）了，我喜欢将jtds-1.2.jar文件拷贝到此目录下，当运行打包好的JAR时，不需要为每一个JAR配置数据库驱动加载路径（当然，你也可以将jtds-1.2.jar加入到系统环境变量中，只是你得Reboot your computer而已）。<br /><br />好了，下面言归正传，如果你用myeclipse配置了resin服务器，你会发现myeclipse并不能启动resin，而在控制台上打印出来的是resin.conf:241: Required file '\conf\app-default.xml' can not be read for resin:import.，很明显，是系统找不到app-default.xml'文件，而这个文件确实在$RESIN_HOME/conf/目录下，打开resin.conf，定位到133行，发现配置文件是这样的：&lt;resin:import path="${resin.home}/conf/app-default.xml"/&gt;，因为${resin.home}/就是Resin的当前目录，所以我们可以换成&lt;resin:import path="./conf/app-default.xml"/&gt;，再启动，OK。<br /><br />resin.conf里面还有一个地方比较有意思，且看211行代码：&lt;web-app-deploy path="webapps"/&gt;，系统配置的Web应用目录为$RESIN_HOME/webapps，而Eclipse工程发布后是在$RESIN_HOME/deploy，所以我们干脆就不用myeclipse里的站点发布功能，直接修改resin.conf文件，加载一个外部目录，将它手指向你的工程，找到如下代码（240行）&lt;web-app id="/" root-directory="webapps/ROOT"/&gt;，在后面加上&lt;web-app id="/import" root-directory="D:/eclipse/work/Import/WebRoot"/&gt;。<br /><br />好像问题还不止这么简单，因为我的D:/eclipse/work/Import/WebRoot工程是用Struts框架开发的，所有在resin启动import的时候，报了如下的错误：<br />javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl<br />XML解释器的错误，顺便在Google上一搜，找到了三种解决办法，受推荐的方案如下：<br />在 $JAVA_HOME/jre/lib目录下新建endorsed目录（如果没有的话），然后将你工程lib目录下的xercesImpl.jar拷贝到刚建的那个目录里面，问题即可解决。<br /><br />不推荐在$JAVA_HOME/jre/lib下面新建内容为javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl的jaxp.properties文件，当然，如果你准备强行这么干的话，你的Tomcat就只能暗无天日了。<br /><br /><br />下面是附加内容<br /><br />附一：Apache与Resin集成<br />1. 更改Apache的文档目录：在httpd.conf中找到DocumentRoot，将其后双引号中的内容换成"D:/HttpServer/webapps/"<br />2. 配置Apache的Resin模块：在httpd.conf最后添加如下代码<br />      LoadModule caucho_module "D:/HttpServer/resin/win32/apache-2.2/mod_caucho.dll"<br />      &lt;IfModule mod_caucho.c&gt;<br />        ResinConfigServer localhost 6800<br />        CauchoStatus yes<br />      &lt;/IfModule&gt;<br />3. 更改默认的访问文件：在httpd.conf中找到DirectoryIndex ，在其后添加index.jsp index.php<br />      注意：每个文件之间用空格间隔开<br />4. Resin虚拟目录配置：在resin.conf中找到如下行&lt;host id="" root-directory="."&gt;，然后加入<br />      &lt;web-app id="/import" root-directory="D:/HttpServer/webapps/import"/&gt;<br />      id为访问路径，root-directory为文档目录所在路径<br />5. 设置Resin为自启动：你必须先在系统环境变量中配置JAVA_HOME，然后在命令行窗口中进入Resin目录，输入httpd -install（安装Resin为Windows系统服务），httpd -remove（移除……）<br />经过以上步骤，Resin就可以监听处理所有Apache不能处理的文件，包括.jsp, .do及其它控制器路径，并同时解决了用80端口访问时图片相对路径不对的问题<br /><br />附二：Apache中加入PHP处理模块，并且屏蔽Resin3.1的PHP解释模块<br />1. 屏蔽resin的PHP处理模块：resin从3.0开始支持php，其3.1版本的PHP解释配置是在app-default.xml中（与resin.conf同一个目录），只要对servlet配置比较熟悉的都能在app-default.xml中轻易屏蔽PHP解释功能，打开app-default.xml后，用&lt;!--  --&gt;屏蔽如下代码即可：<br />      &lt;servlet servlet-name="resin-php"<br />           servlet-class="com.caucho.quercus.servlet.QuercusServlet"&gt;<br />      &lt;/servlet&gt;<br />      &lt;servlet-mapping url-pattern="*.php" servlet-name="resin-php"/&gt;<br />      &lt;welcome-file&gt;index.php&lt;/welcome-file&gt;<br />2. 配置Apache的PHP处理模块：在httpd.conf最后添加如下代码（我的PHP是装在D:/HttpServer/php5）<br />      ## Add php5 module<br />      LoadModule php5_module "D:/HttpServer/php5/php5apache2_2.dll"<br />      AddType application/x-httpd-php .php<br />      # Configure php.ini path<br />      PHPIniDir "D:/HttpServer/php5/" <br />呵呵，因为Resin的PHP配置不太熟悉，网上的资料也比较少，所以还是用了Apache+PHP的处理方式。<br /><img src ="http://www.blogjava.net/guming123416/aggbug/107472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guming123416/" target="_blank">lovajava_ye</a> 2007-03-30 14:27 <a href="http://www.blogjava.net/guming123416/archive/2007/03/30/107472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用实例说明如何用JavaScript生成XML </title><link>http://www.blogjava.net/guming123416/archive/2006/01/23/29006.html</link><dc:creator>lovajava_ye</dc:creator><author>lovajava_ye</author><pubDate>Mon, 23 Jan 2006 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/guming123416/archive/2006/01/23/29006.html</guid><wfw:comment>http://www.blogjava.net/guming123416/comments/29006.html</wfw:comment><comments>http://www.blogjava.net/guming123416/archive/2006/01/23/29006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/guming123416/comments/commentRss/29006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/guming123416/services/trackbacks/29006.html</trackback:ping><description><![CDATA[<FONT color=#993300 size=2>&lt;script language="javascript"&gt; <BR>&lt;!-- <BR>var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")&nbsp; <BR><BR><BR>//加载文档 <BR>//doc.load("b.xml"); <BR><BR>//创建文件头 <BR>var p = doc.createProcessingInstruction<BR>("xml","version=’’1.0’’&nbsp; <BR>encoding=’’gb2312’’"); <BR><BR>&nbsp;&nbsp;&nbsp; //添加文件头 <BR>&nbsp;&nbsp;&nbsp; doc.appendChild(p); <BR><BR>//用于直接加载时获得根接点 <BR>//var root = doc.documentElement; <BR><BR>//两种方式创建根接点 <BR>//&nbsp;&nbsp;&nbsp; var root = <BR>doc.createElement("students"); <BR>&nbsp;&nbsp;&nbsp; var root = doc.createNode(1,"students",""); <BR><BR>&nbsp;&nbsp;&nbsp; //创建子接点 <BR>&nbsp;&nbsp;&nbsp; var n = doc.createNode(1,"ttyp",""); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //指定子接点文本 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //n.text = " this is a test"; <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; //创建孙接点 <BR>&nbsp;&nbsp;&nbsp; var o = doc.createElement("sex"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o.text = "男";&nbsp;&nbsp;&nbsp; <BR>//指定其文本 <BR><BR>&nbsp;&nbsp;&nbsp; //创建属性 <BR>&nbsp;&nbsp;&nbsp; var r = doc.createAttribute("id"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r.value="test"; <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加属性 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n.setAttributeNode(r); <BR><BR>&nbsp;&nbsp;&nbsp; //创建第二个属性&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; var r1 = doc.createAttribute("class"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r1.value="tt"; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加属性 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n.setAttributeNode(r1); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //删除第二个属性 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n.removeAttribute("class"); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加孙接点 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n.appendChild(o); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加文本接点 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n.appendChild(doc.createTextNode<BR>("this is a text node.")); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加注释 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n.appendChild(doc.createComment<BR>("this is a comment\n")); <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加子接点 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root.appendChild(n); <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; //复制接点 <BR>&nbsp;&nbsp;&nbsp; var m = n.cloneNode(true); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root.appendChild(m); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //删除接点 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root.removeChild(root.childNodes(0)); <BR><BR>&nbsp;&nbsp;&nbsp; //创建数据段 <BR>&nbsp;&nbsp;&nbsp; var c = doc.createCDATASection<BR>("this is a cdata"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.text = "hi,cdata"; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加数据段 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root.appendChild(c); <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; //添加根接点 <BR>&nbsp;&nbsp;&nbsp; doc.appendChild(root); <BR><BR>&nbsp;&nbsp;&nbsp; //查找接点 <BR>&nbsp;&nbsp;&nbsp; var a = doc.getElementsByTagName("ttyp"); <BR>&nbsp;&nbsp;&nbsp; //var a = doc.selectNodes("//ttyp"); <BR><BR>&nbsp;&nbsp;&nbsp; //显示改接点的属性 <BR>&nbsp;&nbsp;&nbsp; for(var i= 0;i&lt;a.length;i++) <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(a[i].xml); <BR>for(var j=0;j&lt;a[i].attributes.length;j++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(a[i].attributes[j].name); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; } <BR><BR>&nbsp;&nbsp;&nbsp; //XML保存（需要在服务端，客户端用FSO） <BR>&nbsp;&nbsp;&nbsp; //doc.save(); <BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; //查看根接点XML <BR>&nbsp;&nbsp;&nbsp; if(n) <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(n.ownerDocument.xml); <BR>&nbsp;&nbsp;&nbsp; } <BR><BR>//--&gt; <BR>&lt;/script&gt;</FONT><BR><img src ="http://www.blogjava.net/guming123416/aggbug/29006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/guming123416/" target="_blank">lovajava_ye</a> 2006-01-23 13:34 <a href="http://www.blogjava.net/guming123416/archive/2006/01/23/29006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>