当前位置:首页 > 开发 > 开源软件 > 正文

JBoss应用遇到问题记录

发表于: 2013-12-19   作者:tvmovie   来源:转载   浏览:
摘要: Q: 无法读取classpath下以及jar包中的资源文件 A: 由JBoss特殊的vfs协议导致。 JBoss部署war包时,会将lib下的jar包都分别生成1个以该jar包名为目录名的临时目录,该目录及其结构举例如下:\jboss-as-7.1.1.Final\standalone\tmp\vfs\deployment4d324381d816bd6d\xxx.jar-f6e3c6735c9

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

see: http://cxf.547215.n5.nabble.com/Does-anyone-successfully-deployed-CXF-services-with-WS-Security-Signature-and-Encyrption-in-WebSpher1-td563604.html

 

 

JBoss应用遇到问题记录

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号