Expand my Community achievements bar.

ClassNotFoundException for class file within jar file of custom component.

Avatar

Level 5

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

1 Reply

Avatar

Level 5

It would seem that Microsoft Outlook goes in to zipped files and archives, and replaces class files with a like named file that says the content has been quarantined.  It does not bother itself with posting that information in the e-mail containing the file.

Once the LCA and component zip file were delivered outside of e-mail all was well.

Thanks to all

Mark