cancel
Showing results for 
Search instead for 
Did you mean: 

Java Mapping - Class versions are incompatible (linkage error)

Former Member
0 Kudos

Hi Friends,

While testing java mapping in Integration Repository i am getting an error - "Class versions are incompatible (linkage error)". Can anyone plz tell what might be the reason.

Regards,

Gowtham Kuchipudi.

Accepted Solutions (0)

Answers (4)

Answers (4)

arthur_fuscella
Participant
0 Kudos

Hello Gowtham,

The error message given is due to JDK mismatch between your java application and the java version on PI server. SAP PI uses JDK 1.4 or 1.6 by default, depending of PI version, so you should use the same JDK in your mapping program as well.

In your Eclipse IDE, double click on your project > Build Path > Configure Build Path and point it to a correct java library.

Regards,

Arthur Silva

Former Member
0 Kudos

Hi Gowtham ,

that's because the java version you used to compile you java class is higher than the JVM your XI is running on. Find our which Java version your XI/PI has, and reduce the java version of your java IDE to your xi java version compile your java classes, that will solve your problem.

Jayson

Former Member
0 Kudos

Hi ,

As Jayson mentioned , the compiled Java code and running environment are different then this exception will be thrown. So always follow the Java compliance standards.

Cheers ,

Mani

Former Member
0 Kudos

hello

I have this message but my trace look like this:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Request Message Mapping

-->

- <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">

- <Trace level="1" type="B" name="interface activity determination">

<Trace level="1" type="T">Version 000</Trace>

<Trace level="1" type="T">Message status 000</Trace>

<Trace level="1" type="T">Interface action INIT</Trace>

<Trace level="1" type="T">(must be INIT for a new determination)</Trace>

<Trace level="1" type="T">Message type BEST EFFORT. -> No determination</Trace>

<Trace level="1" type="T">Set interface action INIT into *MAST*</Trace>

</Trace>

<Trace level="1" type="E">CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST</Trace>

- <Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">

- <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">

<Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>

<Trace level="1" type="T">Cache Content is up to date</Trace>

</Trace>

</Trace>

</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

- <Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">

- <Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">

<Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N</Trace>

<Trace level="1" type="T">Cache Content is up to date</Trace>

</Trace>

</Trace>

</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

- <Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">

- <Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV">

<Trace level="1" type="T">number of receivers: 1</Trace>

<Trace level="1" type="T">Single-receiver split case</Trace>

</Trace>

</Trace>

</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

<Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST" />

- <!-- ************************************

-->

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />

- <!-- ************************************

-->

<Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV" />

- <!-- ************************************

-->

<Trace level="1" type="T">Interface Mapping http://Migdal.co.il/CRM/SAP-CRM/ProposalDeatailsService ProposalDeatailsService_WS2RFC_IM</Trace>

<Trace level="1" type="T">LinkageError at JavaMapping.load(): Could not load class: xmlpayload</Trace>

<Trace level="1" type="T">java.lang.UnsupportedClassVersionError: xmlpayload (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.ibrun.server.mapping.MappingLoader.findClass(MappingLoader.java:158) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at com.sap.aii.ibrun.server.mapping.JavaMapping.load(JavaMapping.java:95) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:45) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:92) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0_0.processFunction(MappingServiceObjectImpl0_0.java:131) at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy158.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:107) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:157) 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:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</Trace>

<Trace level="1" type="T">Linkage error occurred when loading class xmlpayload (http://Migdal.co.il/CRM/SAP-CRM/ProposalDeatailsService, d7e31f30-53be-11dc-8fbd-ee09c0a8664d, -1)</Trace>

<Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Linkage error occurred when loading class xmlpayload (http://Migdal.co.il/CRM/SAP-CRM/ProposalDeatailsService, d7e31f30-53be-11dc-8fbd-ee09c0a8664d, -1) at com.sap.aii.ibrun.server.mapping.JavaMapping.load(JavaMapping.java:115) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:45) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:92) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0_0.processFunction(MappingServiceObjectImpl0_0.java:131) at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy158.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:107) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:157) 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:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172) Root Cause: java.lang.UnsupportedClassVersionError: xmlpayload (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.ibrun.server.mapping.MappingLoader.findClass(MappingLoader.java:158) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at com.sap.aii.ibrun.server.mapping.JavaMapping.load(JavaMapping.java:95) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:45) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:92) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0_0.processFunction(MappingServiceObjectImpl0_0.java:131) at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy158.processFunction(Unknown Source) at sun.reflect.GeneratedMethodAccessor428.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:107) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:157) 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:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)</Trace>

<Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />

- <!-- ************************************

-->

</SAP:Trace>

the error that I recieve in the SXMB is:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Request Message Mapping

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>Application</SAP:Category>

<SAP:Code area="MAPPING">LINKAGE_ERROR</SAP:Code>

<SAP:P1>xmlpayload</SAP:P1>

<SAP:P2>http://Migdal.co.il/CRM/SAP-CRM/ProposalDeatailsS~</SAP:P2>

<SAP:P3>d7e31f30-53be-11dc-8fbd-ee09c0a8664d</SAP:P3>

<SAP:P4>-1</SAP:P4>

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>Class versions are incompatible (linkage error)</SAP:Stack>

<SAP:Retry>N</SAP:Retry>

</SAP:Error>

this is my XI information

Runtime Environment

Java version:1.4.2_12

Java vendor:Sun Microsystems Inc.

Version

Service pack:21

Release:30_VAL_REL

Latest change:409678

Sync time:200709211024

since I already have the SP required by the note, any other suggestions?

Thanks

Kfir

MichalKrawczyk
Active Contributor
0 Kudos

Hi Gowtham,

have you seen this note: 755302 ?

Regards,

michal

Former Member
0 Kudos

Gowtham

Just like Michal pointed you can check the note 755302, in case you do not have access to marketplace, below is the content of the note.

Symptom

The LINKAGE_ERROR error occurs during the mapping.

The trace contains "java.lang.NoClassDefFoundError: Illegal name":

Other terms

XI 30, Mapping, Linkage Error

Reason and Prerequisites

As of the jdk 1.4.2_05 from Sun, this program error occurs during the mapping in the runtime or during testing in the Repository. This error may also occur in conjunction with jdks of other vendors or other versions.

Solution

The error is corrected with Support Package 5 for Support Package 03 for the XI TOOLS 3.0 software component.

Import the corresponding archive SAPXITOOL03P_5.SCA for SAP Exchange Infrastructure XI 3.0 as described in the Netweaver 04 Support Package Stac Guide.

You will find the archive and the guide in the SAP Service Marketplace under the alias "SP stacks -> SAP NetWeaver -> SAP NetWeaver 04".

cheers

Sameer