1 Reply Latest reply: Nov 11, 2009 2:48 PM by Mark Lindberg RSS

    ClassNotFoundException for class file within jar file of custom component.

    Mark Lindberg Community Member

      Greetings:

      I am encountering an issue with a custom component I have written for a customer.

      My component works when deployed on any of the servers in my environment - all 8.2 - JBoss, WebLogic

      When deploying on the customer Servers - all 8.2 - JBoss & WebSphere they get a ClassNotFoundException when starting the component.

      The jar consists of:

       

      com\#company#\ldap\auth\AuthUser.class                 (interface for authUser method)

      com\#company#\ldap\auth\AuthUserLDAPImpl.class  (contains authUser main method)

      .classpath

      META-INF\MANIFEST.MF

      .project

      component.xml

       

      The ClassNotFoundException references the AuthUserLDAPImpl class, which is in the same structure:

      com\#company#\ldap\auth as the AuthUser class.  (I have replaced the actual company name with #company# here).

       

      The component.xml consists of:

       

      <component xmlns="http://adobe.com/idp/dsc/component/document">

       

      <component-id>com.#company#.ldap.auth.AuthUser</component-id>

       

      <version>1.0</version>

      <supported-connectors/>

      <supports-export>true</supports-export>

      <services>

       

          <service name="AuthUser" orchestrateable="true" title="Authenticate User via LDAP">

                <auto-deploy major-version="1" minor-version="0" category-id="#company#"/>

                <implementation-class>com.#company#.ldap.auth.AuthUserLDAPImpl</implementation-class>

                <description>Allows you to Authenticate a UserID/Password pair against the LDAP Provider.</description>

                <!-- description -->

                <description>Allows you to Authenticate a UserID/Password pair against the LDAP Provider.</description>

       

                <!-- You can provide your own icons for a distinct look -->

                    <small-icon>icons/blue_shields_16x16.gif</small-icon>

                    <large-icon>icons/blue_shields_100x100.gif</large-icon>

                <!-- Configuration parameter to set the LDAP Connection parameters -->

                <config-parameter name="LDAP_SL" title="LDAP Serv List" type="java.lang.String">

                    <default-value>localhost</default-value>

                    <hint>String - List of one or more LDAP Servers - separated by semicolon</hint>

                </config-parameter>

                <!-- Configuration parameter for the Init ctxt -->

                <config-parameter name="INIT_CT" title="Initial Context" type="java.lang.String">

                    <default-value>com.sun.jndi.ldap.LdapCtxFactory</default-value>

                    <hint>String - initial context for LDAP search</hint>

                </config-parameter>

                <!-- Configuration parameter for the Authorized LDAP System User name -->

                <config-parameter name="DUMY_DN" title="Authorized LDAP System User ID" type="java.lang.String">

                    <default-value></default-value>

                    <hint>String - User ID of Authorized LDAP System User Account</hint>

                </config-parameter>

                <!-- Configuration parameter for the password -->

                <config-parameter name="DUMY_PW" title="Password" type="java.lang.String">

                    <!-- Use the internal PasswordPropertyEditor to hide the user’s password from plain text -->

                    <property-editor editor-id="com.adobe.idp.dsc.propertyeditor.system.PasswordPropertyEditorComponent"/>

                    <hint>The User ID of Authorized LDAP System User Account's password.</hint>

                </config-parameter>

                <!-- Configuration parameter for the User Search Base -->

                <config-parameter name="USER_SB" title="LDAP Search Base" type="java.lang.String">

                    <default-value></default-value>

                    <hint>String - Search Base for the LDAP Query</hint>

                </config-parameter>

                    <operations>

                          <operation name="authUser" title="Authenticate User">

                              <input-parameter name="sDomain" title="Domain Name" type="java.lang.String">

                                    <supported-expr-types>Literal,XPath,Template,Variable</supported-expr-types>

                                    <hint>String - User's Domain</hint>

                              </input-parameter>

       

       

         ...

       

       

      Is there something I am missing to allow the code to "See" the class at run time?

       

       

       

       

      Also, why would it run in my environments, and not the customers.

       

      Any help or Ideas are greatly appreciated!

       

      Thank You

      Mark