Incompatible with interface - Exception in Adapter Module

Hi Experts,
I have a custom adapter module deployed on PI 7.1. Once i post any message, i am getting below exception in CC monitoring.
Message processing failed. Cause: java.lang.ClassCastException: class $Proxy3125_10002:sap.com/ClearModule_EAR @ com.sap.engine.boot.loader.ResourceMultiParentClassLoader @ 6daa7537 @ alive incompatible with interface com.sap.aii.af.lib.mp.module.ModuleLocal:library:com.sap.aii.af.lib @ com.sap.engine.boot.loader.ResourceMultiParentClassLoader @ 15d75e80 @ alive
I used NWDS 7.1 to develop the module.
the EJB is stateless.
Can any one have any idea about the exception.
Please help me out here.
Thx in advance,
Brian

Hello,
i forgot to modify the four interfaces' name when i create the EJB, ie my Bean class is "ss.cod.de.EjdBean", then the "Remote Interface" & "Home Interface" are setted respectively and defaultly as "ss.cod.de.EjdRemote" & u201Css.cod.de.EjdHomeu201D, the u201CLocal Interfaceu201D & "LocalHome Interface" are the same to the two interface above.
everything was well while i rectified all the interfaces as "com.sap.aii.af.lib.mp.module.ModuleHome", "com.sap.aii.af.lib.mp.module.ModuleLocal", "com.sap.aii.af.lib.mp.module.ModuleLocalHome" and "com.sap.aii.af.lib.mp.module.ModuleRemote".
hope its help 4 u.
good luck.
thx & br,
Brian

Similar Messages

  • How to read Sender Interface name in adapter Module in PI 7.31

    Hello All,
    I am working on Adapter module .it accomplish to generate file with message id,message key ,sent time,received time,FromService(Business system names),toServiece(Business system name),sender interface name,receiver interface name .
    i got all details in my file by calling module data by method get principal data,but i am fail to get sender interface in that file .
    can you please guide me how to get sender interface name in adapter module.
    I am getting some information from this following blogs
    https://scn.sap.com/thread/1583665
    How to read Sender Interface name in Adapter module
    but i am facing same error what they faced.
    Please guide me to how to get sender interface name in adapter module.
    Thanks
    Ganesh

    Hi Ganesh
    Write a module in the sender adapter and use this piece of code
    Message mes = null;
    mes = (Message) inputModuleData.getPrincipalData();
    String SI = mes.getAction().getName();
    Also you can read the same by creating a UDF in message mapping
    Following is the code
    InputHeader inputHeader = container.getInputHeader();
    String SI = inputHeader.getInterface() ;

  • How to read Sender Interface name in Adapter module

    I have a need to read the Sender Interface name in an adapter module that will be attached to a Sender SOAP channel. Any ideas on how this can be done.
    I am familiar with the following code construct from the docs
    Hashtable mp = (Hashtable)inputModuleData.getSupplementalData("module.parameters");
    fileName = (String) mp.get("FileName");
    What is the key name (in the hashtable) for Sender Interface name ? The docs seem to be silent on this
    I dug around some and found references to "mp.context" and "message.interface". I guess I could just test this out but I dont have deploy access and I dont want to keep asking the BASIS group to deploy the module while I play around with different combinations...
    So would the following work
    Hashtable mp = (Hashtable)inputModuleData.getSupplementalData("mp.context");
    interfaceName = (String) mp.get("message.interface");
    Thank you
    Anil

    Hi Anil,
    I am not sure of how to get the Sender interface name. I even tried the code that you suggested above. It gave me a null pointer exception.
    I think instead of Sender Interface name you can decide upon the Sender System/Service.
    To get the Sender System Name:
    Object obj = null;
    Message msg = null;
    obj = ModuleData.getPrincipalData();
    msg = (Message) obj;
    String SenderSystem = msg.getFromService();
    Here based on the sender system you can do your partner specific processing in Proxy. Instead of Sender Interface Name.
    Hope this helps
    Regards,
    Aravind

  • Get/set message interface name in adapter module

    Hello,
    From an adapter module, I'd like to get or even set the Message Interface name of the message that is handed over to the function "process" of the adapter module.
    I've got two context's, sessioncontext and modulecontext. With both contexts, you can get values from that context. I'm not sure which context has the message interface name of the message currently being processed, and I'm also not sure what that value is called (moduleContext.getContextData("name");).
    The reason for this is that sometimes you'd like to do something different depending on the type of message being processed.
    If anyone knows how to do this, I'd be glad to hear.
    Thanks in advance for any advice!
    Greetings, Walter.

    Hi Walter,
    It is fairly easy to get the interface name. When you have extracted the XIMessage there is a parameter, which allows you get the Action, where you can get the interface name.
    I have tried to change the interface name. You need to create a new message an copy the content from the old message over to this. This is a little tricky and I'm not able to get any code samples for you.
    /daniel

  • Interface name in Adapter module

    Hi Gems,
        In my adapter module , i have a bean class and an other class extends AbstractTransformation with transform method.
        public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException {
            strReceiverInterface = (String) in.getInputHeader().getReceiverInterface();
            strSenderInterface = (String) in.getInputHeader().getSenderInterface();
            inTime = in.getInputHeader().getTimeSent();
       From my Bean class i created an Object  and fetched the interface name.. ..  but at runtime interface name comes null.
      Can any one tried this ever??  Please let me know ASAP..
    Thanks
    Prabhakar

    Have a look at this:
    http://help.sap.com/javadocs/NW04/current/pi/constant-values.html#com.sap.aii.mapping.api.StreamTransformationConstants.INTERFACE
    and
    http://help.sap.com/javadocs/NW04/current/pi/constant-values.html#com.sap.aii.mapping.api.StreamTransformationConstants.INTERFACE
    Regards,
    Ravi

  • Retrieving sender Interface name in adapter module

    Hi Gurus
    Is there ne way we can retrieve interface name in the adapter module which is on the sender side?
    I was thinking about using dynamic configuration in adapter module but I guess since container element cant be used inside adapter module.....it will be futile...
    Regards
    Akhil

    The Receiver Determination step will be executed only after the message comes out of the Sender Adapter / Module and so , the Receiver Interface will obviously be unavailable in the Sender Module.
    Regards
    Bhavesh

  • Issue with overwriting msg using adapter module when WSS enabled in SOAP CC

    Hi guys,
    I have a SOAP->RFC scenario where on the sender side I'm using an adapter module. This adapter module should modify the message content based on some conditions. This works fine unless the WSS is enabled in the sender SOAP CC. When enabled, the message doesn't get modified. If disabled, it works fine. Do you have any explanation for this? Is there any workaround for this?
    Thanks, Olian

    Hi Olian,
    For 2004s (PI71) too sender adapter doesn't support modules (in normal SOAP mode and not in AXIS)
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/a4/f13341771b4c0de10000000a1550b0/frameset.htm
    >>if I use the module w/o WSS enabled on the CC,
    Can you tell me how you did this??
    Regards
    Suraj

  • Boot Camp 2.x and Windows XP incompatible with Radeon 1600 Video Adapter

    Using Boot Camp Assistant 2.0 from a Leopard Install, I generated a 20GB partition and installed Windows XP SP2 reformatting during the install to NTFS. At this point things seemed to be working well. I then used my Leopard Install disk to update the MAC drivers. Now when I tried to reboot, I see the Windows splash window, the screen goes black, the screen goes cyan, then the screen goes black and stays that way. At this point, I cannot do anything with the Windows XP partition other than a power down by holding the power key. If I try to reboot on the XP partition, it goes through a hard drive repair, then goes black screen, light blue screen, black screen, hung. I can boot with Safe Boot, but I have no keyboard or trackpad drivers. I can run the system with an external USB mouse and keyboard.
    A friend found that the Video Adapters being used were a problem. (We can't find the reference.) If I go to Start/RightClick My Computer/Hardware/Device Manager/Video Adapters, I can right click on whatever adapters are located there and Uninstall them. At this point, the system will boot up fine using a generic video adapter. I don't know how well it would work if you wanted to use it for high speed gaming.
    On bootup I could get to the Internet. I went to Start/All Programs/Windows Update and did the Windows Update. I did it twice to get everything updated to Service Pak 3. (I have read that there is a problem if you upgrade the Apple Drivers to version 2.1 before you upgrade to Service Pak 3.)
    At this point, I installed the Boot Camp Update 2.1 and all worked well. I then installed Update 2.2 and the video was again a problem. It appears that the system was booting up ok, but it was happening behind a black screen. If I booted up in Safe Mode, connected a USB Mouse and Uninstalled the Video Adapter/Radeon 1600, I could boot up and the system worked fine.
    Unfortunately, Windows (for the first time that I know of) was smart enough to recognize that there was new hardware (the X1600) and it reinstalled the @!#$#-ed X1600 driver without asking me. Now I couldn't reboot without it hanging again.
    The final step was that I found that if, instead of Uninstalling, I Disabled the X1600, I can now run using the generic Video Adapter and Windows does not re-enable it.
    I hope this helps anyone who has a similar problem, so they don't waste 2 weeks like I did.

    Hi Dave,
    thanks for these informations.
    Before my beloved 2006 iMac went awry and finally bit the dust, I have used the ATI MobilityCatalyst Drivers for XP.
    If you're in for another try, here's the link http://support.amd.com/de/gpudownload/windows/Legacy/Pages/radeonmob_xp.aspx?typ e=2.4.2&product=2.4.2.3.10&lang=English
    Using the Generic Microsoft Graphics driver is IMHO not a solution, as it really only supports a minimum of the capabilities of the X1600 and is definitely not suited for gaming.
    Stefan

  • PI 7.1 adapter module issue

    I deoplyed my module and worked fine. now i changed some code by adding parameter to module
    strModuleKey = moduleContext.getContextData("module.key");
    I changed the related things in my communication channel(gave parameters)
    Now, i get below error while executing...
    java.lang.ClassCastException: class com.sap.aii.af.sdk.xi.mo.MessageContext:library:com.sap.aii.af.sdk.libcom.sap.engine.boot.loader.ResourceMultiParentClassLoader428c6e04alive incompatible with interface com.sap.engine.interfaces.messaging.api.Message:interface:com.sap.aii.af.ms.ifccom.sap.engine.boot.loader.ResourceMultiParentClassLoader2dd7e4d6alive
    Followed the below url but in vain..
    PI JAVA ADAPTER MODULE PROBLEM
    Incompatible with interface - Exception in Adapter Module
    Issue on developing Adapter Module
    Also if you are using PI 7.1 refer to the blog:
    /people/stefan.grube/blog/2008/12/11/adjust-your-pi-70-adapter-modules-for-pi-71-in-15-minutes
    Please let me know if u have any other suggestions other than this...
    Thanks
    Prabhakar

    Hi Venkat,
    Yes, you cannot add custom modules to soap adapter.
    Please refer below documentation for the same..!!
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/44/8c4756224a6fb5e10000000a155369/content.htm
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/69/a6fb3fea9df028e10000000a1550b0/frameset.htm
    Regards,
    Swetha.

  • Error in Adapter Module to unzip files

    Hello ,
    I wish to unzip many files with use of an adapter module
    To du this I use following code
    package de.lsv.moduledevelopement;
    import java.io.*;
    import java.util.Hashtable;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import javax.ejb.CreateException;
    import com.sap.aii.af.mp.module.Module;
    import com.sap.aii.af.mp.module.ModuleContext;
    import com.sap.aii.af.mp.module.ModuleData;
    import com.sap.aii.af.mp.module.ModuleException;
    import com.sap.aii.af.ra.ms.api.Message;
    import com.sap.aii.af.ra.ms.api.MessageDirection;
    import com.sap.aii.af.ra.ms.api.Payload;
    import com.sap.aii.af.ra.ms.spi.Trace;
    import com.sap.aii.af.service.auditlog.Audit;
    import com.sap.aii.af.service.auditlog.AuditDirection;
    import com.sap.aii.af.service.auditlog.AuditLogStatus;
    import com.sap.aii.af.service.auditlog.AuditMessageKey;
    * @ejbLocal <{de.lsv.moduledevelopement.UnZipFilesLocal}>
    * @ejbLocalHome <{de.lsv.moduledevelopement.UnZipFilesLocalHome}>
    * @stateless
    public class UnZipFilesBean implements SessionBean, Module {
         static AuditMessageKey amk = null;
         static String auditStr = "UnzipFilesBean - ";
         static ModuleException mEx = null;
         public static final String VERSION_ID =
              "$Id://de.lsv.moduledevelopement.UnZipFilesBean.java#1 $";
         private static final Trace TRACE = new Trace(VERSION_ID);
         public void ejbRemove() {
         public void ejbActivate() {
         public void ejbPassivate() {
         public void setSessionContext(SessionContext context) {
              myContext = context;
         private SessionContext myContext;
          * Create Method.
         public void ejbCreate() throws CreateException {
              // TODO : Implement
         /* (non-Javadoc)
          * @see com.sap.aii.af.mp.module.Module#process(com.sap.aii.af.mp.module.ModuleContext, com.sap.aii.af.mp.module.ModuleData)
         public ModuleData process(
              ModuleContext moduleContext,
              ModuleData inputModuleData)
              throws ModuleException {
              Object obj = null;
              Message msg = null;
              Payload attachment = null;
              //initializing variables for module parameters
              String modkey = "";
              String fileMask = "";
              String directory = "";
              String saveDirectory = "";
              //     String newMimeType = "";
              //     String newAttachmentName = "";
              //     String newAttachmentExtension = "";
              //     String newAttachmentNameReplace = "";
              //this block is to manage the adapter when is not file/FTP
              try {
                   //get the XI Message
                   obj = inputModuleData.getPrincipalData();
                   msg = (Message) obj;
                   // create AuditMessageKey object to write audit log.
                   if (msg.getMessageDirection() == MessageDirection.INBOUND)
                        amk =
                             new AuditMessageKey(
                                  msg.getMessageId(),
                                  AuditDirection.INBOUND);
                   else
                        amk =
                             new AuditMessageKey(
                                  msg.getMessageId(),
                                  AuditDirection.OUTBOUND);
                   // ******start get the module parameters from the configuration******
                   modkey = moduleContext.getContextData("module.key");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "Module Configuration Key: " + modkey);
                   //***** einlesen der Moduke Parameter******************
                   //***** DateiMaske
                   fileMask = moduleContext.getContextData("FileMask");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "FileMask: " + fileMask);
                   // check ob fileMask definiert ist
                   if (fileMask == null || fileMask.equalsIgnoreCase("")) {
                        //if no attachment name is specified in the module configuration the module will end the execution
                        throw mEx =
                             new ModuleException(
                                  auditStr
                                       + "!FileMask in Modulconfiguration nicht definiert!");
                   //***** DateiMaske2
                   String fileMask2 = moduleContext.getContextData("FileMask2");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "FileMask2: " + fileMask2);
                   //***** Directory
                   directory = moduleContext.getContextData("Directory");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "Directory: " + directory);
                   // Fehler wenn Directory nicht definiert
                   if (directory == null || directory.equalsIgnoreCase("")) {
                        //the module will end the execution
                        throw mEx =
                             new ModuleException(
                                  auditStr
                                       + "Directory in Modulconfiguration nicht definiert");
                   //***** Sicherungs Verzeichnis
                   saveDirectory = moduleContext.getContextData("SaveDirectory");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "SaveDirectory: " + saveDirectory);
                   // entpacken aufrufen
                   entpacke(directory, saveDirectory, fileMask);
                   if (fileMask2.length() > 0) {
                        entpacke(directory, saveDirectory, fileMask2);
                   //update the XI Message
                   inputModuleData.setPrincipalData(msg);
              } catch (Exception e) {
                   String errorMessage =
                        auditStr + "Error bei der . Exception:" + e.getMessage();
                   Audit.addAuditLogEntry(amk, AuditLogStatus.ERROR, errorMessage);
                   throw mEx = new ModuleException(auditStr + errorMessage);
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Verarbeitung beendet ");
              return inputModuleData;
         //+++++++++++++++++++++++++
         private static void entpacke(
              String directory,
              String saveDirectory,
              String mask)
              // TODO Auto-generated method stub
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Funktion entpacke");
              if (!directory.endsWith("\")) {
                   directory = directory + "\";
              } // if
              File f;
              f = new File(directory);
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "f = new File(directory)");
    //          // Achtung Klasse in einer Klasse :-)
    //          String[] strFiles = f.list(new FilenameFilter() {
    //               public boolean accept(File file, String filename) {
    //                    Wildcard wildcard1 = new Wildcard(mask);
    //                    Audit.addAuditLogEntry(
    //                         amk,
    //                         AuditLogStatus.SUCCESS,
    //                         auditStr + "wc1");
    //                    return wildcard1.match(filename, false);
              String [] strFiles = f.list(new MyFilter(mask));
              // Liste der Gefundenen dateien
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Anzahl gepackter Dateien: " + strFiles.length);
              //System.out.println( strFiles.length + " Dateien zum entpacken");
              for (int i = 0; i < strFiles.length; i++) {
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "verarbeite Datei: : " + strFiles<i>);
                   //     System.out.println("f[" + i + "]=" + strFiles<i>);
              } // for
              // *****entpacken**********************
              for (int i = 0; i < strFiles.length; i++) {
                   try {
                        byte[] buf = new byte[4096];
                        ZipInputStream in =
                             new ZipInputStream(
                                  new FileInputStream(directory + strFiles<i>));
                        Audit.addAuditLogEntry(
                             amk,
                             AuditLogStatus.SUCCESS,
                             auditStr + "Entpacke " + directory + strFiles<i>);
                        //System.out.println("Entpacke " + directory + strFiles<i>);
                        int count = 0;
                        while (true) {
                             count++;
                             // Nächsten Eintrag lesen
                             ZipEntry entry = in.getNextEntry();
                             if (entry == null) {
                                  break;
                             // Beschreibung ausgeben
                             Audit.addAuditLogEntry(
                                  amk,
                                  AuditLogStatus.SUCCESS,
                                  auditStr + entry.getName());
                             //System.out.println(entry.getName());
                             // Ausgabedatei erzeugen
                             FileOutputStream out =
                                  new FileOutputStream(directory + entry.getName());
                             int len;
                             while ((len = in.read(buf)) > 0) {
                                  out.write(buf, 0, len);
                             out.close();
                             // Eintrag schließen
                             in.closeEntry();
                        } // while
                        in.close();
                        Audit.addAuditLogEntry(
                             amk,
                             AuditLogStatus.SUCCESS,
                             auditStr + count + "Dateien entpackt");
                        //System.out.println(count + "Dateien entpackt");
                        // verschieben
                        if (saveDirectory.length() > 0) {
                             File quelle = new File(directory + strFiles<i>);
                             File ziel = new File(saveDirectory + strFiles<i>);
                             boolean bla = quelle.renameTo(ziel);
                             if (!bla) {
                                  Audit.addAuditLogEntry(
                                       amk,
                                       AuditLogStatus.SUCCESS,
                                       auditStr
                                            + strFiles<i>
                                            + " konnte nicht verschoben werden");
                             } else {
                                  Audit.addAuditLogEntry(
                                       amk,
                                       AuditLogStatus.SUCCESS,
                                       auditStr
                                            + strFiles<i>
                                            + "verschoben nach "
                                            + saveDirectory);
                                  //          System.out.println(
                                  //               strFiles<i> + "verscgoben nach " + directory + "sik//");
                        } // if
                   } catch (Exception e) {
                        String errorMessage =
                             auditStr
                                  + "Error in entpacken. Exception:"
                                  + e.getMessage();
                        Audit.addAuditLogEntry(amk, AuditLogStatus.ERROR, errorMessage);
                   } // catch
                   // *****entpacken*************
              } // for
         } //entpacke
    } // UnzipFilesBean
    class Wildcard {
         static AuditMessageKey amk = null;
         static String auditStr = "WildCard - ";
         static ModuleException mEx = null;
         private final String wildcardString;
          * Der Konstruktor für die WildcardSuche.
          * @param wildcardString
          *            Der WildcardString
         public Wildcard(String wildcardString) {
              this.wildcardString = wildcardString;
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Constructor");
          * Die Methode, welche den Vergleich durchführt.
          * @param str
          *            Der String, welcher darauf überprüft werden soll, ob er dem
          *            WildcardString entspricht.
          * @return true Wenn der String dem wildcardString entspricht.
         public boolean match(String str, boolean fCasesensitive) {
              if (str == null || wildcardString == null) {
                   return false;
              return recursiveMatch(wildcardString, str, fCasesensitive);
          * Hier wird der eigentliche Vergleich durchgeführt
          * @param strWildcard
          *            Der Wildcardstring, z.B.: "Test*"
          * @param str
          *            Der zu überprüfende String, z.B. "Testlauf"
          * @return true, wenn eine Übereinstimmung vorhanden ist, sonst false
         private boolean recursiveMatch(
              String strWildcard,
              String str,
              boolean fCasesensitive) {
              while (true) {
                   if (strWildcard.length() == 0)
                        return str.length() == 0;
                   char ch = strWildcard.charAt(0);
                   switch (ch) {
                        case '?' :
                             if (str.length() == 0)
                                  return false;
                             break;
                        case '*' :
                             strWildcard = strWildcard.substring(1);
                             while (true) {
                                  if (recursiveMatch(strWildcard, str, fCasesensitive))
                                       return true;
                                  if (str.length() == 0)
                                       return false;
                                  str = str.substring(1);
                        default :
                             if (str.length() == 0)
                                  return false;
                             if (fCasesensitive) {
                                  if (ch != str.charAt(0))
                                       return false;
                             } else if (
                                  Character.toLowerCase(ch)
                                       != Character.toLowerCase(str.charAt(0)))
                                  return false;
                             break;
                   strWildcard = strWildcard.substring(1);
                   str = str.substring(1);
         //++++++++++++++++++++++++++
    } // class
    /** Nun der eigentliche Filter */
    class MyFilter implements FilenameFilter {
         static AuditMessageKey amk = null;
         static String auditStr = "MyFilter - ";
         static ModuleException mEx = null;
         String fileMask;
         public MyFilter(String fileMask) {
              this.fileMask = fileMask;
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Constructor");
         } //constructor
          public boolean accept(File file, String filename) {
              // TODO Auto-generated method stub
              //fileMask = "?5LBL*";
              Wildcard wildcard1 = new Wildcard(fileMask);
              return wildcard1.match(filename, false);
    } //class
    But in Audit Protocol it failed after:
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - Module Configuration Key: 2
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - FileMask: ?5LBL???
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - FileMask2:
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - Directory: //transfer//X1E//100//99//lb//ein
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - SaveDirectory: //transfer//X1E//100//99//lb//ein_s
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - Funktion entpacke
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - f = new File(directory)
    17.09.2008 17:33:19     Fehler     UnzipFilesBean - Error bei der . Exception:null
    I could not find the error??
    Were there any log files to look into?
    regarts
    Zimmerningkat

    Hi Ralf,
    I am late..........
    I am bit confused with your explanation.
    1. Does all zip files will be picked by file adapter in one shot or is it conditional, since you have a XML descriptor file in firts zip file and the XML files describes the list of JPEG files which might be stored in the other zipped JPEG files?
    2. Can you tell the exact flow of your scenario
    3. Receiver in your scenario?
    Thanks,
    Gujjeti.

  • Problem with mail adapter module in PI 7.11

    Hi,
    I modified our adapter module from PI 7.0 to be compatible with PI 7.11 SPS3. I followed the instruction in http://www.sdn.sap.com/irj/scn/index;jsessionid=(J2EE3417300)ID1491632150DB11633962752589437606End?rid=/library/uuid/c0b39e65-981e-2b10-1c9c-fc3f8e6747fa&overridelayout=true and successfully deployed the adapter module using NWDS for PI 7.1. However, I am encountering this error in the communication channel monitoring:
    Exception caught during processing mail message com.sap.aii.af.lib.mp.module.ModuleException.
    I don't see any other details in the communication channel monitoring to help me determine the cause of the problem after this error message line. In NWDS, there was no error when I excute build the project. During deployment in NWDS, it says deployment was successful. When I check in NWA, I can find that the adapter module has been deployed successfully. I even tried to re-create the whole adapter module from scrach following the documentation for the 2nd time and still I got the same error message.
    I am using java SDK 6.
    Any help or suggestion would be greatly appreciated.
    Regards,
    Elbert

    Hi,
    This problem is now solved. I am using the correct version of NWDS for PI7.1 and using java 1.6 will not cause any problem.
    The problem was caused by the source data being zipped instead of the unzipped version that my module is expecting. Furthermore, since my module comes before the mail bean, there is no details in the communication channel monitoring that the data sent was a wrong format.
    Regards,
    Elbert

  • File adapter - Archive issue with adapter module

    Hi All,
    I have 2 issues here. We are currently using PI 7.11 EHp1 SP02.
    1. Arhival with "add time stamp" wont work. It just gives us an error message saying simpledate format exception.
    I have gone through the OSS note 1265534 and thought this will resolve the issue. But our BASIS team believes this note is only applicable for PI 7.1 SP01. Can you one using PI 7.11 SP02 comment on this?
    Note: Archive option with out add time stamp works fine.
    2. When I use adapter module in my sender file configuration, the archive option itself does not work. Read the official SAP help which says "To archive source files where a permanent error occurred during processing, set the indicator.
    A permanent error occurs either during the conversion of the file content, or in a module in the module processor."
    So the question here is, how do we make the error permanent? The only way to throw error from adapter module is using the ModuleException. It has 4  different constructors. I have used both
    ModuleException me = new ModuleException ("My error Msg"); and
    Module Exception me1 = new ModuleException ("Error String", new Throwable("My error Msg");
    In both the cases, the archival wont happen.
    Any ideas welcome.
    Thanks
    Jai

    Hi,
    I am using NFS protocol here not FTP. Sorry I dint mention that earlier.
    Thanks
    Jai
    Edited by: Jaishankar on Apr 1, 2010 9:55 AM
    Edited by: Jaishankar on Apr 6, 2010 11:10 AM

  • Custom adapter module throwing exception

    Hi,
         We have written an adapter module (EJB) to convert a file structure into XML for conversion in XI. Using file adapter(FTP), we are getting the files converted into XML without any problem. However, when there is no file in the directory the module is throwing an exception and writing an entry into the log (polling interval is 1 minute).
    The requirement is when there is no file in the directory, the adapter should keep on polling, but without generating any exception or making an entry in the log.
    Can anyone help out with this please?

    strange...
    if a file is not found in the specified directory where your file adapter is polling, it is not possible that the control comes to the adapter module you have specified in the module chain.
    have you done something unusual in your CC config i.e. added only your module in the module chain and removed CallSAPAdapter

  • Bean problem with creating Adapter Module in NW developer studio

    Hi Gurus!
    I started to develop an adapter module like described in
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/02706f11-0d01-0010-e5ae-ac25e74c4c81
    Unfortunatelly, I'm getting error described on page 9 of the document:
    Bean problem: no interface classes found
    I cannot resolve this problem. I've tried it also like described in the document, but no success.
    Any ideas of what could be wrong?
    Thank you!
    Marthy

    Marthy.,.
    Close and open project..standard problem ONLY with nwdi..
    Regards
    Ravi Raman

  • Adapter Module: Validate an XML with an XSD

    Hello all,
    I'm developing a PI adapter module (Exchange Infrastructure 3.0) for the Mail Adapter. In this module I need to get each XML attachment and then validate with an XSD schema, for this I'm using the SAX parser.
    I successfully retrieved all XML attachments but when I'm trying to use the method setProperty of the SAXParser instance I'm getting an exception, bellow the code snippet.
         private static final String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
         private static final String SCHEMA_SOURCE   = "http://java.sun.com/xml/jaxp/properties/schemaSource";
         private static final String XML_SCHEMA      = "http://www.w3.org/2001/XMLSchema";
         public boolean isValid(byte[] src, AuditMessageKey amk1){
              SAXParserFactory spf = SAXParserFactory.newInstance();
              SAXParser sp = null;
              spf.setNamespaceAware(true);
              spf.setValidating(true);
              String[] schemas = new String[MAX_SCHEMAS];
              schemas[0] = getClass().getResource(SCHEMA1).getFile();
              schemas[1] = getClass().getResource(SCHEMA2).getFile();
              schemas[2] = getClass().getResource(SCHEMA3).getFile();
              try {
                   sp = spf.newSAXParser();
              catch (Exception e){
                   Audit.addAuditLogEntry(amk1, AuditLogStatus.ERROR, "MultipleAttachments: Error creating parser.");
                   return false;
    // HERE IS THE STEP THROWING THE EXCEPTION
              try {
                   sp.setProperty(SCHEMA_LANGUAGE, XML_SCHEMA);
              catch (Exception e){
                   Audit.addAuditLogEntry(amk1, AuditLogStatus.ERROR, "MultipleAttachments: Error setting schema.");
                   return false;
    Did Anyone have faced this issue? How can I solve this?
    Best regards,
    David

    Hi David,
    we developed a xsd validation with java mapping.
    SAP has it's own parser. At the time we developed there was a bad bug in this parser. The parser throwed a fatal error although the xml was valid!
    SAP corrected the error. But this is over 1,5 years ago. I recommend a OSS .
    Regards Mario

Maybe you are looking for