cancel
Showing results for 
Search instead for 
Did you mean: 

Java Mapping Error

Former Member
0 Kudos

Hi,

I'm working with Java Mapping.

Scenario is File to File (XML to XML). I've developed the java program by using DOM parser in it. I've completed everything at IR (Datatypes, Msg Types, Imported Archives, Interface Mapping) and everything at ID.

When I test in Interface Mapping, I got the following error:

12:28:28 Start of test

LinkageError at JavaMapping.load(): Could not load class: JavaMappingWithDOM

java.lang.UnsupportedClassVersionError: JavaMappingWithDOM (Unsupported major.minor version 49.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) at java.lang.ClassLoader.defineClass(ClassLoader.java:448) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.load(RepJavaMapping.java:136) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.execute(RepJavaMapping.java:50) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127) at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0.transform(MapServiceRemoteObjectImpl0_0.java:167) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0p4_Skel.dispatch(MapServiceRemoteObjectImpl0_0p4_Skel.java:104) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:312) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:199) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

12:28:30 End of test

Please anybody resolve this.

Thanks in advance

Regards

Krishna.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello

this error occurs because of wrong java class file version, looks like you have compiled the class file for JAVA 1.5 or higher -> XI runs on Java 1.4 AFAIK

if you are developing your mapping in eclipse open your project select your project goto Project -> Properties (or right click your project in the project explorer and then select properties)

then select Java Compiler -> select enable project spec. settings -> and set Compiler compliance level to 1.4 or lower and rebuild your project

regards franz

reward points if useful

Former Member
0 Kudos

hi krishna,

it is not able to find the java class file. did you zip the class file and then imported in to XI ??

regards

Ramesh P

Former Member
0 Kudos

yes Ramesh,

I've zipped the<b> .class</b> file and <b>.java</b> file and loaded into Imported Archive.

Former Member
0 Kudos

hi

you dont need .java file. you only need .class file.

You have only import .class file which is zipped and call this mapping between MTs.

regards

Ramesh P

Former Member
0 Kudos

Hi Ramesh,

I've zipped only<b> .class</b> file.

Now I got the following error:

12:56:20 Start of test

LinkageError at JavaMapping.load(): Could not load class: JavaMappingWithDOM

java.lang.UnsupportedClassVersionError: JavaMappingWithDOM (Unsupported major.minor version 49.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) at java.lang.ClassLoader.defineClass(ClassLoader.java:448) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.load(RepJavaMapping.java:136) at com.sap.aii.ibrep.server.mapping.ibrun.RepJavaMapping.execute(RepJavaMapping.java:50) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127) at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0.transform(MapServiceRemoteObjectImpl0_0.java:167) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0_0p4_Skel.dispatch(MapServiceRemoteObjectImpl0_0p4_Skel.java:104) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:312) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:199) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

12:56:20 End of test

Please help me.

Thanks

Krishna.

Former Member
0 Kudos

can i see your class file or did you look into some blog and tried...

regards

Ramesh P

Former Member
0 Kudos

Hi Ramesh,

I didn't get u.

U mean .class file or java program.

Former Member
0 Kudos

sorry, i meant java file

Former Member
0 Kudos

ok. The following is the Java program.

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Map;

import java.util.Vector;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.FactoryConfigurationError;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.TransformerFactoryConfigurationError;

import javax.xml.transform.TransformerConfigurationException;

import javax.xml.transform.TransformerException;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.w3c.dom.Text;

import org.xml.sax.SAXException;

import com.sap.aii.mapping.api.StreamTransformation;

import com.sap.aii.mapping.api.StreamTransformationConstants;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.AbstractTrace;

public class JavaMappingWithDOM implements StreamTransformation{

private static Vector nameVector = new Vector();

private static Vector valueVector = new Vector();

private DocumentBuilderFactory dbf = null;

private DocumentBuilder db = null;

private Document outputDoc = null;

private Document inputDoc = null;

JavaMappingWithDOM(){

}

public void setParameter(Map map){

}

public void execute(InputStream inputFile, OutputStream outputFile)throws StreamTransformationException{

try{

dbf = DocumentBuilderFactory.newInstance();

db = dbf.newDocumentBuilder();

inputDoc = db.parse(inputFile);

parseInput(inputDoc);

generateXMLOutput();

TransformerFactory transformerFactory = TransformerFactory.newInstance();

Transformer transformer = transformerFactory.newTransformer();

DOMSource source = new DOMSource(outputDoc);

StreamResult result = new StreamResult(outputFile);

transformer.transform(source, result);

} catch (FactoryConfigurationError e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (TransformerConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (TransformerException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException ex) {

System.out.println("File does not exists!!!");

} catch (SAXException ex) {

System.out.println("SAX EX :"+ex);

}

}

void parseInput(Node node){

int nodeType = node.getNodeType();

if (nodeType == Node.ELEMENT_NODE){

if (node.getNodeName()!=null){

nameVector.add(node.getNodeName());

}

if (node.getNodeValue()!=null){

valueVector.add(node.getNodeValue());

}

if (node.getAttributes().item(0)!=null){

nameVector.add(node.getAttributes().item(0).getNodeName());

valueVector.add(node.getAttributes().item(0).getNodeValue());

}

}

NodeList childNodesList = node.getChildNodes();

if(childNodesList != null){

for(int i=0; i<childNodesList.getLength(); i++){

Node childNode = childNodesList.item(i);

if ( childNode.getNodeValue()!=null ){

if (childNode.getNodeValue().trim().length()!=0) {

valueVector.add(childNode.getNodeValue());

}

}

parseInput(childNodesList.item(i));

}

}

}

void generateXMLOutput(){

try{

dbf = DocumentBuilderFactory.newInstance();

db = dbf.newDocumentBuilder();

outputDoc = db.newDocument();

Element rootElement_PersonInformation = outputDoc.createElement("DT_Receiver_JavaMappingDOM_Demo_Bhanu");

String fullName = null;

int nameVectorCounter = 1;

int valueVectorCounter = 0;

for(valueVectorCounter=0; valueVectorCounter<valueVector.size(); valueVectorCounter++){

Element childElement_Name = outputDoc.createElement(nameVector.elementAt(nameVectorCounter++).toString());

rootElement_PersonInformation.appendChild(childElement_Name);

Attr attrName = outputDoc.createAttribute(nameVector.elementAt(nameVectorCounter).toString());

attrName.setNodeValue(valueVector.elementAt(valueVectorCounter++).toString());

childElement_Name.setAttributeNode(attrName);

fullName = valueVector.elementAt(valueVectorCounter+).toString()" "+valueVector.elementAt(valueVectorCounter).toString();

Node childElement_Name_FullName = outputDoc.createElement("FullName");

Text childElement_Name_FullName_Text = outputDoc.createTextNode(fullName);

childElement_Name_FullName.appendChild(childElement_Name_FullName_Text);

childElement_Name.appendChild(childElement_Name_FullName);

nameVectorCounter+=3;

}

outputDoc.appendChild(rootElement_PersonInformation);

} catch (FactoryConfigurationError e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (TransformerFactoryConfigurationError e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String args[]){

}

}

-


This is the program.

Regards

Krishna.

Former Member
0 Kudos

hi krishna

<i>public static void main(String args[]){

}</i><i></i>

do we use main function in the java mapping case in XI?

just check this link

/people/rahul.nawale2/blog/2006/07/18/java-mapping-an-alternate-way-of-reading-a-csv-file

regards

Ramesh P

Former Member
0 Kudos

Even then I got the same error.

"Class not found" error.

Could you plz help me.

Former Member
0 Kudos

hi krishna,

did you define your class in a package...

then specify the package name for the source file of class

for example

com/sap/testjava/test.class -


> you have compress the entire path and then reload into java mapping