Jboss部署问题整理

问题一:

ERROR [JBossContextConfig] XML error parsing: WEB-INF/context.xml    org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser

解决方案:在Jboss的部署目录,找到刚刚部署的项目WebRoot/lib下,找到:xerces-2.6.2.jar和xml-apis.jar,删除即可!

问题二:

1.
ERROR [ContextLoader] Context initialization failed  org.springframework.context.ApplicationContextException: Failed to load custom context class [org.jboss.spring.vfs.context.VFSXmlWebApplicationContext]; nested exception is java.lang.ClassNotFoundException: org.jboss.spring.vfs.context.VFSXmlWebApplicationContext

解决方案:加入jboss-spring-int-vfs.jar 和 jboss-as-sprint-int-5.0.0.GA.jar两个jar包!下载地址:http://download.csdn.net/detail/tangkai_java/4434161

问题三:

你可能会出现以下二种错误的提示:

1(多见于spring mvc).
ERROR [DispatcherServlet] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.mvc.web.UserController.setUserService(com.mvc.service.UserService); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.mvc.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}


2(多见于struts2).
Unable to instantiate Action, org.itec.tvecm.web.action.UserAction

核心修改方法:

classpath*:applicationContext*.xml,不会报错,但这样在jboss中是不会解析的。修改成:classpath:applicationContext.xml即可,若有多个,可以在applicationContext.xml进行引入!

问题四:

jboss 4.04是不是不支持注解

很明显它支持。

问题五:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name  'transactionManager'  defined in  class  path resource [spring/applicationContext-hibernate.xml]: Cannot resolve reference to bean  'sessionFactory'   while  setting bean property  'sessionFactory' ; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name  'sessionFactory'  defined in  class  path resource [spring/applicationContext-hibernate.xml]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.

修改“JBOSS安装目录/server/default/deploy/jboss-web.deployer/META-INF”下的jboss-service.xml文件,改属性“UseJBossWebLoader”为true。
该属性原文解释如下:
A flag indicating if the JBoss Loader should be used. This loader uses a unified class loader as the class loader rather than the tomcat specific class loader.
The default is false to ensure that wars have isolated class loading for duplicate jars and jsp files.
该配置表明是否使用JBoss自身的classloader来加载webApp相关的资源;因为JBoss是通过集成Tomcat来实现Web Container的,而两者都有自己独立的classloader;
若设置为true,则表示Web应用加载时都将使用JBoss统一的classloader,即此时采用共享的扁平的UnifiedClassLoader;
若设置为false,则表示Web应用采用自己独立的WebAppClassLoader进行加载,此时Web应用和JBoss之间是完全隔离的,这也是该配置项的默认值;

问题六:(jboss5)

ERROR [JBossContextConfig] XML error parsing: context.xml  
org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new  SAX parser  
        at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100 )   


分析可能与问题五类似,存在 classloader 问题,参考 JBoss 社区资料( http://community.jboss.org/wiki/classloadingconfiguration ),设置 Web 应用加载时使用 JBoss 统一的 classloader 。具体操作方法为:在 WEB-INF 下增加 jboss-web.xml :


     
     
   
       
    com.example:archive =  unique -archive-name  
       
        java2ParentDelegation = true   
    
   
   
   
   

  


说明: com.example:archive=unique-archive-name 代表 jar 仓库的对象名 objectName ,其中 ,com.example 可以随意取, unique-archive-name 就用部署包的名字即可,例如 com.example:archive=demo.war ,保证这一串唯一即可。
详细说明可以通过 google 搜索“ JBoss 类隔离”。
问题七:(jboss5)
ERROR [ContextLoader] Context initialization failed  
org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure during classpath scanning; nested exception is java.io.FileNotFoundException: C:/JavaPro/jboss-5.1 . 0 .GA/server/ default /deploy/demo.war/WEB-INF/lib/demo.jar/com/demo (系统找不到指定的路径。)

参考 https://jira.springframework.org/browse/SPR-5120 ,下载 jboss-as-sprint-int-5.0.0.GA.jar 和 jboss-spring-int-vfs.jar ,拷贝至 Web 应用的 lib 下,修改 web.xml ,加入:


 
contextClass  
org.jboss.spring.vfs.context.VFSXmlWebApplicationContext  
 


以上是我在移植时遇到的问题,记录下来方便大家查阅,希望后来的人不要被这几个问题纠结,同时也欢迎大家批评指正以及贴出自己遇到的问题及解决方案!

你可能感兴趣的:(JBoss)