apache2.2整合resin3+Eclipse远程调试

  • 格式:docx
  • 大小:494.13 KB
  • 文档页数:11

(第一部分)apache2.2 + resin3.1.4 整合
前言
apache和resin的整合是为了把动态的jsp、action请求与静态的界面进行分离,达到系统访问高效性,以及静态界面独立发布、管理。

文中的描述环境是windows 8系统,linux系统的话个别安装步骤可能不一样,不过配置类的东西应该都是一样的。

一. 安装resin3.1.4
下载resin安装包解压后目录为
D:\soft\resin-3.1.14-ap
二. 安装apache2.2
管理员方式执行apache_2.2.4-win32-x86-no_ssl.msi
出现安装界面,一次填写三个选项,自定义安装,安装目录为“D:\soft\Apache”三. 配置apache --(httpd.conf)
安装目录“D:\soft\Apache\conf”下httpd.conf文件为配置文件,修改配置文件
.1. 参数配置
找到如下参数,去掉前面的'#'(#为注释符),如果没有添加如下参数配置
ThreadsPerChild 250
MaxRequestsPerChild 0
.2. 监听端口
找到如下参数,如果没有添加如下参数配置,80为监听服务端口,避免与其他服务端口冲突,自行修改,其中这2个端口一定保持一致
Listen 80
ServerName localhost:80
.3. 绑定resin
如下参数如没有则添加,其中caucho_module路径为resin的安装路径
LoadModule caucho_module "D:/soft/resin-3.1.14-ap/win32/apache-2.2/mod_caucho.dll"
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
.4. 绑定resin,参数配置
增加如下配置参数,其中127.0.0.1为resin服务ip,如与apache同机器则使用127.0.0.1或localhost,
但ip、端口一定和resin配置一致,都是用127.0.0.1或localhost。

<IfModule mod_caucho.c>
ResinConfigServer 127.0.0.1 6800
<Location /caucho-status>
SetHandler caucho-status
</Location>
</IfModule>
.5. apache转向resin请求
apache收到jsp请求时,通过插件模块mod_caucho交给Resin处理
AddHandler caucho-request jsp
<Location /*.jsp>
SetHandler caucho-request
</Location>
AddHandler caucho-request do
<Location /*.do>
SetHandler caucho-request
</Location>
.6. 根目录,静态界面发布目录
DocumentRoot "D:/soft/Apache/htdocs/portal"
<Directory "D:/soft/Apache/htdocs/portal">
四. 配置resin ---(resin.config)
.1. 工程打包,系统配置文件部署
所依赖的工程打成jar包,和所依赖的jar包一起放在web-info下的lib包内,把web工程打成war包,把war包放在webapps下。

把etc配置文件目录放在webapps下.
.2. 在resin中发布自己的工程
<!-- 决定war发布的位置,发布配置项都要以此为准-->
<web-app-deploy path="webapps"/>
<!-- 发布web工程,配置war包自解压-->
<host id="" root-directory=".">
<web-app id="/" document-directory="webapps\portal\"/>
<web-app-deploy expand-directory="webapps" versioning="true" /> </host>
<!-- jvm 参数,系统所需的环境变量-->
<jvm-arg>-Dserver.root=webapps</jvm-arg>
.3. 配置远程调试
<!-- Debug -->
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Xnoagent</jvm-arg>
<jvm-arg>piler=NONE</jvm-arg>
<jvm-arg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998</jvm-arg> 五. 整合验证
.1. 启动apache
apache安装目录下bin目录下如D:\soft\Apache\bin,如下图中启动ApacheMonitor.exe。

启动后桌面右下角会看到如下图apache图标。

右键打开Open Apache monitor后看到管理界面,界面上可以看到如下图所示,可以启动、停止、重启操作。

如果不能启动、停止、重启操作,则可以点击Services按钮,打开本地服务找到Apache2.2 进行手动启动。

也可以选中Apache2.2服务,右键-属性,设置为自启动项,当系统启动时就会自己启动服务了,以后不用手动启动服务了。

如图
.2. 启动resin
.1. 在resin的安装目录下执行httpd.exe,执行后看到控制台打出图中红色部分
表示resin的远程监控已经成功,
启动后如下图:
看到下图中红色部分,表示web工程发布成功,此时webapps下应该可以看到解压的war包目录。

如下图:
其中,
第一个红色:为发布的项目访问路径:ip、端口、发布名称;
第二个红色:为监听的ip、端口,这个和apache监听的ip、端口配置一致;
第三个红色:为web发布的http端口;
第四个红色:为resin启动成功所用时间.
.3. 验证
.1. apache验证
浏览器输入http://127.0.0.1/ 则看到apache的默认页面,说明apache已经正常工作,如下图:
.2. 验证整合效果
浏览器输入http://localhost/caucho-status 则看到apache和resin的整合状态界面。

如果看到整合的apache的ip、端口为绿色的(ok),则说明整合成功,如下图:
六. 到此,apache2.2整合resin3.1完毕。

(第二部分)Eclipse远程调试
前言
在resin+apache整合的情况下,动态jsp和action请求由resin负责,apache仅仅负责静态的html、shtml、htm、js、css、图片的解析和加载,web工程又是由resin以war包形式进行发布的,想进行程序debug调试已经不是那么容易了,不能像简单的web容器那样在Eclipse中进行调试了,目前网上、官方又没有什么Eclipse的插件出现,因此想到了远程调试的方法。

Eclipse的远程调试可以实现,当请求系统时,在Eclipse中可以映射到java程序代码,像传统常见的debug调试一样,查看程序进行代码数据查看可调试。

一、前提条件
.1. Eclipse 版本为3.4以上或更高版本
.2. 确认Resin已经支持和配置远程调试
.3. 确认war包程序和源程序代码一致
确认Resin下发布的war包程序和Eclipse中的程序代码一致。

二、Eclipse配置
.1. Eclipse 中导入源程序工程
.1. 远程配置
找到debug启动项,如图
点击Debug Configurations,找到Romote Java Application,New Application 新建,如下图,按标红部分进行配置、选择即可。

其中端口为resin配置文件中jvm远程调试配置参数中的监听端口.
配置完毕,点击apply保存,点击Debug,在源程序代码中加上断点就可以进行远程调试了,终于可以看到我们熟悉的debug模式了。

如图:
到此,远程调试配置完成。