原创作者: QuakeWang
阅读:21334次
评论:25条
更新时间:2011-05-26
项目名称: Jwebap
发起时间: 2007年11月
网站:http://jwebap.sourceforge.net
代码托管:http://www.sourceforge.net/projects/jwebap
项目介绍:
Jwebap是一个面向J2EE应用,基于jdk1.4以上环境的profiling工具。你可以应用它对系统内部method,jdbc & http 的执行情况进行监控和统计,然后通过jwebap提供的Web控制台查看它们。Jwebap不仅可以应用于测试和开发系统,同样由于它部署非常简单,同时高效,几乎没有额外的开销,使得它可以应用于生产系统,这对寻找系统瓶颈非常有帮助。
产品信息:
运行平台: 操作系统无关(OS Independent)
开发语言: Java
开源协议: Apache License V2.0
项目成员:
俞立德 软件工程师 广州
是什么促使你们发起/开始这个项目?
最初,在06年底由于要帮助几个大型项目进行性能上的优化。在此之前,公司已经投入的很多精力,却始终没有很好的解决系统的瓶颈问题。而阻扰我们的关键的问题,是在于无法很精确的定位到瓶颈所在,所以后面也试用了一些profiling工具,试图找到这些问题,但总是感觉不是很能满足要求,当时我试图自己实现监控系统的功能,在接下来的2个月试了很多办法,最终取得了不错的效果,虽然,那时做的东西还不能说是一个profiling 工具,他还太零散,太具侵入性,没有形成完整的设计,但是这些经验成了后面Jwebap的基础。
后面,我看到了许多项目中都有类似问题,迫切需要一个能真正解决问题的工具。所以,我决定把这些零散的经验汇总起来,尝试着开发一个通用的,无侵入的profiling工具,于是有了Jwebap,在07年11月,Jwebap终于有了第一个版本。
该项目面向哪些使用群体?
对于采用Java技术的项目来说,Jwebap都可以使用,它本身没有太多对环境的要求,也没有太多使用协议上的限制。另外,由于Jwebap的plugin体系的设计以及后面更多的plugin的发布,jwebap可以不仅仅用于解决系统性能问题,也同样可以提供给测试人员,开发人员,作为测试和debug的工具。
举个例子说明下用户使用您的软件能做什么?
目前,主要是针对性能监控方面。你可以简单的部署jwebap于你的系统,而只需修改2个配置文件。它可以对系统的jdbc连接,方法调用,http请求等数据进行监控,比如:你可以分析哪些sql执行的太慢,是哪段程序调用了它,哪些连接泄漏了,哪些类的方法执行过慢,哪些请求存在问题,等等,Jwebap提供了漂亮的视图界面把这些数据展现给你。
您在该项目中遇到的最大挑战是什么?
如何合理的安排开发计划和时间,毕竟工作已经占据了我大部分的时间。
您在该项目中认为获得成功的要素有哪些?
部署和使用非常的简单,同时环境无关,得益于Plugin体系的设计,jwebap能做到按需使用。
如果您能对项目进行修改,您会改善哪些地方?
Plugin的管理,字节码的生成,动态类加载机制,我想还有不少的改进空间,还有就是需要开发更强的Plugin。
你们把所有精力都投入在这个软件上,还是有其他的什么工作?
Jwebap主要是在业余时间进行开发,其他时间则放在了工作上。
那你们一般花多长时间在这个项目上?
不是特别多,工作不忙的时候,每周10小时或者更多。
你们用的开发环境是什么
OS: Windows
IDE: Eclipse
项目里程碑
0.5.2:jwebap对外发布的第一个版本
0.5.9:进行了整体改造,提供了基本的plugin管理,开发了jdbc,method,http三个plugin,提供了全新的视图界面等等。
其他人如何给你们提供建议?
主要通过邮件(yu-lead at 163 dot com)
对JavaEye的印象
JE是一个很好的交流和宣传的平台,这是很多其他类似网站都没有的,我很喜欢这里,同时,我也希望JE能够为开源项目,特别是国内的开源项目,提供更多的包括技术手段,交流,宣传和推广的支持。
发起时间: 2007年11月
网站:http://jwebap.sourceforge.net
代码托管:http://www.sourceforge.net/projects/jwebap
项目介绍:
Jwebap是一个面向J2EE应用,基于jdk1.4以上环境的profiling工具。你可以应用它对系统内部method,jdbc & http 的执行情况进行监控和统计,然后通过jwebap提供的Web控制台查看它们。Jwebap不仅可以应用于测试和开发系统,同样由于它部署非常简单,同时高效,几乎没有额外的开销,使得它可以应用于生产系统,这对寻找系统瓶颈非常有帮助。
产品信息:
运行平台: 操作系统无关(OS Independent)
开发语言: Java
开源协议: Apache License V2.0
项目成员:
俞立德 软件工程师 广州
是什么促使你们发起/开始这个项目?
最初,在06年底由于要帮助几个大型项目进行性能上的优化。在此之前,公司已经投入的很多精力,却始终没有很好的解决系统的瓶颈问题。而阻扰我们的关键的问题,是在于无法很精确的定位到瓶颈所在,所以后面也试用了一些profiling工具,试图找到这些问题,但总是感觉不是很能满足要求,当时我试图自己实现监控系统的功能,在接下来的2个月试了很多办法,最终取得了不错的效果,虽然,那时做的东西还不能说是一个profiling 工具,他还太零散,太具侵入性,没有形成完整的设计,但是这些经验成了后面Jwebap的基础。
后面,我看到了许多项目中都有类似问题,迫切需要一个能真正解决问题的工具。所以,我决定把这些零散的经验汇总起来,尝试着开发一个通用的,无侵入的profiling工具,于是有了Jwebap,在07年11月,Jwebap终于有了第一个版本。
该项目面向哪些使用群体?
对于采用Java技术的项目来说,Jwebap都可以使用,它本身没有太多对环境的要求,也没有太多使用协议上的限制。另外,由于Jwebap的plugin体系的设计以及后面更多的plugin的发布,jwebap可以不仅仅用于解决系统性能问题,也同样可以提供给测试人员,开发人员,作为测试和debug的工具。
举个例子说明下用户使用您的软件能做什么?
目前,主要是针对性能监控方面。你可以简单的部署jwebap于你的系统,而只需修改2个配置文件。它可以对系统的jdbc连接,方法调用,http请求等数据进行监控,比如:你可以分析哪些sql执行的太慢,是哪段程序调用了它,哪些连接泄漏了,哪些类的方法执行过慢,哪些请求存在问题,等等,Jwebap提供了漂亮的视图界面把这些数据展现给你。
您在该项目中遇到的最大挑战是什么?
如何合理的安排开发计划和时间,毕竟工作已经占据了我大部分的时间。
您在该项目中认为获得成功的要素有哪些?
部署和使用非常的简单,同时环境无关,得益于Plugin体系的设计,jwebap能做到按需使用。
如果您能对项目进行修改,您会改善哪些地方?
Plugin的管理,字节码的生成,动态类加载机制,我想还有不少的改进空间,还有就是需要开发更强的Plugin。
你们把所有精力都投入在这个软件上,还是有其他的什么工作?
Jwebap主要是在业余时间进行开发,其他时间则放在了工作上。
那你们一般花多长时间在这个项目上?
不是特别多,工作不忙的时候,每周10小时或者更多。
你们用的开发环境是什么
OS: Windows
IDE: Eclipse
项目里程碑
0.5.2:jwebap对外发布的第一个版本
0.5.9:进行了整体改造,提供了基本的plugin管理,开发了jdbc,method,http三个plugin,提供了全新的视图界面等等。
其他人如何给你们提供建议?
主要通过邮件(yu-lead at 163 dot com)
对JavaEye的印象
JE是一个很好的交流和宣传的平台,这是很多其他类似网站都没有的,我很喜欢这里,同时,我也希望JE能够为开源项目,特别是国内的开源项目,提供更多的包括技术手段,交流,宣传和推广的支持。
25 楼 guoxiangfei 2011-08-08 19:50
8/8/11 19:49:22:500 CST] 00000019 WebGroup A SRVE0169I: Loading Web Module: javahelpweb.
[8/8/11 19:49:22:562 CST] 00000019 VirtualHost I SRVE0250I: Web Module javahelpweb has been bound to default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443].
[8/8/11 19:49:22:578 CST] 00000019 WebGroup A SRVE0169I: Loading Web Module: cb_bank_web.
[8/8/11 19:49:22:578 CST] 00000019 ComponentName W CNTR0063W: A reference to an EJB could not be found in the deployment descriptor for the WebApp or EnterpriseBean with the display name "cb_bank_web":WEB-INF/web.xml#EjbRef_1288528145823. The EJB may have specified binding information that is not valid.
[8/8/11 19:49:22:593 CST] 00000019 ComponentName W CNTR0063W: A reference to an EJB could not be found in the deployment descriptor for the WebApp or EnterpriseBean with the display name "cb_bank_web":WEB-INF/web.xml#EjbRef_1296836998098. The EJB may have specified binding information that is not valid.
[8/8/11 19:49:22:593 CST] 00000019 WebApp E [Servlet Error]-[Failed to load listener: org.jwebap.core.JwebapListener]: java.lang.ClassNotFoundException: org.jwebap.core.JwebapListener
at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:502)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:403)
at java.lang.ClassLoader.loadClass(ClassLoader.java:605)
at java.beans.Beans.instantiate(Beans.java:202)
at java.beans.Beans.instantiate(Beans.java:63)
at com.ibm.ws.webcontainer.webapp.WebApp.loadListener(WebApp.java:1485)
at com.ibm.ws.webcontainer.webapp.WebApp.loadLifecycleListeners(WebApp.java:1409)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationStart(WebApp.java:426)
at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:250)
at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:93)
at com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication(VirtualHost.java:162)
at com.ibm.ws.wswebcontainer.WebContainer.addWebApp(WebContainer.java:673)
at com.ibm.ws.wswebcontainer.WebContainer.addWebApplication(WebContainer.java:626)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:335)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:551)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1250)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1140)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:569)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:819)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921)
at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2100)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
24 楼 guoxiangfei 2011-08-08 19:48
8/8/11 19:49:22:500 CST] 00000019 WebGroup A SRVE0169I: Loading Web Module: javahelpweb.
[8/8/11 19:49:22:562 CST] 00000019 VirtualHost I SRVE0250I: Web Module javahelpweb has been bound to default_host[*:9080,*:80,*:9443,*:5060,*:5061,*:443].
[8/8/11 19:49:22:578 CST] 00000019 WebGroup A SRVE0169I: Loading Web Module: cb_bank_web.
[8/8/11 19:49:22:578 CST] 00000019 ComponentName W CNTR0063W: A reference to an EJB could not be found in the deployment descriptor for the WebApp or EnterpriseBean with the display name "cb_bank_web":WEB-INF/web.xml#EjbRef_1288528145823. The EJB may have specified binding information that is not valid.
[8/8/11 19:49:22:593 CST] 00000019 ComponentName W CNTR0063W: A reference to an EJB could not be found in the deployment descriptor for the WebApp or EnterpriseBean with the display name "cb_bank_web":WEB-INF/web.xml#EjbRef_1296836998098. The EJB may have specified binding information that is not valid.
[8/8/11 19:49:22:593 CST] 00000019 WebApp E [Servlet Error]-[Failed to load listener: org.jwebap.core.JwebapListener]: java.lang.ClassNotFoundException: org.jwebap.core.JwebapListener
at com.ibm.ws.classloader.CompoundClassLoader.findClass(CompoundClassLoader.java:502)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:403)
at java.lang.ClassLoader.loadClass(ClassLoader.java:605)
at java.beans.Beans.instantiate(Beans.java:202)
at java.beans.Beans.instantiate(Beans.java:63)
at com.ibm.ws.webcontainer.webapp.WebApp.loadListener(WebApp.java:1485)
at com.ibm.ws.webcontainer.webapp.WebApp.loadLifecycleListeners(WebApp.java:1409)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationStart(WebApp.java:426)
at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:250)
at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:93)
at com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication(VirtualHost.java:162)
at com.ibm.ws.wswebcontainer.WebContainer.addWebApp(WebContainer.java:673)
at com.ibm.ws.wswebcontainer.WebContainer.addWebApplication(WebContainer.java:626)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:335)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:551)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1250)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1140)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:569)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:819)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921)
at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2100)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
23 楼 fengyuleidian3 2011-08-04 11:38
king88886@163.com
22 楼 wen5566 2011-07-17 18:39
21 楼 ruyi8207ATsina.com 2011-05-24 17:04
20 楼 zgxzowen 2011-05-24 11:05
19 楼 NSCoffee 2011-05-09 01:11
18 楼 pior 2011-05-08 17:31
是的`
17 楼 fantasycs 2011-05-05 13:47
编码问题简单,继承org.jwebap.plugin.tracer.http.DetectFilter重写编码为自己请求参数的编码格式。
配置改成自己的Filter,解决问题。
<filter-name>PageDetectFilter</filter-name>
<filter-class>com.th.cip.web.filter.CipDetectFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
代码:
* 编码纠正
* @author 王文成
* @version 1.0
* @since 2011-5-5
*/
public class CipDetectFilter extends DetectFilter{
private String charset;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.charset=filterConfig.getInitParameter("charset");
super.init(filterConfig);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,
ServletException {
request.setCharacterEncoding(charset);
super.doFilter(request, response, filterChain);
}
}
16 楼 joliny 2011-05-02 16:31
15 楼 shishangzuiniubi 2011-04-29 10:39
+1
14 楼 wangguan_xd 2011-04-26 15:47
13 楼 f5coder 2009-08-10 12:20
12 楼 f5coder 2009-08-10 11:28
1 test.Test注入失败,但是找不到Test类
2 在监控管理界面中,只有http有数据,jdbc和method里没有数据
11 楼 edwin_chen 2009-08-05 09:59
你的问题似乎是由于配置tracer.jar路径的问题
你的jwebap.xml中
这行不需要修改,只要把tracer.jar放到classpath下即可。
我估计是你修改了这个配置造成的。
不知是否对你有帮助
10 楼 luzl 2009-08-02 20:55
9 楼 arcko 2009-07-27 17:38
第二页
configure what plugin you need use
是不是应该为
need to use
8 楼 haiyupeter 2009-07-20 21:23
7 楼 lucky16 2009-07-20 20:18
支持国内开源软件!
6 楼 windlike 2009-07-20 16:30
5 楼 xrb2008 2009-07-20 16:08
4 楼 lovit 2009-07-20 15:09
3 楼 yingwuhahahaha 2009-07-18 23:11
2 楼 wing_0 2009-05-14 19:20
1 楼 34982442 2009-05-14 15:06