问题描述
- jboss7.1和eclipse4.3+jdk1.7部署項目運行出錯
-
- 14:56:37,166 ERROR org.jboss.msc.service.fail MSC00001: Failed to start service jboss.deployment.unit."ABSAppian.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ABSAppian.jar".POST_MODULE: Failed to process phase POST_MODULE of deployment "ABSAppian.jar"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51] - Caused by: java.lang.RuntimeException: Error getting reflective information for class com.nmg.service.contract.ContractReportService with ClassLoader ModuleClassLoader for Module "deployment.ABSAppian.jar:main" from Service Module Loader
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:85)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:70)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:55)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 5 more - Caused by: java.lang.NoClassDefFoundError: jxl/biff/DisplayFormat
at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.7.0_51]
at java.lang.Class.privateGetDeclaredFields(Class.java:2397) [rt.jar:1.7.0_51]
at java.lang.Class.getDeclaredFields(Class.java:1806) [rt.jar:1.7.0_51]
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.(ClassReflectionIndex.java:57) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 10 more - Caused by: java.lang.ClassNotFoundException: jxl.biff.DisplayFormat from [Module "deployment.ABSAppian.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.1.GA]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.1.GA]
... 15 more
注:jxl包我已經放在lib下了,但還是報錯。
- 14:56:37,166 ERROR org.jboss.msc.service.fail MSC00001: Failed to start service jboss.deployment.unit."ABSAppian.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ABSAppian.jar".POST_MODULE: Failed to process phase POST_MODULE of deployment "ABSAppian.jar"
解决方案
分两步:1、配置全局依赖: 在system-layers-base下新建一个项目的包:如appian,在该包下新建一个main包,里面放第三方包和一个总的xml文件(叫module.xml)。xml文件内容如下(参考):
<?xml version="1.0" encoding="UTF-8"?>
<!-- Insert resources here -->
就是把相应的jar包配置到里面去。
2、在standalone-configuration下的standalone.xml文件里配置全局参数(就是下面这三行代码):
上面这段代码具体位置如下:
false
true
这样全部依赖关系配置完毕。可以使用了。
另外补充一点数据源配置问题。jboss5.1升级到7.0以上,数据源配置有些不同。两处改动。1、在standalone.xml文件里的datasource配置在以下位置:
<subsystem xmlns="urn:jboss:domain:datasources:1.1">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="" pool-name="" enabled="true" use-java-context="true">
<connection-url></connection-url>
<driver></driver>
<security>
<user-name></user-name>
<password></password>
</security>
</datasource>
<datasource jndi-name="java:/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
<connection-url></connection-url>
<driver></driver>
<security>
<user-name></user-name>
<password></password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mysqlh1" module="com.mysqldatabase.mysql">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
即可。
2、在layers-base-com下先建1个mysqldatabase的包,这个包下新建一个mysql包,该包下新建一个main包,里面放上mysql的jar包和一个module.xml配置文件。
里面内容如下:
<?xml version="1.0" encoding="UTF-8"?>
ok,可以正常使用了。
注:另外配置依赖关系,也可以一个包一个包地配置,不过太麻烦了,用全局配置比较简单。
解决方案二:
/*
分两步:1、配置全局依赖: 在system-layers-base下新建一个项目的包:如appian,在该包下新建一个main包,里面放第三方包和一个总的xml文件(叫module.xml)。xml文件内容如下(参考):
<?xml version="1.0" encoding="UTF-8"?>
<!-- Insert resources here -->
就是把相应的jar包配置到里面去。
2、在standalone-configuration下的standalone.xml文件里配置全局参数(就是下面这三行代码):
上面这段代码具体位置如下:
false
true
这样全部依赖关系配置完毕。可以使用了。
另外补充一点数据源配置问题。jboss5.1升级到7.0以上,数据源配置有些不同。两处改动。1、在standalone.xml文件里的datasource配置在以下位置:
<subsystem xmlns="urn:jboss:domain:datasources:1.1">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="" pool-name="" enabled="true" use-java-context="true">
<connection-url></connection-url>
<driver></driver>
<security>
<user-name></user-name>
<password></password>
</security>
</datasource>
<datasource jndi-name="java:/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
<connection-url></connection-url>
<driver></driver>
<security>
<user-name></user-name>
<password></password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mysqlh1" module="com.mysqldatabase.mysql">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
即可。
2、在layers-base-com下先建1个mysqldatabase的包,这个包下新建一个mysql包,该包下新建一个main包,里面放上mysql的jar包和一个module.xml配置文件。
里面内容如下:
<?xml version="1.0" encoding="UTF-8"?>
ok,可以正常使用了。
注:另外配置依赖关系,也可以一个包一个包地配置,不过太麻烦了,用全局配置比较简单。
*/
解决方案三:
详细请见我博客文章。
时间: 2024-11-03 21:29:16