dependenciesjboss7.xnoclassdeffounderroropenamjboss-modules

openam J2EE Policy agent - ServerEntryNotFoundException: Cannot find server ID


I have an openAM application running on Tomcat 7. On my JBoss server, which has an application protected by OpenAM, I get the following error message when accessing any protected resource:

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

This class belongs to the Web Policy agent that I installed on my Jboss which created a jboss module which declares these dependencies:

    <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>

But I've checked my jboss/modules directory for these dependencies and they're all there.

In my Web Policy agent's log file, I see this being logged every minute:

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)

Solution

  • The problem was that when I created my default configuration after installing openAM, I had accessed the openAM server via localhost:8181 instead of openam.example.com:8181.

    So openAM automatically created a Server configuration with the name localhost:8181/openam. These configurations can be found on the admin console under Configuration > Servers and sites.