我正在尝试将插件写入框架应用程序(Joget)。我的插件源看起来像这样:
public class MyPlugin extends ExtDefaultPlugin implements ApplicationPlugin, ParticipantPlugin {
...
public void execute(){
...
SecurityContextImpl secContext = (SecurityContextImpl) WorkflowUtil.getHttpServletRequest().getSession().getAttribute("SPRING_SECURITY_CONTEXT");
}
}
当我运行插件时,我得到以下异常。
java.lang.ClassCastException: org.springframework.security.context.SecurityContextImpl cannot be cast to org.springframework.security.context.SecurityContextImpl
我正在使用 Maven。现在,由于两者具有相同的包名称,我假设我在插件 JAR(包含 SecurityContextImpl 类)中不小心使用了错误的包版本,而不是框架中的包版本。但是我已经仔细检查过,看起来我在我的插件包中包含了正确的一个。
有没有办法查看我的类的类加载器或源 JAR(例如以某种方式使用反射)?关于如何解决这个问题的任何其他想法?