- 浏览: 1608267 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
前天,有个小应用,用Struts1.2.8作为系统框架,突然出现问题,启动时控制台上报错:
<2009-10-29 下午11时36分40秒 CST> <Error> <HTTP> <BEA-101216> <Servlet: "action" failed to preload on startup in Web application
"xmdswzgb".
javax.servlet.UnavailableException: org.apache.struts.util.MessageResourcesFactory.setConfig(Lorg/apache/struts/config/MessageRe
urcesConfig;)V
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:368)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:993)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:869)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3197)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
at weblogic.servlet.internal.HttpServer.preloadResources(HttpServer.java:688)
at weblogic.servlet.internal.WebService.preloadResources(WebService.java:483)
at weblogic.servlet.internal.ServletInitService.resume(ServletInitService.java:30)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:964)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:359)
at weblogic.Server.main(Server.java:32)
粗一看,以就 中Struts启动初始化时装载配置文件出错,于是就按这个思路去找原因,翻来覆去就是找不出原因来,也拿Struts的源代码来单步跟踪,最后都是在:org.apache.struts.action.ActionServlet类中的方法initModuleMessageResources内出错,具体就是在执行:
factoryObject.setConfig(mrcs[i]);
这句时就出错了,查看factoryObject对象,没发现里面有定义setConfig方法。但我没意识到是这里出问题,于是继续找。找了两三天,还没有结果。
今天,想看看日志里会不会有什么线索。打开后发现日志里对这个错报出的信息与上面控制台显示的有所不同,如下:
2009-10-29 23:03:11 ERROR (ActionServlet.java:364) - Unable to initialize Struts ActionServlet due to an unexpected exception or error thrown, so marking the servlet as unavailable. Most likely, this is due to an incorrect or missing library dependency.
java.lang.NoSuchMethodError: org.apache.struts.util.MessageResourcesFactory.setConfig(Lorg/apache/struts/config/MessageResourcesConfig;)V
at org.apache.struts.action.ActionServlet.initModuleMessageResources(ActionServlet.java:918)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:334)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:993)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:869)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3197)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
at weblogic.servlet.internal.HttpServer.preloadResources(HttpServer.java:688)
at weblogic.servlet.internal.WebService.preloadResources(WebService.java:483)
at weblogic.servlet.internal.ServletInitService.resume(ServletInitService.java:30)
at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:964)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:359)
at weblogic.Server.main(Server.java:32)
看到红字那一句,原来是方法找不到,联想到刚才跟踪时factoryObject对象中没有setConfig方法,看来原因就是这个了。但我用的1.2.8版本的Struts,而从1.2.8的源代码可以看到是有这个方法的。怎么回事呢?我怀疑是不是应用中包含了两个不同版本的Struts。我于是就搜索应用的目录,没找到重复的Struts.jar。
于是手工在目录中进行搜寻,突然看到编译目标目录下有一个Struts1.2.7的目录,里面是完整的Struts1.2.7的包结构,于是就把目录从ClassPath中移除,再重启,OK。原来真是版本冲突带来的问题,这个1.2.7版的Struts是前两天为了调试一个问题而下载的,并把这些源文件也放到工程目录,开发工具自动编译了那些源文,才导致了前面出现的问题。于是把Struts1.2.7的类删除,再重启,就不再报错了。
发表评论
-
SpringBoot Fat Jar解压运行
2018-06-28 21:40 2258SpringBoot已经成为当前最流行的微服务 ... -
一句话实现五星评分显示
2018-06-05 08:31 997Python: rate = 1 #rate 取值 ... -
来算google的可视化编程工具——Blockly,不仅仅是玩具
2017-10-16 21:34 33120Blockly - 来自Google的可 ... -
安卓动态分析工具 Inspeckage
2017-08-07 08:46 0工具介绍 一个基于Xposed 开发的应用动态分析工具 g ... -
Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息
2017-08-07 08:37 0一、猜想数据存放路径 微信现在是老少皆宜,大街小巷都在使用 ... -
破解微信数据库 并查询数据上传服务器
2017-08-07 08:29 0由于工作需求破解了微信的数据库 并获取想要的信息上传服 ... -
安卓黑科技之HOOK详解
2017-08-07 08:21 0本文带大家进入到安卓另一个世界 互联网攻防大战 Xpos ... -
安卓逆向之基于Xposed-ZjDroid脱壳
2017-08-07 08:18 0前言 之前介绍了普通常见的反编译模式 但对于使用了 360 ... -
十步以内完成精细web打印
2017-06-21 11:44 7367注意: 康虎云报表组 ... -
浏览器端精准打印或套打组件
2017-01-18 13:05 6695注意: 康虎云报表 ... -
疯狂软件对Oracle放弃Java EE的看法
2016-08-14 22:38 525来源:http://javaligang ... -
几个Java相关的思维导图
2016-03-17 13:07 954来源:http://blog.csdn.net/jackf ... -
jasperReport Applet 打印
2016-02-01 16:33 868Applet方式的原理是本地下载Applet以及Jas ... -
为Java说句公道话
2016-01-24 10:59 712为Java说句公道话 有些 ... -
Mybatis Generator配置详解(中文)_转
2015-12-17 16:44 917来自: http://www.jianshu.com/p/e ... -
一个提供大量数据模型的网站
2015-12-17 14:00 981网站地址是:http://www.databaseansw ... -
采用ajp代理模式配置Apache+tomcat实现负载均衡(转)
2015-11-13 10:22 869这一种方法,配置简单,性能也高。附AJP介绍: AJP ... -
MyBatis配置文件修改侦测及重载的实现
2015-07-31 13:53 2334MyBatis配置文件修改侦测及重载的实现: /** ... -
Spring optional @PathVariable?
2015-07-09 13:13 913Q: Is it possible to somehow ... -
The forked VM terminated without saying properly goodbye. VM crash or System.exi
2015-07-07 18:22 4289The forked VM terminated witho ...
相关推荐
总的来说,处理Struts2.1和Hibernate3.3的冲突是一个细致的过程,需要理解两个框架的内部机制和依赖关系,同时也需要对Java类加载机制有一定的了解。通过合理地管理库文件和配置,我们可以在保持框架功能完整性的...
Struts2 是一个基于MVC(Model-View-Controller)架构模式的Java Web框架,它提供了强大的控制器层功能,帮助开发者构建动态、数据驱动的Web应用。而FCKeditor则是一个富文本编辑器,允许用户在网页上创建和编辑内容...
Struts2作为Struts框架的第二代产品,提供了一个灵活的架构来支持MVC设计模式,帮助开发者更高效地构建复杂的Web应用。然而,任何软件系统都无法完全避免安全隐患,Struts2也不例外。 在2017年,Struts2被曝出多个...
标题提到的"struts2没有冲突的源代码"可能是指在项目集成或依赖管理中,所有相关的Struts2库和其他第三方库之间不存在版本冲突的问题。 描述中的"jar包没有冲突"意味着所有的Java Archive (JAR) 文件,即包含Java类...
- 避免版本冲突:确保所有依赖库的版本一致,以防止因不同版本间的不兼容问题导致错误。 - 更新安全补丁:Struts2历史上曾出现过严重的安全漏洞,比如著名的CVE-2017-5638,因此应及时更新到最新修复版本。 描述中...
但有些Struts2的插件或者拦截器可能期望动作类是一个接口,这可能导致问题。确保你知道哪种代理模式正在被使用,并且它与你的代码兼容。 4. **依赖注入问题**:Spring的依赖注入可能会在Struts2的生命周期中出现...
而Struts2是一个流行的MVC框架,用于构建动态、高性能的Web应用程序。两者整合可以实现动态数据的报表生成和展示,但在实际应用中,往往会遇到过滤器冲突的问题。 ### BIRT与Struts2整合的关键知识点 #### 1. 过滤...
Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并在此基础上增加了许多新特性,如拦截器(Interceptor)、结果类型(Result Type)等。Struts2框架通过简化开发过程并提供一系列强大的功能,帮助...
Struts2是一个基于MVC设计模式的Java Web框架,而SWFupload则是一个JavaScript库,用于实现Flash的文件上传功能。两者结合使用时,可能会遇到一些冲突问题,主要是由于它们处理文件上传的方式不同所导致的。下面将...
Struts是Apache软件基金会下的一个开源项目,主要提供MVC(Model-View-Controller)设计模式的实现,用于构建企业级的Java Web应用程序。这里提到的"struts1和struts2相关jar包"分别指的是Struts框架的两个主要版本...
值得注意的是,"要不然会导致jar包冲突"提示我们,仅添加新版本的jar而不删除旧版本可能会导致运行时问题,因为多个版本的同一库在同一环境中并存可能会引起不兼容或混乱。 标签"struts2漏洞"、"struts2升级"和...
2. **类装载混乱**:由于Java的类加载机制,可能会导致一个应用中的类覆盖另一个应用的类,引发运行时异常。 3. **资源冲突**:例如,Struts2的配置文件(struts.xml)或Spring的配置文件(applicationContext.xml)...
检查pom.xml或lib目录,确保只使用一个版本的Struts2库。 5. **Null Pointer Exception**:这可能是由于Action中的属性没有初始化或对象为null时调用了其方法。确保所有对象在使用前都已正确初始化。 6. **Action...
**Struts2**是Apache Struts的一个后续版本,它是一个开源的Web应用程序框架,主要用于Java EE平台上的MVC架构设计模式。相比于其前身Struts1,Struts2提供了更强大的功能集,包括更加灵活的配置方式、丰富的拦截器...
在给定的标题和描述中,提到的是关于Struts2的JSON插件和相关库的版本问题,以及如何解决这个问题。 首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON...
在整合Struts2、Spring和Hibernate时,我们通常会遇到一些包冲突的问题,尤其是在使用IDE如MyEclipse时。这可能是由于不同库版本之间的不兼容性,或者是重复引入了相同的类导致的。解决这些问题通常需要仔细检查项目...
- 如果在 `core` 文件夹中有 Struts 的核心库,可能是为了处理类路径下的 JAR 包冲突或版本兼容性问题。确保所有依赖库版本兼容,避免使用不同版本的 Struts 组件混搭。 3. **自定义组件或插件**: - 文件 `day...
本实例聚焦于“kindeditor编辑器与struts2上传图片错误冲突的解决”,这是一个常见的问题,特别是在开发涉及用户内容编辑和上传功能的Web应用时。Kindeditor是一款强大的开源富文本编辑器,它提供了丰富的编辑功能,...
- **版本兼容性**:在选择这些jar包时需要注意其版本号与其他依赖库之间的兼容性问题,避免出现版本冲突导致的问题。 - **安全性**:确保所使用的jar包是最新的稳定版本,定期检查并更新至最新版本以修复已知的安全...
在Struts2框架中,文件上传是一个常见的功能,允许用户通过表单提交文件到服务器进行存储或处理。在实现文件上传时,Struts2需要一个临时目录来保存上传的文件内容,直到它们被完全接收并处理。这个临时目录是通过...