我使用JBoss开发应用程序。
我创建了一个新模块CAMUNDA_HOME\server\jboss-as-7.2.0.Final\modules\org\camunda\bpm\identity\camunda-identity-dbldap\main
该文件夹包含2个文件: camunda-identity-dbldap-7.2.0.jar& module.xml:
<module xmlns="urn:jboss:module:1.0" name="org.camunda.bpm.identity.camunda-identity-dbldap">
<resources>
<resource-root path="camunda-identity-dbldap-7.2.0.jar" />
</resources>
<dependencies>
<module name="sun.jdk" />
<module name="javax.api" />
<module name="org.camunda.bpm.camunda-engine" />
<module name="org.camunda.bpm.identity.camunda-identity-ldap" />
</dependencies>
</module>
我在pom.xml中包含了“camunda-identity-dbldap”。
<dependency>
<groupId>org.camunda.bpm.identity</groupId>
<artifactId>camunda-identity-dbldap</artifactId>
<version>${camunda-version}</version>
</dependency>
DbAndLdapIdentityProviderFactory存在于“camunda-identity-dbldap.jar”中,也可以加载到pom中。
我试图在我的项目中投射课程。
ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl)ProcessEngines.getDefaultProcessEngine().getProcessEngineConfiguration();
DbAndLdapIdentityProviderFactory factory = (DbAndLdapIdentityProviderFactory)processEngineConfiguration.getIdentityProviderSessionFactory();
LdapConfiguration configuration = factory.getLdapConfiguration();
不幸的是,它报告了ClassCastException,它无法将DbAndLdapIdentityProviderFactory强制转换为DbAndLdapIdentityProviderFactory。似乎在不同的类加载器中加载了两个类。如何解决?
答案 0 :(得分:2)
你可能得到了CCE,因为你已经在JBoss和你自己的项目中添加了库 引擎使用JBoss中的版本,并尝试使用项目中的库将其强制转换到项目中。
解决方案是将JBoss使用的库添加到您的项目中,方法是将其声明为META-INF / MANIFEST.MF(org.camunda.bpm.identity.camunda-identity-dbldap)中的依赖项,以便JBoss加载它适合你。您必须在pom.xml中的“提供”范围内设置库。