该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-01
stevenmo 写道 我的框架是 spring+ibatis 数据库是mysql 配置文件使用的是bin 目录下的jwebap.xml 唯一修改的地方 在driver-clazzs 中加入 mysql的数据库驱动org.gjt.mm.mysql.Driver;
你的问题,我已经重现,原因如下: 由于目前jwebap实现的类字节码增强,只对本类进行增强,而不对父类增强,所以,当你配驱动org.gjt.mm.mysql.Driver后,没有效果。因为org.gjt.mm.mysql.Driver继承于com.mysql.jdbc.NonRegisteringDriver,com.mysql.jdbc.NonRegisteringDriver才是真正的驱动实现。 所以解决办法有两个: 1)配置com.mysql.jdbc.NonRegisteringDriver为驱动(推荐) 2)配置spring,或者ibatis的Datasource类为驱动 对于Jwebap不对父类进行字节码增强的问题,我将会在下面版本解决。 |
|
返回顶楼 | |
发表时间:2008-03-02
leadyu 写道 stevenmo 写道 我的框架是 spring+ibatis 数据库是mysql 配置文件使用的是bin 目录下的jwebap.xml 唯一修改的地方 在driver-clazzs 中加入 mysql的数据库驱动org.gjt.mm.mysql.Driver;
0.5.8版本做了第三次修正,发布jwebap_0.5.8_all_3.zip。这次实现了jwebap对父类的类字节码增强处理。 所以,应该不会出现你上述所说的问题了。 |
|
返回顶楼 | |
发表时间:2008-03-03
看起来不错,目前暂时用不到,保存先。
|
|
返回顶楼 | |
发表时间:2008-03-03
想用着试试看,不过在部署的时候出现问题,报错:
org.jwebap.config.ConfigException: 配置工厂未初始化,请调用 configure(String path) 进行初始。 不知道是怎么一回事? 直接添加bin下的jwebap.xml文件到web-inf目录下,修改其中<property name='driver-clazzs'>orcale.jdbc.driver.OracleDeriver</property> 然后添加相关的内容到web.xml下 启动没报错,但是调用servlet时报错 |
|
返回顶楼 | |
发表时间:2008-03-03
能不能将监控和应用分开部署?
如果不能,我想意义就不太大了。。。。。 |
|
返回顶楼 | |
发表时间:2008-03-03
midizhang 写道 想用着试试看,不过在部署的时候出现问题,报错:
org.jwebap.config.ConfigException: 配置工厂未初始化,请调用 configure(String path) 进行初始。 不知道是怎么一回事? 直接添加bin下的jwebap.xml文件到web-inf目录下,修改其中<property name='driver-clazzs'>orcale.jdbc.driver.OracleDeriver</property> 然后添加相关的内容到web.xml下 启动没报错,但是调用servlet时报错 出这个错是jwebap没找到jwebap.xml导致,所以你可以检查一下: 引用 1) web.xml里面
<context-param> <param-name>config</param-name> <param-value>/WEB-INF/jwebap.xml</param-value> </context-param> 是否配置正确。 2)web.xml里面JwebapListener是否配置正确。 我需要更多的信息帮助你分析。 |
|
返回顶楼 | |
发表时间:2008-03-03
惊鸿逝水 写道 能不能将监控和应用分开部署?
如果不能,我想意义就不太大了。。。。。 分开部署考虑过,但是暂时还需要权衡,虽然jwebap做到这点在架构上并不困难(jwebap的轨迹容器相当于收集器,如果实现群集和广播轨迹给各远程分析器即可实现,并不影响已经开发好的plugin)。 原因有如下几点: 分布式部署,看上去是对系统侵入性更小了,其实不然, 一:分开部署,在配置和部署上肯定更为复杂,这和Jwebap尽可能简化部署的思路不一致(在简化部署方面jwebap花了很多的精力) 二:为了实现广播,实际带来的开销比部署在一起大得多,其实分开部署在Profiler工具里面已经有很多先例,可见效果并不如想象的好。 不过,也许在以后,jwebap可能会实现轨迹容器的分布式,当然这也仅是作为一种新的部署方式提供给用户。 |
|
返回顶楼 | |
发表时间:2008-03-03
当然jwebap可以和应用运行在同一个JVM,只是我不希望jwebap去修改web.xml
比如我使用jwebap作为我的管理监控控制台,打包部署为console.war 而我要配置jwebap监控我的一个应用web.war的性能,只要配置对web.war入口servlet做ASM注入就可以监控到了 |
|
返回顶楼 | |
发表时间:2008-03-03
惊鸿逝水 写道 当然jwebap可以和应用运行在同一个JVM,只是我不希望jwebap去修改web.xml
比如我使用jwebap作为我的管理监控控制台,打包部署为console.war 而我要配置jwebap监控我的一个应用web.war的性能,只要配置对web.war入口servlet做ASM注入就可以监控到了 我可能没有很清楚理解你的意思,你可能也一样,^_^ 所以我先说说我的看法,欢迎指正: 现在jwebap只有一个jar包,没有自己独立的war,部署起来很简单,另外jwebap的启动做了很多的事情,包括 轨迹容器的启动,配置的加载,plugin的加载和初始化,以及字节码的注入,这些需要在应用中有一个切入点去启动,现在我所想到的就是在应用中配置一个Listner。我相信这点是可以接受的。 而启动jwebap的这个切入点必须在应用的内部,不可能通过另一个JVM or App启动Jwebap去监控其他JVM or App运行的应用(类的静态增强,其实是一个比较复杂的过程,需要考虑到应用的中间件的一些ClassLoader加载情况) 如果你有比Listner更好的想法,启动Jwebap,欢迎提出 |
|
返回顶楼 | |
发表时间:2008-03-03
试试了你的Jwebap,很遗憾的告诉你,在我的架构平台上,你啥都监控不到,唉。。。。。。
|
|
返回顶楼 | |