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
Nikhil
Hello,
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
Similar Messages
-
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 DI 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 -
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. -
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 -
Custom adapter module deployment in PI 7.1
We upgrade XI 3.0 to PI 7.1. However, I dont see SDM directory anymore which is what I had used to deploy my custom adapter module.
Is there a different way to deploy custom adapter module in 7.1? Is SDM discontinued?
When I try to deploy the ear file from NWDS directly I get deployment exception error
"Deployment exception : Cannot determine sdm host (is empty). Please configure your engine/sdm correctly !".
I have given the message server host and port correctly in preferences.
I am using NWDS 7 and JAVA SDK 1.4.2.15.
Is there a new procedure to deploy custom adapters in PI 7.1?
Regards
Haseebhi,
check this document:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00838345-708c-2a10-1199-9514c0b0a91c
regards. -
SAP PI crashes because of Custom Adapter module
Hi,
We are facing a strange problem. We have deployed a custom adapter module developed in java which accesses a Hardware Security Module(HSM) and uses the keys in HSM to digitally sign our data. Now, when I use particular methods in this code and deploy it on PI server, the server crashes while testing this out. As soon as I run the channel having this adapter module, PI server becomes unavailable. It restarts on its own after a few minutes.
One of the reasons I identified to be causing this issue is the signing mechanism used in code. When I used a mechanism that was not supported or not correct, it crashed the server. If i corrected it, it worked fine. I found no other thing in my code causing this behaviour apart from this mechanism. But I am still not able to understand how a single method in a code can cause the whole server to crash. Has anybody here faced such a problem? Any pointers would be appreciated.
We are using SAP PI 7.31 java only installation.
Thanks,
Ravi DesaiHi Ravi
1. To check if it is a memory issue. Once you start the channel, check the memory usage in nwa. Check if the memory is increasing once the channel is started.
2. Add debug statements to print logs in default traces at as many places as possible. Since your code is not reaching the Catch block, using the debug statement you can reach the line in the code which is causing this issue.
Regards
Osman Jabri -
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
Maybe you are looking for
-
How do I stop my screen from going from gray to black after about 60 seconds? Thanks for help
-
Skype not available in Canada?
I would like to use Skype on my ipod touch. I found out it is only available in the US? Isn't that silly? It is a free app, and I have a skype account here in Canada. Please Apple, make skype available in itunes Store Canada
-
Hi, I use the windows authentication to login into planning 4.1 and reports 7.2, but now for the last few days i can login into planning but not into hyperion reports with the windows id. What can be the issue and how should it be solved? Thanks
-
Can someone help me find the JavaMail example code?
Hello, once I found a collection of source code files that contained example code for using the JavaMail API. Now I cannot find the collection. Is it still online? Can anyone help me find the JavaMail example code? Sorry if this question seems to eas
-
Create one sales order for two customers
Hello to all. I have to plan the following development. Our client can create one sales order for one material and can bill it between two or more payers. In SAP you would have to create one sales order for each customer and divide the material prop