Q: 无法读取classpath下以及jar包中的资源文件
A: 由JBoss特殊的vfs协议导致。
JBoss部署war包时,会将lib下的jar包都分别生成1个以该jar包名为目录名的临时目录,该目录及其结构举例如下:
\jboss-as-7.1.1.Final\standalone\tmp\vfs\deployment4d324381d816bd6d\xxx.jar-f6e3c6735c9f83f9\contents
\jboss-as-7.1.1.Final\standalone\tmp\vfs\deployment4d324381d816bd6d\xxx.jar-f6e3c6735c9f83f9\contents\xxx.jar
以xxx.properties为例,通过classloader.getResource得到的文件url为
/jboss-as-7.1.1.Final/bin/content/xxx.war/WEB-INF/lib/xxx.jar/xxx.properties
而/bin/content 这个目录实际上是不存在的,通过以下代码可以得到该资源文件的path为:
\jboss-as-7.1.1.Final\standalone\tmp\vfs\deployment99c58cfccb17ed42\xxx.jar-f6e3c6735c9f83f9\contents\xxx.properties
而实际上contents目录又是空的,因此处理时需要解析得到xxx.jar包的物理路径,然后再从该jar包中取得资源文件。
Object content = url.openConnection().getContent(); Class<?> czz = Class.forName("org.jboss.vfs.VirtualFile"); Method m = czz.getMethod("getPhysicalFile"); File physicalFile = (File) m.invoke(content);
注:需要引入JBoss jar包,maven依赖如下:
<dependency> <groupId>org.jboss</groupId> <artifactId>jboss-vfs</artifactId> <version>3.0.1.GA</version> <!-- jdk1.6+ --> </dependency>
Q: 调用WebService接口时出现以下异常:
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/xxx].[WebServiceServlet]] (http--0.0.0.0-8380-2)
Servlet.service() for servlet WebServiceServlet threw exception:
java.lang.NoClassDefFoundError: com/sun/xml/messaging/saaj/soap/SOAPDocumentImpl
A: 删掉部署包中的以下2个jar包:saaj-impl-1.3.9.jar, saaj-api-1.3.3.jar
相关推荐
在文档的最后,作者列举了可能遇到的一些常见问题,并提供了相应的解决方案或者建议的解决途径。 整体而言,Jboss7快速入门手册覆盖了从安装到配置再到管理的全方位内容,使得用户能够快速掌握Jboss7的使用。文档...
然而,在 JBOSS 服务器中使用 Log4j 时,可能会遇到一些冲突和配置问题。本文将详细介绍如何解决 JBOSS 和 Log4j 的冲突,配置 Log4j,及 Log4j 的基本使用方法。 解决 JBOSS 和 Log4j 冲突的配置 为了解决 JBOSS ...
这表明开发者或用户在将GarageSale应用程序部署到JBoss 4.0.1版本上,并尝试与MySQL数据库进行交互时遇到了问题。这通常涉及到几个关键知识点: 1. **JBoss部署**:JBoss AS的部署过程涉及将WAR(Web应用程序归档)...
在IT环境中,JBoss作为一个广泛使用的应用服务器,有时会遇到端口号冲突的问题。尤其是在多个服务共享同一台机器时,端口冲突可能会导致服务无法正常启动。本文将详细介绍如何修改JBoss的端口号,特别是当其他服务...
在JBoss应用服务器中,日志管理是一项关键任务,它帮助开发者和系统管理员跟踪应用程序的运行状况、诊断问题以及优化性能。"jboss日志发邮件"是指通过配置JBoss来实现日志信息自动发送电子邮件的功能,这在系统监控...
总的来说,"snowdrop-vfs.jar" 和 "jboss-logging.jar" 这两个jar包是解决Spring与JBoss集成问题的重要工具,它们优化了类加载和日志处理,提高了应用的可维护性和稳定性。在开发和部署过程中,理解并合理使用这些...
通常,开发者在遇到这类问题时,会检查错误日志、堆栈跟踪以及相关的配置文件,以找出问题的根源。 标签“源码”和“工具”提示了解决此问题可能需要深入到JDK和JBoss AS的源代码中,以及可能涉及使用调试工具进行...
当我们遇到"jbos打包不起作用,替换jar即可"的问题时,通常意味着在进行JBoss应用部署过程中遇到了某些库文件的不兼容或缺失问题。下面我们将详细讨论这个问题及其解决方案。 首先,我们需要理解JBoss的工作原理。...
《JBoss开发者手册》是专为Java开发人员提供的一份详尽指南,它涵盖了JBoss应用服务器的各个方面,包括安装、配置、管理以及应用程序的开发和部署。JBoss是一款开源的Java EE应用服务器,它提供了全面的支持来实现...
在本文中,我们将讨论在CentOS操作系统环境下,如何进行Apache负载均衡与JBoss集群的配置。负载均衡和集群配置是提高网站可用性...在实施这些配置时,建议详细记录每一步操作,这样在遇到问题时能够快速地定位和解决。
在使用JBoss 3.2.1版本部署Web应用的过程中,遇到了一个长期存在的问题——内存占用过高,具体表现为即使对于规模不大、流量不多的站点,系统也经常需要消耗超过500MB的虚拟内存(即swap空间)。这个问题不仅增加了...
JBoss是Java企业版(Java EE)应用服务器,它允许开发者在Windows操作系统上部署和管理企业级应用程序。将JBoss发布为Windows服务意味着你可以通过...如果你遇到任何问题,可以查阅JBoss官方文档或社区资源来获取帮助。
当遇到"JBoss JTA configuration trouble shooting"的问题时,开发者通常需要深入理解JTA的工作原理以及如何在JBoss应用服务器中正确配置它。以下是对这个主题的详细讲解: 首先,JTA是一个Java标准,定义了API来...
在JBoss中,Log4j被用来记录服务器运行时的各种信息,帮助开发者调试和监控应用性能。这份文档可能详细介绍了如何配置和使用Log4j在JBoss环境中进行日志记录,包括日志级别设置、日志输出格式以及如何定制日志处理器...
1. **查看日志**:遇到问题时,首先检查`$JBOSS_HOME/standalone/log/server.log`,其中记录了服务器的启动和运行过程中的所有信息。 2. **使用CLI工具**:JBoss附带了一个强大的命令行接口(CLI),通过它可以实时...
在实际应用中,开发者可能还会遇到如事务管理、消息选择器、消息驱动适配器的定制等高级配置。理解这些配置对于优化MDB的行为和性能至关重要。同时,通过监控和日志记录,可以确保消息的正确传递和处理,从而确保...
在将Seam应用从JBoss迁移到Tomcat时,可能遇到“SeamListener cannot find datasource”这样的错误。这通常是由于数据源配置不正确或者JNDI查找失败导致的。 根据提供的信息,用户在Tomcat配置中已经包含了JBoss ...
9. **错误处理和日志记录**:集成过程中,确保有适当的错误处理机制和日志记录功能,以便在遇到问题时能快速定位和解决问题。 10. **性能优化**:部署后,可能需要对应用程序进行性能调优,以确保在JBoss环境中运行...