IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only
  • 1.  Introspection Failure

    Posted 03/21/02 10:09 AM

    I get an error every time I launch the Adapter Configuration tool to check my custom adapter. It says:


    �Introspection Failed(053) Could not load operation template �CGA.adapter.PreposToSOGA17Operation� :
    (054) No parameter �PreposToSOGA17OperationOptionsTab.inField� in class.

    This error occurs when creating the Group that should display the parameters:
    adapterdescriptor.createGroup(CGAAdapterMgr.msg(“PreposToSOGA17OperationOptionsTab.desc”),
    new String {“PreposToSOGA17OperationOptionsTab.inField”,
    “PreposToSOGA17OperationOptionsTab.outField” });


    I dont know what to do since there is such a parameter in the class:

    public class PreposToSOGA17OperationOptionsTab {
    private String inField;
    private String outField;

    public PreposToSOGA17OperationOptionsTab() {
    inField = null;
    outField = null;
    }
    


    }


    does anyone know about this problem ?
    thanks in advance.


    #webMethods
    #Adapters-and-E-Standards
    #Integration-Server-and-ESB


  • 2.  RE: Introspection Failure

    Posted 03/21/02 10:33 AM

    It’s kind of hard for me to tell exactly how your adapter is built but from the looks of it you’re putting some of your operation template controls (tabs) in a separate class. Then in your operation template you’re creating an instance of that class. I’m going under the assumption that this is the case, so:

    Your declaration of the class should look like this:

    PreposToSOGA17OperationOptionsTab myTab = new PreposToSOGA17OperationOptionsTab();

    then you group creation statement should look like this:

    adapterdescriptor.createGroup(CGAAdapterMgr.msg(“PreposToSOGA17OperationOptionsTab.desc”),
    new String {“myTab.inField”,
    “myTab.outField” });

    The real key being that when creating the group, you reference the name of the INSTANCE of the class NOT the actual class.


    #webMethods
    #Integration-Server-and-ESB
    #Adapters-and-E-Standards


  • 3.  RE: Introspection Failure

    Posted 03/21/02 10:58 AM

    thank you very much for your quick reply!

    well, you are right, sorry I was not clear:
    my custom operation -class PreposToSOGA17Operation- is calling a separate class. In fact, it already
    goes like this :

    public class PreposToSOGA17Operation extends CTOperation
    implements AdapterScript11, AdapterDescriptorFiller, AdapterScriptLifecycle {

    public PreposToSOGA17Operation() {
    OptionsTab = new PreposToSOGA17OperationOptionsTab();       // that's the myTab you're talking about
    }
    
    public void fillAdapterDescriptor(AdapterDescriptor adapterdescriptor)
    throws AdapterException    {
    OptionsTab.fillAdapterDescriptor(adapterdescriptor, "OptionsTab.");
    adapterdescriptor.setDescriptions(CTOperation.getBundle());
    }
    

    private PreposToSOGA17OperationOptionsTab OptionsTab;
    

    }// End of Operation class


    public class PreposToSOGA17OperationOptionsTab {

    private String inField;
    private String outField;
    
    public PreposToSOGA17OperationOptionsTab()    {
    inField = null;
    outField = null;
    }
    
    public void fillAdapterDescriptor(AdapterDescriptor adapterdescriptor, String s)
    throws AdapterException    {
    
    adapterdescriptor.createGroup(CGAAdapterMgr.msg("PreposToSOGA17OperationOptionsTab.desc"), new String[] {
    s + "inField", s + "outField"});
    adapterdescriptor.setMinStringLength(s + "inField", 1);
    adapterdescriptor.setMinStringLength(s + "outField", 1);
    
    adapterdescriptor.setNamespace(s + "inField", adapterdescriptor.INPUT_FIELD_NAMES, null);
    adapterdescriptor.setNamespace(s + "outField", adapterdescriptor.OUTPUT_FIELD_NAMES, null);
    }
    
    public String getInField()    {
    return this.inField;
    }
    

    } // End of OptionsTab class


    #Adapters-and-E-Standards
    #webMethods
    #Integration-Server-and-ESB