该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-16
查看tomcat日志:
Caused by: Unable to load bean: type:com.opensymphony.xwork2.UnknownHandler class:com.demo2do.lighturl.LightURLUnknownHandler - bean - jar:file:/E:/MyTestProject/newmini_web/WebRoot/WEB-INF/lib/struts2-lighturl-plugin-0.9.jar!/struts-plugin.xml:8:108 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:239) at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:100) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:156) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) ... 22 more Caused by: Bean type interface com.opensymphony.xwork2.UnknownHandler with the name default has already been loaded by bean - file:/E:/MyTestProject/newmini_web/WebRoot/WEB-INF/classes/struts-plugin.xml:8:108 - bean - jar:file:/E:/MyTestProject/newmini_web/WebRoot/WEB-INF/lib/struts2-lighturl-plugin-0.9.jar!/struts-plugin.xml:8:108 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:223) ... 25 more |
|
返回顶楼 | |
发表时间:2009-01-16
显然是jar包冲突所致,你肯定还有其他的struts2的plugin实现了UnknownHandler接口。
|
|
返回顶楼 | |
发表时间:2009-01-19
按照你的配置:
## action package config lighturl.action.packages=com.demo2do.lighturl.action ## action mapping implementation class struts.mapper.class=com.demo2do.lighturl.LightURLActionMapper ## default parent package lighturl.action.default.parent.package=lighturl ## define your entity package (optional) # lighturl.entity.package=com.demo2do.lighturl.entity 建立om.demo2do.lighturl.action包 Index.java 类: public class Index extends ActionSupport { private static final long serialVersionUID = -2083335726534827269L; /* (non-Javadoc) * @see com.opensymphony.xwork2.ActionSupport#execute() */ @Override public String execute() throws Exception { return super.execute(); } } 没有加index.java之前,启动tomcat什么问题都没有 启动tomcat,报错: 2009-1-19 14:39:18 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext 2009-1-19 14:39:25 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter struts2 java.lang.AbstractMethodError: com.demo2do.lighturl.config.impl.DefaultActionConfigBuilder$1.doesMatchResource()Z at com.opensymphony.xwork2.util.ResolverUtil.isTestApplicable(ResolverUtil.java:391) at com.opensymphony.xwork2.util.ResolverUtil.loadImplementationsInDirectory(ResolverUtil.java:384) at com.opensymphony.xwork2.util.ResolverUtil.findInPackage(ResolverUtil.java:347) at com.opensymphony.xwork2.util.ResolverUtil.find(ResolverUtil.java:302) at com.demo2do.lighturl.config.impl.DefaultActionConfigBuilder.getPackageBasedActionMapper(DefaultActionConfigBuilder.java:255) at com.demo2do.lighturl.config.impl.DefaultActionConfigBuilder.buildActionConfigs(DefaultActionConfigBuilder.java:115) at com.demo2do.lighturl.LightURLConfigurationProvider.loadPackages(LightURLConfigurationProvider.java:80) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424) at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:213) at com.demo2do.lighturl.LightURLFilter.init(LightURLFilter.java:40) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3696) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4343) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 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:566) 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) 2009-1-19 14:39:25 org.apache.catalina.core.ApplicationContext log 信息: Closing Spring root WebApplicationContext 2009-1-19 14:39:25 org.apache.catalina.core.ApplicationContext log 信息: ContextListener: contextInitialized() 2009-1-19 14:39:25 org.apache.catalina.core.ApplicationContext log 信息: SessionListener: contextInitialized() |
|
返回顶楼 | |
发表时间:2009-01-19
楼上的朋友:不好意思,我前两天对LightURL做了一些bug fix。没有更新Javaeye这边上传的JAR包。
我已经重新上传了最新的jar包,你可以再试试。 |
|
返回顶楼 | |
发表时间:2009-01-19
换了这个jar包,还是包一样的错误!
|
|
返回顶楼 | |
发表时间:2009-01-19
目前 LightURL是基于struts2.0.X的版本写出来的。由于struts2.1.X尚属于beta版本,而且与之对应的XWork在IoC这块做了重大的修改,所以,我也暂不打算支持到struts2.1.X。如果使用struts2.1.X结合lighturl发生问题的朋友,请退回到 struts的稳定版本。
|
|
返回顶楼 | |
发表时间:2009-01-20
相当有意思的东西,只是在代码中加入annotation作为配置来使用,会比较难维护。
可以参照Maven的理念,定制一套默认规则,只要使用者按照规则来,就几乎零配置。 总之,赞一个,希望可以越做越好。 |
|
返回顶楼 | |
发表时间:2009-01-21
如果是包找不到,可以用DOCJAR.COM来查找
|
|
返回顶楼 | |
发表时间:2009-02-05
最后修改:2009-02-05
我这两天试了convetion 插件,和楼主的功能很相似,而楼主的lighturl 则可看做类似插件的扩展,不过我再这里有个疑问,在试用中感觉到一个问题,在楼主的介绍里没有看到倘若有这样一个action
package com.example.action.user public class UserAction{ public String editUser(){ } public String listUser(){ } public String deleteUser(){ } } 这样一个有多个方法的action ,能否在不使用announced 的前提下,根据一定的规则默认映射到三个url呢 比如 /user/user-edit-user /user/user-list-user /user/user-delete-user 补充一点,一个action类里的方法默认映射到一个action,如果使用了announced ,再为该方法增加一个url映射呢 |
|
返回顶楼 | |
发表时间:2009-02-05
kjj 写道 我这两天试了convetion 插件,和楼主的功能很相似,而楼主的lighturl 则可看做类似插件的扩展,不过我再这里有个疑问,在试用中感觉到一个问题,在楼主的介绍里没有看到倘若有这样一个action
package com.example.action.user public class UserAction{ public String editUser(){ } public String listUser(){ } public String deleteUser(){ } } 这样一个有多个方法的action ,能否在不使用announced 的前提下,根据一定的规则默认映射到三个url呢 比如 /user/user-edit-user /user/user-list-user /user/user-delete-user 补充一点,一个action类里的方法默认映射到一个action,如果使用了announced ,再为该方法增加一个url映射呢 你的这个问题,我希望在下一个版本的LightURL上加上。 目前LightURL只是在resultCode的解析上有一些独到的地方,其他地方和Struts2之前的几个插件还是比较类似的,之后我考虑在URL映射上面再下点功夫,争取把默认的许多URL映射直接映射到方法,这样就不需要在方法上配Annotation了。 |
|
返回顶楼 | |