`
leadyu
  • 浏览: 51569 次
  • 性别: Icon_minigender_1
  • 来自: 广州,福州
文章分类
社区版块
存档分类
最新评论

Jwebap(七)——插件:0.6.0版本发布

阅读更多

下载:www.sourceforge.net/projects/jwebap

jwebap0.6.0发布

引用
jwebap0.6.0版本发布。从0.6版本开始,对jwebap核心进行了大量重构,基本实现了插件化管理,同时提供了Plugin部署和配置界
面,实现jwebap的配置完全界面化,先来看看新的plugin界面:




jwebap-plugin架构

引用
jwebap的plugin管理,目前自己实现,主要涵盖几个方面:

1) plugin采用jar包形式管理,通过标准的plugin定义文件,集成于jwebap
plugin包含多个component,由component构建plugin的实际功能,plugin内部component之间内聚,实际运行时,以component为单位进行管理,plugin更像是一个集成包,这样对于plugin的划分粒度较粗,使用起来更为便利和傻瓜化

2) plugin的component在jwebap启动时加载,对于群集应用,jwebap一个应用一个实例,暂未实现群集轨迹容器。

3) component的类加载考虑到目前plugin并不会太多,暂未实现独立的命名空间和类加载管理

4) plugin扩展,实现了基本的视图扩展,目前还只支持菜单级视图扩展点,jwebap提供了包括bytecode,plugin视图框架,轨迹,轨迹容器等基础构件供plugin使用

5) 对于plugin的部署和参数配置,提供后台界面完成

就这么多了,欢迎各位多提意见,后续plugin这块是一定要加强的,现有的模型如下:






Tracer插件

引用
说说,jwebap默认的plugin——tracer。基于前期实现的功能,实现tracer插件。包括jdbc调用分析,sql分析,sql调用程序栈跟踪,http分析,应用api调用分析,跟踪方法调用,调用栈,找出瓶颈的开销api。各种分析都可以设置时间阀值,提供清单的分析,和全量的平均时间,最大最小调用时间统计等。值得一提的是,本次新提供了sql分析语法加亮功能,同时修复了前期方法监听内部开启jdbc连接数显示不出的bug。具体插件的使用可以参考手册。





0.6.0版本修正内容:

引用

1) 实现jwebap.xml对plugin的配置
2) 修改connection-listner的bug
3) 存储过程监控不到 
4) weblogic以war包方式部署会找不到jwebap.xml
5) weblogic下刷新控制台,会打印错误日志BUG
6) 整理出'tracer'插件
7) 增加jdbcComponent的SQL语法加亮显示功能
8) 修改SQL展现html转义BUG
9) jwebap-core核心包结构调整





下个版本重点计划内容:

引用
1)实现内存分析插件
2)实现插件管理视图扩展点配置

 

 

  • 大小: 83.7 KB
分享到:
评论
36 楼 dongsonger 2014-12-16  
www.sourceforge.net/projects/jwebap 下载地址无法访问,请问在哪里可以下载最新版本
35 楼 ch2004 2011-11-04  
itstarting 写道
leadyu 写道
Jwebap JdbcComponent配置注意:


JdbcComponent 对于本地数据源,在配置driver-clazz时不推荐直接配置数据库驱动作为driver-clazz,这和原先配置文档的说明不同,请大家注意!

由于一般应用都采用连接池技术作为数据源,而直接配置数据库驱动作为driver-clazz,会受到连接池影响,监控发现所有的连接都是未关闭的,造成jwebap泄漏检测,时间统计的结果都无效了。所以,这种情况,建议直接配置,连接池的Datasource作为driver-clazz:

1)c3p0:可以配置com.mchange.v2.c3p0.ComboPooledDataSource

2)dbcp:可以配置org.apache.commons.dbcp.BasicDataSource

同时,也可以配置应用自己封装的ConnectionManager之类的类。jwebap对于driver-clazz所返回的Connection和Datasource会做监控。




我在TOMCAT5.5下,使用了JNDI,此时是JNDI+JDBC的模式使用数据源,使用mysql数据库
我分析了这个版本的DBCP,不是标准的commons-jdbc,而是naming-factory-dbcp


此时我尝试了很多的办法,都无法配置出JdbcComponent的driver-clazzs:
1、org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSourceFactory

2、org.apache.tomcat.dbcp.dbcp.BasicDataSource
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSource

3、com.mysql.jdbc.NonRegisteringDriver
——我拷贝了驱动到WEB-INF/lib下,此时在使用连接时才会出现异常:java.lang.NoClassDefFoundError: org/jwebap/toolkit/bytecode/asm/StaticHandleFactory



我自己新建了一个test.Test.java就好了
34 楼 zm9913 2010-02-08  
怎么我要监视的类都提示:注入失败
33 楼 leadyu 2009-08-07  
sunwenran 写道

1)请问为什么要lanuch这个tracer.jar 而我运行失败
Step III: lanunch jwebap!
Lanunch tracer.jar in your application classes path(the default plugin in jwebap defined in jwebap.xml plugin-ref tag)

我的结果:

D:\Documents and Settings\Administrator>java -jar C:\projects\govsms\WebRoot\WEB-INF\lib\tracer.jar
Failed to load Main-Class manifest attribute from
C:\projects\govsms\WebRoot\WEB-INF\lib\tracer.jar
2)进入控制台点 plugins 列表中并没有任何 plugin
jwebbp配置没有动过 还是这样:
<plugin name="Tracer" ref="${ABSOLUTE_PATH}/tracer.jar"/>
而且点击”Deploy a new plugin“
无论是按提示填&{ABSOLUTE_PATH}/tracer.jar还是填${ABSOLUTE_PATH}/tracer.jar都无效,列表中还是没有任何 plugin


版本:jwebap_0.6.0.jar
我的环境  tomcat5 jdk5


我猜你的jwebap.xml没有放在正确的位置上,导致jwebap根本没找到jwebap的配置,你看看后台后无错误信息,或者检查下web.xml里面配的jwebap.xml的位置是否正确
32 楼 sunwenran 2009-08-06  

1)请问为什么要lanuch这个tracer.jar 而我运行失败
Step III: lanunch jwebap!
Lanunch tracer.jar in your application classes path(the default plugin in jwebap defined in jwebap.xml plugin-ref tag)

我的结果:

D:\Documents and Settings\Administrator>java -jar C:\projects\govsms\WebRoot\WEB-INF\lib\tracer.jar
Failed to load Main-Class manifest attribute from
C:\projects\govsms\WebRoot\WEB-INF\lib\tracer.jar
2)进入控制台点 plugins 列表中并没有任何 plugin
jwebbp配置没有动过 还是这样:
<plugin name="Tracer" ref="${ABSOLUTE_PATH}/tracer.jar"/>
而且点击”Deploy a new plugin“
无论是按提示填&{ABSOLUTE_PATH}/tracer.jar还是填${ABSOLUTE_PATH}/tracer.jar都无效,列表中还是没有任何 plugin


版本:jwebap_0.6.0.jar
我的环境  tomcat5 jdk5
31 楼 leadyu 2009-08-05  
ibadboy 写道


  我项目中应用个这个框架,tomcat启动一切正常。能够进去管理界面。但是为什么只监控到http相关的信息

  jdbc和method都没有任何信息。我也看了前面的帖子,需要配detect-clazzs 我配的是自己封装的获取数据源

类。什么回事吗?


jwebap启动有否错误?或者把你的这个类发出来看看
30 楼 ibadboy 2009-08-05  


  我项目中应用个这个框架,tomcat启动一切正常。能够进去管理界面。但是为什么只监控到http相关的信息

  jdbc和method都没有任何信息。我也看了前面的帖子,需要配detect-clazzs 我配的是自己封装的获取数据源

类。什么回事吗?
29 楼 leadyu 2009-07-31  
itstarting 写道


说说我的调试验证过程:
(注:验证你的包时,我正好在看OSWorkflow的代码,就扔进去试了)

为了搞清楚你说的“工程里面用户获取链接的类”,我还看了相关的代码,为:com.opensymphony.user.provider.jdbc.BaseJDBCProvider

这里的代码其实很简单:
protected DataSource ds;
...
ds = (DataSource) lookup(jndi);
...
ds.getConnection();

我跟踪调试了代码,此时lookup到的ds就是“org.apache.tomcat.dbcp.dbcp.BasicDataSource”的实例

到这里,我一直以为“工程里面用户获取链接的类”指的就是“org.apache.tomcat.dbcp.dbcp.BasicDataSource”,但怎么试都不行,我甚至怀疑自己的修改没有起作用,又看了看你的代码,确认无误啊

此时我灵机一动,你说的不会就是com.opensymphony.user.provider.jdbc.BaseJDBCProvider吧,一试果然对了,真是晕啊。

建议:你起名的driver-clazzs应该调整调整,哪怕叫ConnectionManager之类的也好;或者好好的写注释,否则还不知道你会因为这个问题浪费多少口舌,也不知让多少像我这么郁闷但又没我坚持的人对你的作品敬而远之。


driver-clazzs的配置不管在界面上还是文档里都有说明,很多网友不爱看,又或者我的描述不清楚。其实driver-clazzs的配置是很灵活的,不仅仅配ConnectionManager可以,配连接池的Datasource也可以,甚至直接配数据库驱动也可以,可能这个名字确实需要换一换,呵呵
28 楼 itstarting 2009-07-30  
leadyu 写道
itstarting 写道
leadyu 写道
Jwebap JdbcComponent配置注意:


JdbcComponent 对于本地数据源,在配置driver-clazz时不推荐直接配置数据库驱动作为driver-clazz,这和原先配置文档的说明不同,请大家注意!

由于一般应用都采用连接池技术作为数据源,而直接配置数据库驱动作为driver-clazz,会受到连接池影响,监控发现所有的连接都是未关闭的,造成jwebap泄漏检测,时间统计的结果都无效了。所以,这种情况,建议直接配置,连接池的Datasource作为driver-clazz:

1)c3p0:可以配置com.mchange.v2.c3p0.ComboPooledDataSource

2)dbcp:可以配置org.apache.commons.dbcp.BasicDataSource

同时,也可以配置应用自己封装的ConnectionManager之类的类。jwebap对于driver-clazz所返回的Connection和Datasource会做监控。




我在TOMCAT5.5下,使用了JNDI,此时是JNDI+JDBC的模式使用数据源,使用mysql数据库
我分析了这个版本的DBCP,不是标准的commons-jdbc,而是naming-factory-dbcp


此时我尝试了很多的办法,都无法配置出JdbcComponent的driver-clazzs:
1、org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSourceFactory

2、org.apache.tomcat.dbcp.dbcp.BasicDataSource
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSource

3、com.mysql.jdbc.NonRegisteringDriver
——我拷贝了驱动到WEB-INF/lib下,此时在使用连接时才会出现异常:java.lang.NoClassDefFoundError: org/jwebap/toolkit/bytecode/asm/StaticHandleFactory





你用的这个dbcp其实还是容器管理的jndi连接池,为什么出现duplicate class definition重复类定义错误呢,是由于这个链接数据源是容器自己构建的,是没有办法在web应用里面监控。你可以把driver-clazzs配成你工程里面用户获取连接的类,它所返回的连接或者datasource对象都会被监控。

昨天已有网友问过这个问题,现在已经解决了,你试下



搞定了!

说说我的调试验证过程:
(注:验证你的包时,我正好在看OSWorkflow的代码,就扔进去试了)

为了搞清楚你说的“工程里面用户获取链接的类”,我还看了相关的代码,为:com.opensymphony.user.provider.jdbc.BaseJDBCProvider

这里的代码其实很简单:
protected DataSource ds;
...
ds = (DataSource) lookup(jndi);
...
ds.getConnection();

我跟踪调试了代码,此时lookup到的ds就是“org.apache.tomcat.dbcp.dbcp.BasicDataSource”的实例

到这里,我一直以为“工程里面用户获取链接的类”指的就是“org.apache.tomcat.dbcp.dbcp.BasicDataSource”,但怎么试都不行,我甚至怀疑自己的修改没有起作用,又看了看你的代码,确认无误啊

此时我灵机一动,你说的不会就是com.opensymphony.user.provider.jdbc.BaseJDBCProvider吧,一试果然对了,真是晕啊。

建议:你起名的driver-clazzs应该调整调整,哪怕叫ConnectionManager之类的也好;或者好好的写注释,否则还不知道你会因为这个问题浪费多少口舌,也不知让多少像我这么郁闷但又没我坚持的人对你的作品敬而远之。
27 楼 daiing 2009-07-28  
leadyu 写道
daiing 写道
1、MethodComponent 配置里的detect-clazzs 为何不支持递归搜索,现在只支持配置到哪里就trace哪里,只能一个.*,连.*.*都不行更不用说递归所有子目录了
如果项目大点,有几百个子目录,那不是完全无法完成的任务
我觉得理论上这个不难啊,建议在下个版本里支持
2、第二个问题,sqls里显示
Statement: 2009-07-27 03:42:56/2009-07-27 03:42:56
sql: 3ms 9%
但是在列表里的cost是32,这个3ms,9%,32ms各是什么含义?能否解释一下,谢谢
3、第三个问题,Method trace里能不能把get,set方法过滤掉,你知道spring里一堆的get,set方法,翻了几页就一个有用的方法,其他都是get,set方法,太影响使用效率了


1)jwebap确实不支持包名通配符,我觉得一般也没有必要对全工程进行监控,一个是粒度太细必然给工程带来一定压力,可以只针对某一层次进行监控,比如业务层,或者服务层。在实现上,要考虑的问题也是比较多的。

2)这个时间指sql实际执行的时间,列表的时间指Connection从获取到关闭的时间,如果两者差距较大,这部分时间有可能开销在sql执行完,到连接关闭间的代码中(一般是操作游标的代码,可以理解成,数据传输的时间)

3)你提的建议,很好,这个版本的trace分析器还不具备这种过滤功能,待以后增强吧


第一个问题,在实际上线的时候是不可能对所有程序进行监控,对效率肯定有影响,但是在开发过程中,效率就不是考虑的问题,每个人都要对自己的所有程序监控一下,如果能实现了更大的范围,那更小的范围自然也能实现,每个场景下的需求是不同的,你这个项目做的不错,但是希望这个功能可以的话还是加上吧
26 楼 leadyu 2009-07-27  
daiing 写道
1、MethodComponent 配置里的detect-clazzs 为何不支持递归搜索,现在只支持配置到哪里就trace哪里,只能一个.*,连.*.*都不行更不用说递归所有子目录了
如果项目大点,有几百个子目录,那不是完全无法完成的任务
我觉得理论上这个不难啊,建议在下个版本里支持
2、第二个问题,sqls里显示
Statement: 2009-07-27 03:42:56/2009-07-27 03:42:56
sql: 3ms 9%
但是在列表里的cost是32,这个3ms,9%,32ms各是什么含义?能否解释一下,谢谢
3、第三个问题,Method trace里能不能把get,set方法过滤掉,你知道spring里一堆的get,set方法,翻了几页就一个有用的方法,其他都是get,set方法,太影响使用效率了


1)jwebap确实不支持包名通配符,我觉得一般也没有必要对全工程进行监控,一个是粒度太细必然给工程带来一定压力,可以只针对某一层次进行监控,比如业务层,或者服务层。在实现上,要考虑的问题也是比较多的。

2)这个时间指sql实际执行的时间,列表的时间指Connection从获取到关闭的时间,如果两者差距较大,这部分时间有可能开销在sql执行完,到连接关闭间的代码中(一般是操作游标的代码,可以理解成,数据传输的时间)

3)你提的建议,很好,这个版本的trace分析器还不具备这种过滤功能,待以后增强吧
25 楼 daiing 2009-07-27  
1、MethodComponent 配置里的detect-clazzs 为何不支持递归搜索,现在只支持配置到哪里就trace哪里,只能一个.*,连.*.*都不行更不用说递归所有子目录了
如果项目大点,有几百个子目录,那不是完全无法完成的任务
我觉得理论上这个不难啊,建议在下个版本里支持
2、第二个问题,sqls里显示
Statement: 2009-07-27 03:42:56/2009-07-27 03:42:56
sql: 3ms 9%
但是在列表里的cost是32,这个3ms,9%,32ms各是什么含义?能否解释一下,谢谢
3、第三个问题,Method trace里能不能把get,set方法过滤掉,你知道spring里一堆的get,set方法,翻了几页就一个有用的方法,其他都是get,set方法,太影响使用效率了
24 楼 leadyu 2009-07-24  
lovit 写道
为什么看不到执行的SQL,谢谢!


请把错误和你的配置发出来
23 楼 leadyu 2009-07-24  
itstarting 写道
leadyu 写道
Jwebap JdbcComponent配置注意:


JdbcComponent 对于本地数据源,在配置driver-clazz时不推荐直接配置数据库驱动作为driver-clazz,这和原先配置文档的说明不同,请大家注意!

由于一般应用都采用连接池技术作为数据源,而直接配置数据库驱动作为driver-clazz,会受到连接池影响,监控发现所有的连接都是未关闭的,造成jwebap泄漏检测,时间统计的结果都无效了。所以,这种情况,建议直接配置,连接池的Datasource作为driver-clazz:

1)c3p0:可以配置com.mchange.v2.c3p0.ComboPooledDataSource

2)dbcp:可以配置org.apache.commons.dbcp.BasicDataSource

同时,也可以配置应用自己封装的ConnectionManager之类的类。jwebap对于driver-clazz所返回的Connection和Datasource会做监控。




我在TOMCAT5.5下,使用了JNDI,此时是JNDI+JDBC的模式使用数据源,使用mysql数据库
我分析了这个版本的DBCP,不是标准的commons-jdbc,而是naming-factory-dbcp


此时我尝试了很多的办法,都无法配置出JdbcComponent的driver-clazzs:
1、org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSourceFactory

2、org.apache.tomcat.dbcp.dbcp.BasicDataSource
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSource

3、com.mysql.jdbc.NonRegisteringDriver
——我拷贝了驱动到WEB-INF/lib下,此时在使用连接时才会出现异常:java.lang.NoClassDefFoundError: org/jwebap/toolkit/bytecode/asm/StaticHandleFactory





你用的这个dbcp其实还是容器管理的jndi连接池,为什么出现duplicate class definition重复类定义错误呢,是由于这个链接数据源是容器自己构建的,是没有办法在web应用里面监控。你可以把driver-clazzs配成你工程里面用户获取连接的类,它所返回的连接或者datasource对象都会被监控。

昨天已有网友问过这个问题,现在已经解决了,你试下
22 楼 itstarting 2009-07-22  
leadyu 写道
Jwebap JdbcComponent配置注意:


JdbcComponent 对于本地数据源,在配置driver-clazz时不推荐直接配置数据库驱动作为driver-clazz,这和原先配置文档的说明不同,请大家注意!

由于一般应用都采用连接池技术作为数据源,而直接配置数据库驱动作为driver-clazz,会受到连接池影响,监控发现所有的连接都是未关闭的,造成jwebap泄漏检测,时间统计的结果都无效了。所以,这种情况,建议直接配置,连接池的Datasource作为driver-clazz:

1)c3p0:可以配置com.mchange.v2.c3p0.ComboPooledDataSource

2)dbcp:可以配置org.apache.commons.dbcp.BasicDataSource

同时,也可以配置应用自己封装的ConnectionManager之类的类。jwebap对于driver-clazz所返回的Connection和Datasource会做监控。




我在TOMCAT5.5下,使用了JNDI,此时是JNDI+JDBC的模式使用数据源,使用mysql数据库
我分析了这个版本的DBCP,不是标准的commons-jdbc,而是naming-factory-dbcp


此时我尝试了很多的办法,都无法配置出JdbcComponent的driver-clazzs:
1、org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSourceFactory

2、org.apache.tomcat.dbcp.dbcp.BasicDataSource
——此时加载时即出现异常:java.lang.LinkageError: duplicate class definition: org/apache/tomcat/dbcp/dbcp/BasicDataSource

3、com.mysql.jdbc.NonRegisteringDriver
——我拷贝了驱动到WEB-INF/lib下,此时在使用连接时才会出现异常:java.lang.NoClassDefFoundError: org/jwebap/toolkit/bytecode/asm/StaticHandleFactory


21 楼 lovit 2009-07-22  
为什么看不到执行的SQL,谢谢!
20 楼 hua0424 2009-07-21  
请问能对配置的包进行递归吗?
比如 test.test1.file.java
如果我配置test.*
那么file.java会不会被跟踪到
19 楼 hua0424 2009-07-21  
proxool连接池应该怎么配置
18 楼 leadyu 2009-07-21  
这个是由于MethodComponent默认配置了对test.Test类的监控,你在jwebap控制台界面上,把这个配置去掉就是:jwebap console>plugins>tracer>methodcomponent>detect-classes
17 楼 lovit 2009-07-20  
fanwenqiang666 写道
我出现这个错误不知道是为什么? 请楼主帮忙

org.jwebap.toolkit.bytecode.InjectException: test.Test注入失败.
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.injectInternal(ASMInjectorStrategy.java:145)
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.inject(ASMInjectorStrategy.java:117)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:107)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:95)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:82)
	at org.jwebap.plugin.tracer.method.MethodComponent.injectClass(MethodComponent.java:92)
	at org.jwebap.plugin.tracer.method.MethodComponent.startup(MethodComponent.java:55)
	at org.jwebap.core.RuntimeContext.registerComponent(RuntimeContext.java:73)
	at org.jwebap.startup.Startup.startup(Startup.java:86)
	at org.jwebap.startup.Startup.startup(Startup.java:54)
	at org.jwebap.startup.JwebapListener.contextInitialized(JwebapListener.java:36)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: test.Test not found.
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.defineClass(ASMInjectorStrategy.java:213)
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.injectInternal(ASMInjectorStrategy.java:142)
	... 34 more
我也出现了 这个问题。

相关推荐

Global site tag (gtag.js) - Google Analytics