No mapping found for dependency [type=java.lang.String, name='struts.devMode']

发布于 2021-11-29 05:34:18 字数 303 浏览 922 评论 5

@康杰 你好,想跟你请教个问题:


No mapping found for dependency [type=java.lang.String, name='struts.devMode'] 这种问题你解决过吗?


我在 struts 版本升级 2.1.8 升级到 2.3.16.3 是出错,一直解决不了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

妖妓 2021-12-01 11:54:43

虽然时间过去2年了.我还是补个答案吧,

出现这个问题,是因为使用 了Codebehind Plugin的包(你可以去查找下你的jar包,有这两个关键字的)。貌似早期这个的使用需要去web.xml文件里面,在struts的过滤器下配置init-param参数,参数名为actionPackages,参数的值是你的使用了annotation标签的java文件,这样他才会解析annotation。出现上面那个报错的原因,就是因为Codebehind Plugin他需要上面配置的参数去查找配置annotation的类,而没有配置的情况下,他找不到,于是报那个问题。

在2.1之后,使用了Convention Plugin 替代了Codebehind Plugin ,所以已经不需要配置init-param参数,所以你可以直接去掉Codebehind Plugin 的包,只要遵守Convention Plugin 要求的规则,他就会自动去解析对应的使用了annotation的文件,大致规则就是:

1. 扫描其位于包( “struts, struts2, action 或 actions“)的命名注解的类.
2. 接着,扫描相匹配下列任一条件的文件:
  实例了 com.opensymphony.xwork2.Action 接口。
  扩展了 com.opensymphony.xwork2.ActionSupport 类
  文件名用动作(例如:UserAction,LoginAction)结束

(参考内容:http://struts.apache.org/docs/convention-plugin.html#ConventionPlugin-Introduction ,在介绍的时候就写明了)

我不确认你是不是跟我一样的问题,我是使用annotation的时候发现的。因为我只使用了No mapping found for dependency [type=java.lang.String, 这几个关键字来查询。不过看这句的意思是没有发现依赖的配置信息,我想多半是在加载的时候找不到action的配置信息,所以把我的原因写上,有后来者的话可以参考下。

梦中楼上月下 2021-12-01 11:24:40

不是struts2的包,是其它的包与struts2有冲突

草莓味的萝莉 2021-12-01 06:51:28

struts2-convention-plugin-2.3.16.3.jar

struts2-core-2.3.16.3.jar

struts2-json-plugin-2.3.16.3.jar

struts2-spring-plugin-2.3.16.3.jar

xwork-core-2.3.16.3.jar

版本都是一致的。

坐在坟头思考人生 2021-12-01 03:29:04

struts2-convention-plugin-2.3.16.3.jar struts2-core-2.3.16.3.jar struts2-json-plugin-2.3.16.3.jar struts2-spring-plugin-2.3.16.3.jar xwork-core-2.3.16.3.jar 版本都是一致的。

回眸一笑 2021-11-30 21:03:26

这个问题貌似是jar包冲突所导致,我之前遇见过相同的问题。你导入了哪些jar包,贴图出来看看

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文