首先,我为无法共享精确的堆栈跟踪和代码内容而道歉。我的开发系统和互联网之间存在气隙,不可能只是复制粘贴。
我的问题是,当映射器尝试解析config xml时,我的DTO的typeAlias导致ClassNotFound异常。令人困惑的部分是,下一个包中有一个非常类似的DAO / DTO,工作正常。当我添加新设置时,我镜像了他们所有的设置..但新的设置正在造成严重破坏。
伪代码设置:
org.com.somesystem.common.database :
spring-prod-db-coolDaoBeans.xml (包含配置信息和bean ID) sql-map-config.xml (包含设置,typeAliases将resultTypes映射到DTO对象名称,Mappers)
org.com.somesystem.common.database.cooltable :
CoolTableDAO.java (带插入,删除,更新,计数,selectAll方法的界面) CoolTableDTO.java (带有setter和getter的公共类) CoolTable.DAO.xml (关于coolTable的插入,选择,删除等的sql定义)
这很好用,我构建一个jar ..并且调用使用DAO / DTO的REST服务没有问题,然后我添加
org.com.somesystem.common.database.muchcoolertable
MuchCoolerTableDAO.java (带插入,删除,更新,计数,selectAll方法的界面) MuchCoolerTableDTO.java (带有setter和getter的公共类) MuchCoolerTable.DAO.xml (在manyCoolerTable上插入,选择,删除等的sql定义)
我还在mapper中为typeAlias',mappers等创建镜像条目,在.database级别创建配置文件。
我有doulble检查了创建的jar文件,MuchCoolerTableDTO.class有铃声,但当我将它部署到Web服务器并启动Web服务时它会爆炸,因为它无法找到typeAlias中定义的类定义
我有两个同事仔细检查所有代码,没有空格或拼写错误,MuchCoolerTable类的所有内容都与CoolTable完全相同。有没有人见过这个问题?敲响任何铃声?我现在正撞击它3天。
答案 0 :(得分:1)
弄清楚问题是什么......感谢所有提出建议的人。如果有其他人来寻找同样的问题,我想我会回答。
ClassNotFoundException令人困惑,因为CLASS是THERE。问题是你必须从准系统DTO开始,声明你的成员只匹配数据库中的列,然后为这些成员创建精确的setter和getter。
它只需稍微关闭其中一个就会导致ClassNotFoundException。希望这能节省一些人的未来!