尝试EJB整合Mybatis部署时报错:获得带有类加载器MybatisUtil的ModuleClassLoader的反射信息出错,请问大神如何解决
mybatis的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <? xml version="1.0" encoding="UTF-8"?> <! DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> < configuration > < environments default="development"> < environment id="development"> < transactionManager type="JDBC" /> < dataSource type="POOLED"> < property name="driver" value="com.mysql.jdbc.Driver" /> < property name="url" value="jdbc:mysql://localhost:3306/MessageSystem" /> < property name="username" value="root" /> < property name="password" value="toor" /> </ dataSource > </ environment > </ environments > < mappers > < mapper resource="MS/mybatis/mapper/User.xml" /> </ mappers > </ configuration > |
SqlSessionFactory的构造
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package MS.mybatis; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public abstract class MybatisUtil { private static SqlSessionFactory sqlSessionFactory= null ; static { try { String resource = "mybatis-config.xml" ; Reader reader = Resources.getResourceAsReader(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static SqlSessionFactory getSqlSessionFactory() { return sqlSessionFactory; } public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } } |
报错信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 20:53:05,537 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC0000 01: Failed to start service jboss.deployment.unit."MessageSystem.jar".POST_MODUL E: org.jboss.msc.service.StartException in service jboss.deployment.unit."Messag eSystem.jar".POST_MODULE: JBAS018733: 处理 POST_MODULE 的 deployment "MessageSys tem.jar" 阶段失败 at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(Deplo ymentUnitPhaseService.java:127) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0 .Final-redhat-14] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(Se rviceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat- 1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceCont rollerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec utor.java:886) [rt.jar:1.6.0_26] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:908) [rt.jar:1.6.0_26] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_26] Caused by: java.lang.RuntimeException: JBAS018757: 获得带有类加载器 class MS.myb atis.MybatisUtil 的 ModuleClassLoader for Module "deployment.MessageSystem.jar:m ain" from Service Module Loader 的反射信息出错 at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getC lassIndex(DeploymentReflectionIndex.java:72) [jboss-as-server-7.3.0.Final-redhat -14.jar:7.3.0.Final-redhat-14] at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotation Information(MethodAnnotationAggregator.java:58) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.ha ndleAnnotations(InterceptorAnnotationProcessor.java:107) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.pr ocessComponentConfig(InterceptorAnnotationProcessor.java:92) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.de ploy(InterceptorAnnotationProcessor.java:77) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(Deplo ymentUnitPhaseService.java:120) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0 .Final-redhat-14] ... 5 more Caused by: java.lang.NoClassDefFoundError: Lorg/apache/ibatis/session/SqlSession Factory; at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_26] at java.lang.Class.privateGetDeclaredFields(Class.java:2291) [rt.jar:1.6 .0_26] at java.lang.Class.getDeclaredFields(Class.java:1743) [rt.jar:1.6.0_26] at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.< init >(Cl assReflectionIndex.java:57) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Fin al-redhat-14] at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getC lassIndex(DeploymentReflectionIndex.java:68) [jboss-as-server-7.3.0.Final-redhat -14.jar:7.3.0.Final-redhat-14] ... 10 more Caused by: java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSessio nFactory from [Module "deployment.MessageSystem.jar:main" from Service Module Lo ader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java: 197) [jboss-modules.jar:1.3.0.Final-redhat-2] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(Con currentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(Concu rrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(Concu rrentClassLoader.java:398) [jboss-modules.jar:1.3.0.Final-redhat-2] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentCl assLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoad er.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2] ... 15 more |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?