首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

转JBoss5.1.0支配SSH2

2012-10-21 
转JBoss5.1.0部署SSH2??分类:?技术2011-02-28 23:57?540人阅读?评论(0)?收藏?举报环境:JDK1.6+JBoss5.1.0+

转JBoss5.1.0部署SSH2

?

?

分类:?技术2011-02-28 23:57?540人阅读?评论(0)?收藏?举报

环境:JDK1.6+JBoss5.1.0+Struts2.1.8+Spring2.5.6+Hibernate3.3.2

    将war包放入“JBOSS安装目录/server/default/deploy”目录,直接启动,报如下错误:
    view plain
    1. 09:24:46,890?ERROR?[JBossContextConfig]?XML?error?parsing:?context.xml??
    2. org.jboss.xb.binding.JBossXBRuntimeException:?Failed?to?create?a?new?SAX?parser??
    3. ????????at?org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)??

    分析可能与JBoss4.2.3版本类似,存在classloader问题,参考JBoss社区资料(http://community.jboss.org/wiki/classloadingconfiguration),设置Web应用加载时使用JBoss统一的classloader。具体操作方法为:在WEB-INF下增加jboss-web.xml:
    view plain
    1. <!DOCTYPE?jboss-web?PUBLIC?"-//JBoss//DTD?Web?Application?5.0//EN"?"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">????
    2. <jboss-web>????
    3. ????<class-loading?java2ClassLoadingCompliance="true">??
    4. ????????<loader-repository>??
    5. ????????????com.example:archive=?unique-archive-name??
    6. ????????????<loader-repository-config>??
    7. ????????????????java2ParentDelegation=true??
    8. ????????????</loader-repository-config>??
    9. ????????</loader-repository>??
    10. ????</class-loading>??
    11. </jboss-web>??

    ??? 说明:com.example:archive=unique-archive-name代表jar仓库的对象名objectName?,其中,com.example可以随意取,unique-archive-name?就用部署包的名字即可,例如com.example:archive=demo.war,保证这一串唯一即可。
    ??? 详细说明可以通过google搜索“JBoss类隔离”。重启JBoss,上述错误不再出现,但又报如下错误:
    view plain
    1. 14:24:15,406?ERROR?[ContextLoader]?Context?initialization?failed??
    2. 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,加入:
    view plain
    1. <context-param>??
    2. ?<param-name>contextClass</param-name>??
    3. ?<param-value>org.jboss.spring.vfs.context.VFSXmlWebApplicationContext</param-value>??
    4. </context-param>??
    重新启动,上述错误不再出现,但报如下错误:
    view plain
    1. 14:42:49,484?ERROR?[ContextLoader]?Context?initialization?failed??
    2. org.springframework.beans.factory.parsing.BeanDefinitionParsingException:?Configuration?problem:?Invalid?relative?resource?location?[applicationContext-hibernate.xml]?to?import?bean?definitions?from?Offending?resource:?FileHandler@21170058[path=demo.war/WEB-INF/classes/spring/applicationContext.xml?context=file:/C:/JavaPro/jboss-5.1.0.GA/server/default/deploy/?real=file:/C:/JavaPro/jboss-5.1.0.GA/server/default/deploy/demo.war/WEB-INF/classes/spring/applicationContext.xml];?nested?exception?is?java.io.IOException:?Error?listing?files:?C:/JavaPro/jboss-5.1.0.GA/server/default/deploy/demo.war/WEB-INF/classes/spring/applicationContext.xml??
    3. ............??
    4. Caused?by:?java.io.IOException:?Error?listing?files:?C:/JavaPro/jboss-5.1.0.GA/server/default/deploy/demo.war/WEB-INF/classes/spring/applicationContext.xml??

    修改spring的配置中类似?<import resource="applicationContext-xxx.xml"/>?的内容,改成<import resource="classpath:applicationContext-xxx.xml"/>。我的demo中spring配置文件在classes的spring文件夹下,因此,应该改成:<import resource="classpath:spring/applicationContext-xxx.xml"/>重新启动,不再报任何错误,访问首页正确显示,并能登录成功。

?

热点排行