我在Tomcat 7上运行了一个openAM应用程序。 在我的JBoss服务器上,它有一个受OpenAM保护的应用程序,我在访问任何受保护资源时收到以下错误消息:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.identity.agents.filter.AmFilterManager
at com.sun.identity.agents.filter.AmAgentBaseFilter.initializeFilter(AmAgentBaseFilter.java:270) [agent.jar:4.0.0-SNAPSHOT - 20140502-0259]
... 16 more
这个类属于我在Jboss上安装的Web Policy代理,它创建了jboss module来声明这些依赖项:
<dependencies>
<module name="javax.servlet.api" />
<module name="javax.api" />
<module name="javax.xml.bind.api" />
<module name="javax.ejb.api" />
<module name="org.picketbox" />
</dependencies>
但是我已经检查了我的 jboss / modules 目录中的这些依赖项,它们就在那里。
在我的Web Policy agent's日志文件中,我发现每分钟都会记录一次:
ERROR: WebtopNaming.getServerId():serverId null for server: http://openam.example.com:8181/openam
amNaming:12/04/2014 03:55:37:027 PM CET: Thread[SystemTimer,5,main]
ERROR: WebtopNaming.getServerId()
com.iplanet.services.naming.ServerEntryNotFoundException: Cannot find server ID.
at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:757)
at com.iplanet.services.naming.WebtopNaming.getServerID(WebtopNaming.java:654)
at com.iplanet.services.naming.WebtopNaming$SiteMonitor.checkAvailableSiteList(WebtopNaming.java:1738)
at com.iplanet.services.naming.WebtopNaming$SiteMonitor.runCheckValidSite(WebtopNaming.java:1713)
at com.iplanet.services.naming.WebtopNaming$SiteMonitor.run(WebtopNaming.java:1706)
at com.sun.identity.common.TimerPool$WorkerThread.run(TimerPool.java:434)
答案 0 :(得分:1)
问题是当我在安装openAM后创建默认配置时,我通过 localhost:8181 而不是 openam.example.com:8181 访问了openAM服务器。
因此,openAM自动创建名为 localhost:8181 / openam 的服务器配置。这些配置可在Configuration&gt;下的管理控制台中找到。服务器和站点。