eclipse搭配Resin开发Struts应用之环境篇
2008-12-25 15:19
471 查看
系统环境:eclipse3.2 struts1.2 resin3.1 apache2.2 jdk5
大家都知道,无论是Eclipse还是Resin,它们在启动的时候都能自动寻找JDK路径,这里假设JDK路径为$JAVA_HOME。
JDK下面有一个非常重要的目录,即: $JAVA_HOME/jre/lib,大家用得最普遍的就是$JAVA_HOME/jre/lib/ext目录(可以放置常用的JAR扩展包)了,我喜欢将jtds-1.2.jar文件拷贝到此目录下,当运行打包好的JAR时,不需要为每一个JAR配置数据库驱动加载路径(当然,你也可以将jtds-1.2.jar加入到系统环境变量中,只是你得Reboot your computer而已)。
好了,下面言归正传,如果你用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行,发现配置文件是这样的:<resin:import path="${resin.home}/conf/app-default.xml"/>,因为${resin.home}/就是Resin的当前目录,所以我们可以换成<resin:import path="./conf/app-default.xml"/>,再启动,OK。
resin.conf里面还有一个地方比较有意思,且看211行代码:<web-app-deploy path="webapps"/>,系统配置的Web应用目录为$RESIN_HOME/webapps,而Eclipse工程发布后是在$RESIN_HOME/deploy,所以我们干脆就不用myeclipse里的站点发布功能,直接修改resin.conf文件,加载一个外部目录,将它手指向你的工程,找到如下代码(240行)<web-app id="/" root-directory="webapps/ROOT"/>,在后面加上<web-app id="/import" root-directory="D:/eclipse/work/Import/WebRoot"/>。
好像问题还不止这么简单,因为我的D:/eclipse/work/Import/WebRoot工程是用Struts框架开发的,所有在resin启动import的时候,报了如下的错误:
javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl
XML解释器的错误,顺便在Google上一搜,找到了三种解决办法,受推荐的方案如下:
在 $JAVA_HOME/jre/lib目录下新建endorsed目录(如果没有的话),然后将你工程lib目录下的xercesImpl.jar拷贝到刚建的那个目录里面,问题即可解决。
不推荐在$JAVA_HOME/jre/lib下面新建内容为javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl的jaxp.properties文件,当然,如果你准备强行这么干的话,你的Tomcat就只能暗无天日了。
下面是附加内容
附一:Apache与Resin集成
1. 更改Apache的文档目录:在httpd.conf中找到DocumentRoot,将其后双引号中的内容换成"D:/HttpServer/webapps/"
2. 配置Apache的Resin模块:在httpd.conf最后添加如下代码
LoadModule caucho_module "D:/HttpServer/resin/win32/apache-2.2/mod_caucho.dll"
<IfModule mod_caucho.c>
ResinConfigServer localhost 6800
CauchoStatus yes
</IfModule>
3. 更改默认的访问文件:在httpd.conf中找到DirectoryIndex ,在其后添加index.jsp index.php
注意:每个文件之间用空格间隔开
4. Resin虚拟目录配置:在resin.conf中找到如下行<host id="" root-directory=".">,然后加入
<web-app id="/import" root-directory="D:/HttpServer/webapps/import"/>
id为访问路径,root-directory为文档目录所在路径
5. 设置Resin为自启动:你必须先在系统环境变量中配置JAVA_HOME,然后在命令行窗口中进入Resin目录,输入httpd -install(安装Resin为Windows系统服务),httpd -remove(移除……)
经过以上步骤,Resin就可以监听处理所有Apache不能处理的文件,包括.jsp, .do及其它控制器路径,并同时解决了用80端口访问时图片相对路径不对的问题
附二:Apache中加入PHP处理模块,并且屏蔽Resin3.1的PHP解释模块
1. 屏蔽resin的PHP处理模块:resin从3.0开始支持php,其3.1版本的PHP解释配置是在app-default.xml中(与resin.conf同一个目录),只要对servlet配置比较熟悉的都能在app-default.xml中轻易屏蔽PHP解释功能,打开app-default.xml后,用<!-- -->屏蔽如下代码即可:
<servlet servlet-name="resin-php"
servlet-class="com.caucho.quercus.servlet.QuercusServlet">
</servlet>
<servlet-mapping url-pattern="*.php" servlet-name="resin-php"/>
<welcome-file>index.php</welcome-file>
2. 配置Apache的PHP处理模块:在httpd.conf最后添加如下代码(我的PHP是装在D:/HttpServer/php5)
## Add php5 module
LoadModule php5_module "D:/HttpServer/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
# Configure php.ini path
PHPIniDir "D:/HttpServer/php5/"
呵呵,因为Resin的PHP配置不太熟悉,网上的资料也比较少,所以还是用了Apache+PHP的处理方式。
大家都知道,无论是Eclipse还是Resin,它们在启动的时候都能自动寻找JDK路径,这里假设JDK路径为$JAVA_HOME。
JDK下面有一个非常重要的目录,即: $JAVA_HOME/jre/lib,大家用得最普遍的就是$JAVA_HOME/jre/lib/ext目录(可以放置常用的JAR扩展包)了,我喜欢将jtds-1.2.jar文件拷贝到此目录下,当运行打包好的JAR时,不需要为每一个JAR配置数据库驱动加载路径(当然,你也可以将jtds-1.2.jar加入到系统环境变量中,只是你得Reboot your computer而已)。
好了,下面言归正传,如果你用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行,发现配置文件是这样的:<resin:import path="${resin.home}/conf/app-default.xml"/>,因为${resin.home}/就是Resin的当前目录,所以我们可以换成<resin:import path="./conf/app-default.xml"/>,再启动,OK。
resin.conf里面还有一个地方比较有意思,且看211行代码:<web-app-deploy path="webapps"/>,系统配置的Web应用目录为$RESIN_HOME/webapps,而Eclipse工程发布后是在$RESIN_HOME/deploy,所以我们干脆就不用myeclipse里的站点发布功能,直接修改resin.conf文件,加载一个外部目录,将它手指向你的工程,找到如下代码(240行)<web-app id="/" root-directory="webapps/ROOT"/>,在后面加上<web-app id="/import" root-directory="D:/eclipse/work/Import/WebRoot"/>。
好像问题还不止这么简单,因为我的D:/eclipse/work/Import/WebRoot工程是用Struts框架开发的,所有在resin启动import的时候,报了如下的错误:
javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl
XML解释器的错误,顺便在Google上一搜,找到了三种解决办法,受推荐的方案如下:
在 $JAVA_HOME/jre/lib目录下新建endorsed目录(如果没有的话),然后将你工程lib目录下的xercesImpl.jar拷贝到刚建的那个目录里面,问题即可解决。
不推荐在$JAVA_HOME/jre/lib下面新建内容为javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl的jaxp.properties文件,当然,如果你准备强行这么干的话,你的Tomcat就只能暗无天日了。
下面是附加内容
附一:Apache与Resin集成
1. 更改Apache的文档目录:在httpd.conf中找到DocumentRoot,将其后双引号中的内容换成"D:/HttpServer/webapps/"
2. 配置Apache的Resin模块:在httpd.conf最后添加如下代码
LoadModule caucho_module "D:/HttpServer/resin/win32/apache-2.2/mod_caucho.dll"
<IfModule mod_caucho.c>
ResinConfigServer localhost 6800
CauchoStatus yes
</IfModule>
3. 更改默认的访问文件:在httpd.conf中找到DirectoryIndex ,在其后添加index.jsp index.php
注意:每个文件之间用空格间隔开
4. Resin虚拟目录配置:在resin.conf中找到如下行<host id="" root-directory=".">,然后加入
<web-app id="/import" root-directory="D:/HttpServer/webapps/import"/>
id为访问路径,root-directory为文档目录所在路径
5. 设置Resin为自启动:你必须先在系统环境变量中配置JAVA_HOME,然后在命令行窗口中进入Resin目录,输入httpd -install(安装Resin为Windows系统服务),httpd -remove(移除……)
经过以上步骤,Resin就可以监听处理所有Apache不能处理的文件,包括.jsp, .do及其它控制器路径,并同时解决了用80端口访问时图片相对路径不对的问题
附二:Apache中加入PHP处理模块,并且屏蔽Resin3.1的PHP解释模块
1. 屏蔽resin的PHP处理模块:resin从3.0开始支持php,其3.1版本的PHP解释配置是在app-default.xml中(与resin.conf同一个目录),只要对servlet配置比较熟悉的都能在app-default.xml中轻易屏蔽PHP解释功能,打开app-default.xml后,用<!-- -->屏蔽如下代码即可:
<servlet servlet-name="resin-php"
servlet-class="com.caucho.quercus.servlet.QuercusServlet">
</servlet>
<servlet-mapping url-pattern="*.php" servlet-name="resin-php"/>
<welcome-file>index.php</welcome-file>
2. 配置Apache的PHP处理模块:在httpd.conf最后添加如下代码(我的PHP是装在D:/HttpServer/php5)
## Add php5 module
LoadModule php5_module "D:/HttpServer/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
# Configure php.ini path
PHPIniDir "D:/HttpServer/php5/"
呵呵,因为Resin的PHP配置不太熟悉,网上的资料也比较少,所以还是用了Apache+PHP的处理方式。
相关文章推荐
- eclipse搭配Resin开发Struts应用之环境篇
- eclipse搭配Resin开发Struts应用之环境篇
- eclipse搭配Resin开发Struts应用之环境篇
- 基于Eclipse的Hadoop应用开发环境配置
- 搭建在Eclipse上开发Heroku应用的环境
- Eclipse配置struts-2.3.32开发环境
- 基于Eclipse的Hadoop应用开发环境配置
- 基于Eclipse的Hadoop应用开发环境配置
- ubuntu 10.04 应用eclipse 搭建 RTEMS 应用程序集成开发环境
- 基于Eclipse+Cordova的Android Hybrid应用开发环境搭建
- 基于Eclipse+Cordova的Android Hybrid应用开发环境搭建
- 【SSH】 之 Struts环境搭建及小应用开发
- Struts2之struts-2.3.20开发环境的搭建并实现第一个Hello World小应用
- 各种框架(Struts、Spring、Hibernate)及应用服务器(Tomcat、WebSphere)对应的开发环境(JDK、Servlet、JSP)
- Windows下JAVA开发环境的配置(应用Eclipse)
- 应用Eclipse开发GIS之路-----------Eclipse环境体验篇
- 黑马程序员--基于Eclipse的Hadoop应用开发环境配置
- struts+spring+hibernate项目开发环境的搭建——eclipse3.3+MyEclipse6.0+MySql4.1
- eclipse3.3搭配sun_java_me_sdk-3.0 开发J2ME 环境配置
- 配置eclipse 3.4开发struts应用