Error in Adapter modules
Hello Gurus,
We are facing issue in Adapter modules installed in J2EE engine. We deployed two different Adapter modules in J2EE engine and two different interfaces are using them. But if any one of the interfaces run, the other interface is giving following error:
"Error: BaseTransactionRolledbackLocalException: Exception thrown in method process. The transaction is marked for rollback.".
If we restart the J2EE engine, it will start to work but the another interface is giving the smae error.
Please help me.
Regards,
Indira D
I facing the same error few days before.
My module was working well for the first time but running again used to give problem.
But on restarting server or redeploying module it again use to work fine.
The basic problem was...
there were few variables used in my modules which were initialised as class variables.
when the process() method gets called for first time it use to execute properly.
solution:
Reinitialize variables at the starting phase of process() method.
Reward points if useful.
thanks
Similar Messages
-
Error in adapter module Upgrade PI7.11
Hello,
After upgrade from XI3.0 to PI7.11,I am trying to adapt code of an adapter module in order to use it in new version.
I have changed the code ,there were no compilation errors and it was deployed successfully.
But when trying to test the scenario ,I am getting following error:
<code>ADAPTER.JAVA_EXCEPTION</code>
<text>javax.ejb.EJBException: (Failed in component: sap.com/ValidationModule7.11_EAR) Exception raised from invocation of public com.sap.aii.af.lib.mp.module.ModuleData com.sapcons.xi.af.validation.ValidationModuleBean711.process(com.sap.aii.af.lib.mp.module.ModuleContext,com.sap.aii.af.lib.mp.module.ModuleData) throws com.sap.aii.af.lib.mp.module.ModuleException method on bean instance com.sapcons.xi.af.validation.ValidationModuleBean711@4dee79d1 for bean sap.com/ValidationModule7.11_EARxml|ValidationModule7.11_EJB.jarxml|ValidationModuleBean711 in application sap.com/ValidationModule7.11_EAR.; nested exception is: java.lang.NullPointerException: while trying to invoke the method com.sap.engine.interfaces.messaging.api.MessageKey.getMessageId() of an object loaded from local variable 'msgKey'
java.lang.NullPointerException: while trying to invoke the method com.sap.engine.interfaces.messaging.api.MessageKey.getMessageId() of an object loaded from local variable 'msgKey'
I am nowhere using variable 'msgkey' in my code.
I was using getMessageId() method and because of this error,I have changed the code such that I am not using this method at all.
After this change ,I have deployed the module again,and the strange part is I am still getting the same error.
Just to be sure that I have deployed the changed code,I created an altogether new module ValidationModule7.11_EAR(it was ValidationModule_EAR before) and deployed it,I am sure ,I am not using getMessageId() method at all,but I am getting the same error (as mentioned above).
I have no idea why I am getting the same error.I can see in the error message that my new module is called which doesn't use this method.
Can anyone please suggest apart from saving the Bean after code changes and redeploying the code,what needs to be done.
(Rebuilding the project,etc.)
It would be great if I can get some inputs on this strange behaviour.
Thanks a lot.
Best Regards,
ShwetaHello Stefan,
Thanks for your reply.
I have created my new module with a different JNDI name.
Also,I have verified that there is a link to the interface com.sap.aii.af.ifc.facade in application-j2ee-engine.xml .
This was the code which I was trying to adapt:
if((MessageContext)inputModuleData.getPrincipalData() instanceof MessageContext)
MessageContext messsageContext = (MessageContext)inputModuleData.getPrincipalData();
Message message = messsageContext.getMessage();
Attachment rootDocument = message.getRootDocument();
Object data = rootDocument.getData();
if(data instanceof Binary)
Binary bin = (Binary)data;
request = bin.getBytes();
String messageID = "1232";
if(dir == Direction.INBOUND)
amk = new AuditMessageKey(messageID, AuditDirection.INBOUND);
else
amk = new AuditMessageKey(messageID, AuditDirection.OUTBOUND);
But I was getting errors like MessageContext not recognized and also,for the statement:
Attachment rootDocument = message.getRootDocument();
I was getting an error in statement : if(data instanceof Binary) as following imports weren't recognized.
import com.sap.aii.messaging.lang.Binary;
import com.sap.aii.messaging.mo.*;
So I used import com.sap.aii.af.service.cpa.BinaryData; and following code
Object obj = null;
Message message = null;
obj = inputModuleData.getPrincipalData();
if(obj instanceof BinaryData)
message = (Message)obj;
BinaryData bin = (BinaryData)obj;
request = bin.getData();
String messageID = "1232";
amk = new MessageKey(messageID, message.getMessageDirection());
Code was compiled correctly and deployed ,but I get this error with getMessageId() when I try to test it.You can see I am not using getMessageId() and msgkey anywhere in the code
Thanks for your help
Regards,
Shweta -
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
ZimmerningkatHi 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. -
Deployment error in adapter module
HI ,
The deployment of the adapter module was successful but with exception.below is the log.
Any help with this is appreciated
--- Deploying file(s):
C:\Users\am90001042\workspace\File_EAR\File_EAR.ear
--- Status:
Deploy finished with warnings.
--- Description:
S U M M A R Y
~~~~~~~~~~~~~~~~~~~
Successfully deployed: 0
Deployed with warnings: 1
Failed deployments: 0
~~~~~~~~~~~~~~~~~~~
Description:
1. Warning occurred on server 59866950 during update sap.com/File_EAR : References Test: There are no matching deploy time references (described in META-INF/SAP_MANIFEST.MF) for the following runtime references [sap.com/engine.security.facade, sap.com/engine.j2ee14.facade, sap.com/com.sap.aii.af.svc.facade, sap.com/com.sap.aii.af.ifc.facade, com.sap/com.sap.aii.af.lib.facade, sap.com/com.sap.base.technology.facade] (described in the META-INF/application-j2ee-engine.xml)., file: File_EAR.ear, column 0, line 0, severity: warning
2. Exception has been returned while the [sap.com/File_EAR] was starting. Warning/Exception :[
][[ERROR CODE DPL.DS.6193] Error while ; nested exception is:
com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5030] Clusterwide exception: [server ID 59866950:[ERROR CODE DPL.DS.5029] Exception in operation [startApp] with application [sap.com/File_EAR].
-> [ERROR CODE DPL.DS.5035] Application [sap.com/File_EAR] cannot be started. Reason: it has hard reference to resource [com.sap~com.sap.aii.af.lib.facade] with type [library], which is not active on the server.
Hint: 1) Is referred resource deployed? 2) Is referred resource able to start?
server ID 59866950:com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5035] Application [sap.com/File_EAR] cannot be started. Reason: it has hard reference to resource [com.sap~com.sap.aii.af.lib.facade] with type [library], which is not active on the server.
Hint: 1) Is referred resource deployed? 2) Is referred resource able to start?
at com.sap.engine.services.deploy.server.ReferenceResolver.processReferenceToLibrary(ReferenceResolver.java:752)
at com.sap.engine.services.deploy.server.ReferenceResolver.processMakeReference(ReferenceResolver.java:568)
at com.sap.engine.services.deploy.server.ReferenceResolver.beforeStartingApplication(ReferenceResolver.java:488)
at com.sap.engine.services.deploy.server.application.StartTransaction.beginCommon(StartTransaction.java:192)
at com.sap.engine.services.deploy.server.application.StartTransaction.begin(StartTransaction.java:157)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:493)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:544)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:302)
at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:579)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:213)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:374)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3455)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3441)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3331)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3303)
at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:105)
at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:78)
at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)
at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:91)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:61)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:866)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:814)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:644)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:363)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:252)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:897)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:362)
at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:67)
at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:41)
at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:977)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:57)
at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:327)
Result
Status:Warning
Thanks
NikhilHello,
Cross check the references which u have added under application-j2ee-engine.xml and ejb-jar.xml.
There used to be wiki on SDN, which provides troubleshooting steps for each error code, but i couldn't able to find that...u can also try searching the same.
Old Link:
https://wiki.sdn.sap.com/wiki/display/JSTSG/(JSTSG)(TG)Q1127
Thanks
Amit Srivastava -
MalformedInputException Error in Adapter module for SFTP channel
Dear All,
I am using MessageTransformBean in adapter module for Plain to XML conversion. The channel works fine in all the cases but when I recieve " ì " or few more special characters in the file my channel does not pick file and show below error.
Error: com.aedaptive.adapter.sftp.SFTPException : Aborting processing: com.sap.aii.af.mp.module.ModuleException: Transform: failed to execute the transformation: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
I am using below parameter value in adapter module.
Transform.Class : com.sap.aii.messaging.adapter.Conversion
Transform.ContentType : text/xml;charset=ISO-8859-1
Please help me if any of you have faces such error in your developments.
AvanishHi Grzegorg,
I have tried using UTF-8 encoding in my channel but this doesn't work. Communication cahnnel is still giving same problem.
Error: com.aedaptive.adapter.sftp.SFTPException : Aborting processing: com.sap.aii.af.mp.module.ModuleException: Transform: failed to execute the transformation: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException caused by: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: 'sun.io.MalformedInputException'; nested exception caused by: sun.io.MalformedInputException
The file which we are trying to process have character Ì and as far as my serach is concerned i think this belongs to charset ISO-8859-1.
Any more suggestion Guys to solve this problem.
Thanks and Regards
Avanish -
Error in Adapter module on decentral Adapter engine
Hi,
I have configured a scenario file to file for picking a xml file and then converting it to corresponding edifact file,using an adapter module at the receiver side.The adapter module is getting executed but i am getting this error
Message processing failed. Cause: java.lang.ClassCastException: class Xml_To_Edi.XML2EdifactLocalHomeImpl0_0 can not be casted to ModuleLocalHome or SModuleLocalHome
Can you all tell what is this error and how to rectify it.
regards,
ujjwal kumarHi Ujjawal,
Do the following steps...
1.created EJB of type StatelessSession Bean
2.Dont uncheck generate default interfaces
3. Fininsh.
Later in ejb-jar.xml file, modify Home,Remote,Local,LocalHome entries.
and for more info
I refered a blog ,in that its given as:
You need references to connector.jar file which has the classes required at compile time and runtime
Compile time :
From the context menu of the EJB project , follow the path Properties -> Java Build Path -> Libraries.
Click on Add variable and select TSSAP_JAVAX_HOME and click on Extend and select connector.jar from the list displayed.
Run time :
Navigate to the application-j2ee-engine.xml in your EAR project.
Select References on the General tab and click on Add.
Select Select library/interface/service as shown in the snapshot and select j2eeca as in the next snapshot.
Check this blog:
/people/amol.joshi2/blog/2006/11/28/alerts-from-adapter-modules--the-jra-way-part-ii
see the comments in the blog who faced same error.may this helps or gives an idea
Searched lot for this,dont forget to reward points
Regards
Pragathi.
Edited by: Pragathi on May 23, 2008 5:15 AM -
Error in adapter module - jndi lookup can't find the class
Hi gurus,
I have a problem with my adapter module, the error from the RWB is:
Error: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of KFCProc.
My EJB-JAR looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ejb-jar (View Source for full doctype...)>
<ejb-jar>
<description>EJB JAR description</description>
<display-name>EJB JAR</display-name>
<enterprise-beans>
<session>
<ejb-name>KFCProc</ejb-name>
<home>com.sap.aii.af.mp.module.ModuleHome</home>
<remote>com.sap.aii.af.mp.module.ModuleRemote</remote>
<local-home>com.sap.aii.af.mp.module.ModuleLocalHome</local-home>
<local>com.sap.aii.af.mp.module.ModuleLocal</local>
<ejb-class>com.sap.adapter.KFCProc</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
I think it should be all right, but it isn't.
Can be the problem, that I use for "com.sap.adapter.KFCProc"package "com.sap..."?
Thank you,
OlianHi Stefan,
I developed it using your document
This is my ejb-j2ee-engine.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">
<ejb-j2ee-engine>
<enterprise-beans>
<enterprise-bean>
<ejb-name>KFCProc</ejb-name>
<jndi-name>KFCProc</jndi-name>
<session-props/>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
My entry in Modules tab of CC config is
localejbs/KFCProc
I think this all should be ok...
Thanks,
Olian -
Receiver Time error in adapter Module in PI 7.31
Hello Team,
I am trying working on adapter module that accomplish Message id, Sender Interface name,Receiver Interface name sent time and receiver time.
I got all values in my file except receiver time .I have failed to get exact receiver time.
sent time shows as 2014 04 24 05:28:57
receiver time as 1969 12 31 19:00:00
when ever message triggers its shows same receiver time(1969 12 31 19:00:00) ,I have placed my adapter module in JMS and File adapters,but i am getting same time in message receiver time .
Please help me how to get exact message receiver time.
Here is code.
Message msg1=null;
obj=md.getPrincipalData();
msg1=(Message)obj;
msg1=(Message)md.getPrincipalData();
Date date = new Date();//For dynamic date file generation
//time sent
Long timesent=msg1.getTimeSent();
Date sdate = new Date(timesent);
Format Tformat = new SimpleDateFormat("yyyy MM dd HH:mm:ss");
String SentTime=Tformat.format(sdate).toString();
//time receive
Long timerecev=msg1.getTimeReceived();
Date rdate = new Date(timerecev);
String ReceiveTime=Tformat.format(rdate).toString();
Thanks
GaneshHi ,
For file you can get it as below
String sentTime = msg.getMessageProperty("http://sap.com/xi/XI/System/File", "SourceFileTimestamp");
For JMS try the below and let me know.
String sentTime = msg.getMessageProperty("http://sap.com/xi/XI/System/JMS", "DCJMSTimestamp");
Regards
Venkat -
Dear Experts,
I have created EAR file using the NWDS tool.( the blog: " How to Create Modules fot the J2EE Adapter Engine".)
I have also deployed the EAR file usinf Visual Administrator.
When I am sending the files to a folder then the error is coming as "Exception caught with cause com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at localebjs, the whole lookup name is localebjs/CreateAttachment.
Attempt to process file failed with com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at localebjs, the whole lookup name is localebjs/CreateAttachment."
Kindly help me.
Thanks in advance.Check ejb-j2ee-engine.xml file for the Whats the EJB name and JNDI name any spelling mistakes can also create this error.
Hi,
Both the EJB name and JNDI name is same.
In JAVA, the code is like this..
@ejbHome <{com.sap.aii.af.mp.module.ModuleHome}>
@ejbLocal <{com.sap.aii.af.mp.module.ModuleLocal}>
@ejbLocalHome <{com.sap.aii.af.mp.module.ModuleLocalHome}>
@ejbRemote <{com.sap.aii.af.mp.module.ModuleRemote}>
@stateless
and ejb-j2ee-engine as
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">
<ejb-j2ee-engine>
<enterprise-beans>
<enterprise-bean>
<ejb-name>CreateAttachment</ejb-name>
<jndi-name>CreateAttachment</jndi-name>
<session-props/>
</enterprise-bean>
<enterprise-bean>
<ejb-name>AdapterModuleBean</ejb-name>
<session-props/>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
Kindly help me.
pls, tell me where should I check the error.
Edited by: Amit Mandal on Oct 23, 2008 8:55 AM -
Conversion Agent Error in Adapter Module ?
Hi,
I am trying to install the conversion agent with PI 7.0 SP15. But then i got adapter error when trying to test simple scenario PDF file to JDBC.
The error message is :
===========================================================================
Attempt to process file failed with com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at localejb, the whole lookup name is localejbs/localejb/sap.com/com.sap.nw.cm.xi/CMTransformBean
===========================================================================
I have check many time even with Visual Admin the JNDI name is correct. but why still error ?
Please advise.
Thank you and Best Regards
FernandCheck setEnv.sh is their in the startsap file
How to get started using Conversion Agent from Itemfield
More on the SAP Conversion Agent by Itemfield
Integrate SAP Conversion Agent by Itemfield with SAP XI
Conversion Agent a Free Lunch?
How to get started using Conversion Agent from Itemfield
All you need to know about conversion agaent can be found here:
https://websmp102.sap-ag.de/~sapdownload/011000358700001090982006E/ConvAgentDocSP16.zip
https://websmp102.sap-ag.de/~sapdownload/011000358700004921152005E/ConversionAgent.pdf
XI: Generate PDF file out of file adapter
XI: Read data from PDF file in Sender Adapter
The specified item was not found. -
Regd. Error in Adapter module for IDOCxml to flat file conversion
Hi Champs!
I am using PI 7.1 and i am trying out the blog for direct conversion of IDOC xml to flat file and vice versa.
/people/william.li/blog/2009/04/01/how-to-use-user-module-for-conversion-of-idoc-messages-between-flat-and-xml-formats
has anyone tried this in Pi7.1
i am getting the following error:
Message processing failed.
Cause: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException:
Path to object does not exist at SAP_XI_IDOC, the whole lookup
name is localejbs/SAP_XI_IDOC/IDOCFlatToXmlConvertor.
I have done all the setting required .. as per the blog.Is it srictly for PI7.11?
Regards,
AbhiHi Abhi,
This feature is a part of PI 7.11 new features , as it is mentioned in the begining of the Blog itself.
So i feel , yes its strictly PI7.11 feature which may not be available in PI7.1 version which you are using currently.
There may be workarounds...lets c fellow SDNer's replys:)...
Regards,
Srinivas -
Hi,
I have developed an EJB. After successfully deploying it on PI, I ma getting the following warning in NWA logs and the bean are not working:
Warning occurred on server 1627350 during deploy sap.com/FileUploadEAR : References Test: There are no matching deploy time references (described in META-INF/SAP_MANIFEST.MF) for the following runtime references [sap.com/engine.security.facade, sap.com/engine.j2ee14.facade, sap.com/com.sap.aii.af.svc.facade, sap.com/com.sap.aii.af.ifc.facade, sap.com/com.sap.aii.af.lib.facade, sap.com/com.sap.base.technology.facade] (described in the META-INF/application-j2ee-engine.xml)., file: FileUploadEAR.ear, column 0, line 0, severity: warning
Date:
2014-06-03
PFA logs from NWa.Hi Arijit,
Can you share your application-j2ee-engine.xml file that is included in your EAR for deployment?
Regards,
Ryan Crosby -
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
JaiHi,
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 -
Adapter Module Error in PI 7.1
Hi,
I have built an adapter module which has been successfully deployed on PI 7.1 using JSPM, but in communication channel monitoring it is giving below error.
Error: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of UserModuleTestEjb
In Module tab of communication channel I have passed Bean name, which works fine for other Adapter Module but strangely its not working for this one.
I have also passed JNDI name which is same as EJB bean name. I have tried several other combinations like below none is working.
localeejbs/UserModuleTestEjb
localeejbs/sap.com/UserModuleTestEjb
Regards,
Nishanthi,
Check if u have added correct references in application-j2ee-engine.xml file and if u are using external library it is there in SDA file.
/people/stefan.grube/blog/2008/12/11/adjust-your-pi-70-adapter-modules-for-pi-71-in-15-minutes
Thanks. -
File sender adapter Module Error
Hi Everybody,
I have developed an adapter module for file sender to rename the file name which is picked from the directory and I am getting an error
"Attempt to process file failed with java.lang.NullPointerException".
Can anybody tell me why is this error?
Thanks,
ZabiHi,
first check that module has been succesfully executed or not .This you can check in RWB .
Secondly go in the file adpater and click on to module tab and check
1-there will be two things one will be adapter module that you have depolyed. other one will be call sap adapter.
2- make sure that call sap adapter should come after the module you have deployed. and having the key value less then adapter module (let say your adapter module is having the key value 1 and call sap adpater is having the key value 0 then you need to change the key value there)
Thanks
sachin
Maybe you are looking for
-
ERP 6.0 component upgrade (NW + Fiori app)
Dear experts, I’m trying to upgrade ERP system with Sum 1.0 SP11 Patch 2 & I’ve already updated tp, r3ta, r3trans, disp+work files in kernel. Source System -> Target System (above red line everything is the same) In execution phase I’ve got sm37 is n
-
I want to visit your company for studying.
Hi, my name is Bae Gi Woong. I am a student from KAIST(Korea Advanced Institute of Science and Technology), Korea. I am interested in UI(User Interface) and Multi Touch System. There is a global education program which supports students who want to v
-
How to split video files into clips
please help this noob. i have adobe master collection cs3 and i'm totally lost as to how i can take a large video file and split it into various clips... example being a 20 minute fireworks display and i want to split that movie into a few dozen clip
-
When installing SP8 and working him on Solaris8, it will be set to ERROR if the site of HTTPS is accessed via [ client ] applicable PROXY. In ERRORLOG of PROXY, it is http-parse-request reports in that case. : invalid protocol in request line CONNECT
-
IOS 6.0 music shuffle does NOT work
The music player does not remember where the last session ended. I have about 1000 songs on my iPhone. I play the songs in the Shuffle mode - and it worked fine on iOS 5.x. Ever since I updated to iOS 6.0, the shuffle seems to be seriously broken.