我目前正在更新一个 JAX RS 应用程序(使用 CXF 和 Spring)以在 JBoss 而不是 tomcat 上运行。
它可以在 Tomcat 上部署,但是当我尝试部署到 JBoss 时,我从 aspectj 收到此错误“警告此类型名称不匹配”。它声称不存在的类被用于切入点,在 spring xml 配置中声明。类本身在 WAR 中被编译。
我猜这是一个类加载器问题,但对 JBoss 了解不够,无法弄清楚。
有人可以建议为什么会发生这种情况以及解决方案吗?
这是一个类加载问题,但不是我的问题。正在编织的类之一是数据源。我在 WAR 的 Jboss 版本中使用了 Jboss 数据源,所以当在 Jboss 上时数据源是 org.jboss.jca.adapters.jdbc.WrapperDataSource 而在 tomcat 上是 org.apache.commons.dbcp.BasicDataSource。
结果,在编织过程中,aspectJ 未能加载 jboss 类。添加
<dependencies>
<module name="org.jboss.ironjacamar.jdbcadapters"/>
</dependencies>
解决了这个问题。Spring论坛上有一篇文章提到了这一点:http: //forum.springsource.org/showthread.php?113581- Spring-JBoss7-aop-problems-to-get-datasource