`
roc08
  • 浏览: 227530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2升级后在tomcat后台报not a Jboss5 提示

    博客分类:
  • SSH
阅读更多
1.问题:
    在Tomcat启动时会在struts2初始化时提示  org.apache.struts2.util.fs.JBossFileManager DEBUG Cannot load [org.jboss.vfs.VirtualFile] class, not a JBoss 7!
整个启动过程中大概有468条类似信息,按道理来说 tomcat启动不应该报非jboss,而且即使他采用策略模式也不应该报这么多次。
2.问题原因:
   struts2从大概2.3.7版本后调整了FileManager类结果,将JBoss的逻辑分离出来,在容器初始化时如果没有用户自定义的FileManager,会默认使用JbossFileManager,





。而FileManager会用来加载xml配置文件和action中的配置信息。(OsgiConfigurationProvider类中),action中的配置这块是给super中的struts config用的。

这里用来加载xml配置文件




这里用来加载action类



这是最终加载action类的逻辑






每次要使用FileManager,容器中只有两个 system和jboss,因此会判断是否是jboss环境,不是的话采用system,因此在OSGi环境下查找多个配置文件和action类便出现了很多次判断是否是jboss。
再验证问题的过程中,发现以上逻辑走了两遍,因为我们在web.xml中配了StrutsListener和StrutsPrepareFilter,这两个都是struts入口,都会初始化dispatcher,加载xml配置和action中的配置。



3.解决方案:
   A.自定义一个FileManager和FileManagerFactory,继承默认实现,创建缓存,不再重复生成FileManager.并在Struts.xml和web.xml中配置参数,使其不再使用JBossFileManager.
   B.上一步只能解决StrutsPrepareFilter初始化Dispatcher过程,而StrutsListener初始化Dispatcher时是不支持自定义参数的,因此还会使用默认的JBossFileManager,因此考虑去掉此Listener,这样就不会
重复初始化Dispatcher过程了,也会加快系统的启动过程。

查询资料StrutsListener是用来向其他servlet listener提供struts config信息的,比如 sitemesh和osgi,否则 推荐使用StrutsPrepareAndExecuteFilter。
The preferred way to use Struts is as a filter via the
* {@link org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter} and its variants.
* This might be useful if Struts config information is needed from other servlet listeners, like
* Sitemesh or OSGi
目前去掉此strutsListener后尚未发现有影响。

  • 大小: 10.2 KB
  • 大小: 27.2 KB
  • 大小: 13.9 KB
  • 大小: 10.1 KB
  • 大小: 25.9 KB
  • 大小: 19.9 KB
  • 大小: 11.6 KB
1
0
分享到:
评论
2 楼 roc08 2015-01-10  
string2020 写道
还有人敢用struts?

还是很多企业用的,struts2相对于spring mvc是有优点的,个人感觉Action的代码组织结构比spring mvc更适合传统的中大型应用开发,spring mvc 的controllor总感觉有些乱 业务多了 而Action一个业务一个action 更适合领域开发。就像类与函数的区别。当然这都是我个人用的感觉
1 楼 string2020 2014-12-29  
还有人敢用struts?

相关推荐

    TOMCAT移植到JBOSS

    ### 知识点详解:“TOMCAT移植到JBOSS” #### 1. **Web应用服务器的概念** 在探讨从TOMCAT移植到JBOSS的过程中,我们首先需要理解Web应用服务器的基本概念。Web应用服务器是运行Java Web应用程序的平台,如...

    jboss4版本修复Apache Tomcat DIGEST身份验证多个安全漏洞(CVE-2012-3439)升级包

    jboss4版本下,jbossweb-tomcat55.sar升级包,修复Apache Tomcat DIGEST身份验证多个安全漏洞(CVE-2012-3439) 升级包中的jar来源于tomcat5.5.36 使用方法:直接替换jboss中旧的jbossweb-tomcat55.sar

    apache 集成 jboss、tomcat

    2. **JKMount配置**:在Apache的配置文件(httpd.conf)中,需要添加JKMount指令来指定哪些URL应由Tomcat或JBoss处理。例如,`JKMount /app/* worker1`表示所有以/app/开头的URL都应转发到名为worker1的工作线程。 ...

    java项目tomcat迁移到jboss

    Java 项目从 Tomcat 迁移到 JBoss 的解决方案 在 Java 项目中,迁移到 JBoss 可能会出现各种问题,例如版本兼容问题、设置问题等。本文将介绍如何解决这些问题,包括如何配置 JBoss,使得 Spring 项目能够正常运行...

    jboss与struts漏洞解决

    《JBoss与Struts漏洞解决详解》 在信息技术领域,安全问题始终是不容忽视的关键环节。本文主要针对两个常见的漏洞——JBoss漏洞和Struts漏洞,详述其情况、影响以及解决方案,旨在帮助用户理解漏洞的危害并采取有效...

    Apache Tomcat JBOSS Nginx区别

    Apache Tomcat JBOSS Nginx区别 Apache Tomcat 和 JBOSS 是两种不同的服务器软件,而 Nginx 是一种高性能的 HTTP 服务器。下面我们来详细比较它们的区别: 一、Apache 和 Tomcat Apache 是一个 Web 服务器,...

    JBOSS+TOMCAT集成开发环境。完整版

    2. **配置启动脚本**:修改JBOSS的启动脚本(如`run.sh`或`run.bat`),确保在启动JBOSS时同时启动TOMCAT。 3. **配置服务器端口**:由于两者都默认使用8080端口,因此需要修改各自的配置文件(JBOSS的`server.xml`...

    Struts2及jboss漏洞利用工具

    Struts2和JBoss是两个在企业级Java应用开发中广泛使用的开源框架。Struts2是一个基于MVC设计模式的Web应用框架,而JBoss则是一个应用服务器,它支持Java EE标准并提供运行和管理Java应用程序的环境。这两个组件在...

    TOMCAT项目转成JBOSS项目的步骤

    TOMCAT项目转成JBOSS项目的步骤

    tomcat、weblogic、jboss的区别

    "tomcat、weblogic、jboss的区别" Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,它是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些...

    Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行源码

    Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行工程源码,在tomcat7上运行也成功测试了,注意:我工程文件是用myeclipse2013开发的,你需要导入自己ide的时候,会有兼容性问题:最好阁下是自己新建一个maven...

    替换两个文件解决Tomcat6项目移植到JBoss5.1下的Logging异常

    除了加入jboss-web.xml,删除xerces-2.6.2.jar和xml-apis.jar之外, <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web ...原因是旧版本的slf4j-api不包含以上方法,附件解压后覆盖jboss5.1GA/common/lib下的同名文件即可

    CXF发布WebService,jboss和tomcat都能发布

    在本教程中,我们将深入探讨如何使用CXF在JBoss和Tomcat这两种流行的Java应用服务器上发布Web服务。 ### 一、CXF WebService发布 1. **CXF环境搭建** 在开始之前,确保你已经安装了Java Development Kit (JDK) 和...

    Apache+Jboss(Tomcat)集群配置

    Apache+Jboss(Tomcat)集群配置是一种常见的高可用性和负载均衡解决方案,它通过在前端部署Apache服务器,中间层配置多个Jboss或Tomcat应用服务器,后端连接统一的数据库来实现系统的扩展性和稳定性。以下是配置这个...

    J2EE应用服务器Jboss+Tomcat安装攻略

    J2EE应用服务器是企业级Java应用程序开发和部署的核心平台,而Jboss和Tomcat的组合提供了一种开源且稳定的选择。Jboss是一款强大的J2EE应用服务器,它支持多种J2EE规范,如EJB(Enterprise JavaBeans)、JMS(Java ...

    Tomcat web工程 调用 JBOSS EJB local及remote源码

    Tomcat下web工程调用JBOSS部署的EJB项目 此源码包 包括local本地调用及remote远程调用 文档说明在http://blog.csdn.net/heardy/article/details/6906225

    tomcat转化为jboss并集成spring

    tomcat转化为jboss之前遇到过,弄了很久终于解决了,现在把所有资料整理到了一起,包括解决在集成中会遇到的问题,所要添加的jar包、删除的jar包等等

    jBoss+tomcat学习笔记大全,jBoss+tomcat的帮助文档

    在开始深入探讨jBoss与Tomcat的集成之前,我们先来了解如何搭建基本的开发环境。 ##### 1. Java 环境配置 - **安装 J2SDK1.4+ 和 J2SEDEE1.4+**:首先,确保安装了适用于 jBoss 的 Java 环境。J2SEDEE1.4+ 是指 ...

    Tomcat-JBoss-Weblogic-Jetty的区别和介绍

    Tomcat应用也算非常广泛的web 服务器,支持部分j2ee,免费,出自 apache基金组织 JBoss开源的应用服务器,比较受人喜爱,免费(文档要收费) weblogic应该说算是业界第一的app server,全部支持j2ee1.4, 对于...

Global site tag (gtag.js) - Google Analytics