码迷,mamicode.com
首页 > 其他好文 > 详细

使用阿里巴巴数据源遇到的监控页面打不开的问题

时间:2015-06-08 21:27:57      阅读:4229      评论:0      收藏:0      [点我收藏+]

标签:

听说阿里巴巴号称性能最强的连接池,于是用maven 往项目里增加了一个alibaba 引用包

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.14</version>
</dependency>

配置好后打开网页 老是出404错误。于是又去查看使用文档https://github.com/alibaba/druid/

相关的配置都一个不漏设置好,但还是 访问 http://localhost:8080/druid/sql.html 出错404错误。难道是这个最新版本有问题,这也不大可能
于是我又看structs 相关的配置。发现了问题。对web.xml配置做了挑战。servlet 映射 和structs action映射范围进行了 修改

技术分享

首先先alibaba数据源的druid是一个servlet ,这里servlet跟structs
的action 如果不进行限定范围 那么
当我们在页面在请求应用时,struts2将会截获所有请求,对于servlet请求将不能够正常响应的
(报错信息为:HTTP Status 404 - There is no Action mapped for namespace / and action name druid,
这是因为struts2servlet当成action了,因为servletaction都是没有后缀的.


这里有几种处理方式
在struts.xml中的<struts>的节点下面添加struts2处理的请求后缀 常量:
<!--   该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。 
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 
 --> 
<constant name="struts.action.extension" value="action" />
这种方式比较优雅

第二种如下:

技术分享

注释掉 urlrewritefilter  ,因为/* 会拦截所有的请求,这样druid就映射不到了,所以需要注释或限定范围

技术分享

对structs url请求映射也要进行修改,把/*的地方都要注释或限定范围

技术分享



alibaba连接池访问的 druid是一个servlet,而我配置的structs 设置了为/* 全部监控,所有的请求
都会被认为是structs action请求

于是 我修改了配置,再访问 监控界面出来了。还不错的。。 阿里的技术果然很强
技术分享
技术分享

使用阿里巴巴数据源遇到的监控页面打不开的问题

标签:

原文地址:http://www.cnblogs.com/fangyuan303687320/p/4561804.html

(1)
(6)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!