cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with Java Mapping - NoClassDefFoundError exception

Former Member
0 Kudos

Hi mates,

I'm facing a problem with my java mapping program.

The scenario is a RFC -> XI - HTTP, synchronous interface, where i receive some data from the ECC system and i need to sign and envelope this data, using the pattern PKCS#7, and send it to my HTTP Server using HTTPS protocol.

The problems occurs when i try to use the IAIK library (iaik_jce.jar), to sign and envelope my message.

The error message returned is (At SXMB_MONI):

[code]

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

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

...

<SAP:Stack>Inkompatible Versionen von Klassen (Linkage Error).</SAP:Stack>

[/code]

Taking a good view at the trace XML:

[code] <Trace level="1" type="T">Interface Mapping http://mynamespace/ComunicacaoBancaria Remessa_R3toHttp_IM</Trace>

<Trace level="1" type="T">Class not found: iaik.x509.X509Certificate</Trace>

<Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.persist.ResourceNotFoundException: Unable to find resource iaik/x509/X509Certificate.class (http://mynamespace.com/MyComponent, a005e9f1-24cd-11dc-c408-c4dbc0a80019, -1) at com.sap.aii.ibrun.server.mapping.persist.DBSwcvMappingPersistor.getInputStream(DBSwcvMappingPersistor.java:325) at com.sap.aii.ibrun.server.mapping.persist.DBSwcvMappingPersistor.readFile(DBSwcvMappingPersistor.java:203) at com.sap.aii.ibrun.server.mapping.persist.DBSwcvMappingPersistor.readClass(DBSwcvMappingPersistor.java:195) at com.sap.aii.ibrun.server.mapping.MappingLoader.findClass(MappingLoader.java:138) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at com.mynamespace.mapeamento.MapeamentoRFC2HTTP.toSignedXML(MapeamentoRFC2HTTP.java:275) at com.mynamespace.mapeamento.MapeamentoRFC2HTTP.execute(MapeamentoRFC2HTTP.java:108) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) 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.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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 $Proxy204.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java:273) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:215) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java:156) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java:7785) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java:2405) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java:1728) at com.sap.mw.jco.JCO$Server.listen(JCO.java:8145) at com.sap.mw.jco.JCO$Server.work(JCO.java:8265) at com.sap.mw.jco.JCO$Server.loop(JCO.java:8212) at com.sap.mw.jco.JCO$Server.run(JCO.java:8128) 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)</Trace>

<Trace level="1" type="T">LinkageError during appliction Java mapping com/mynamespace/mycomponent/mapeamento/MapeamentoRFC2HTTP</Trace>

<Trace level="1" type="T">java.lang.NoClassDefFoundError: iaik/x509/X509Certificate at com.mynamespace.mapeamento.MapeamentoRFC2HTTP.toSignedXML(MapeamentoRFC2HTTP.java:275) at com.mynamespace.mapeamento.MapeamentoRFC2HTTP.execute(MapeamentoRFC2HTTP.java:108) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) 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.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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 $Proxy204.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java:273) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:215) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java:156) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java:7785) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java:2405) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java:1728) at com.sap.mw.jco.JCO$Server.listen(JCO.java:8145) at com.sap.mw.jco.JCO$Server.work(JCO.java:8265) at com.sap.mw.jco.JCO$Server.loop(JCO.java:8212) at com.sap.mw.jco.JCO$Server.run(JCO.java:8128) 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)</Trace>

<Trace level="1" type="T">Linkage error occurred when loading class com/mynamespace/mycomponent/mapeamento/MapeamentoRFC2HTTP (http://mynamespace.com/MyComponent, a005e9f1-24cd-11dc-c408-c4dbc0a80019, -1)</Trace>

<Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Linkage error occurred when loading class com/mynamespace/mycomponent/mapeamento/MapeamentoRFC2HTTP (http://mynamespace.com/MyComponent, a005e9f1-24cd-11dc-c408-c4dbc0a80019, -1) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:70) 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.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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 $Proxy204.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java:273) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:215) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java:156) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java:7785) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java:2405) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java:1728) at com.sap.mw.jco.JCO$Server.listen(JCO.java:8145) at com.sap.mw.jco.JCO$Server.work(JCO.java:8265) at com.sap.mw.jco.JCO$Server.loop(JCO.java:8212) at com.sap.mw.jco.JCO$Server.run(JCO.java:8128) 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) Root Cause: java.lang.NoClassDefFoundError: iaik/x509/X509Certificate at com.mynamespace.mapeamento.MapeamentoRFC2HTTP.toSignedXML(MapeamentoRFC2HTTP.java:275) at com.mynamespace.mapeamento.MapeamentoRFC2HTTP.execute(MapeamentoRFC2HTTP.java:108) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) 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.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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 $Proxy204.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java:273) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:215) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java:156) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java:7785) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java:2405) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java:1728) at com.sap.mw.jco.JCO$Server.listen(JCO.java:8145) at com.sap.mw.jco.JCO$Server.work(JCO.java:8265) at com.sap.mw.jco.JCO$Server.loop(JCO.java:8212) at com.sap.mw.jco.JCO$Server.run(JCO.java:8128) 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)</Trace>

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

The IAIK JCE library already exists in the J2EE engine, because it's needed to use the KeyStorage Service.

In mt java code, i use the following includes:

[code]

import iaik.asn1.ASN1Object;

import iaik.asn1.ObjectID;

import iaik.asn1.structures.AlgorithmID;

import iaik.asn1.structures.Attribute;

import iaik.asn1.structures.ChoiceOfTime;

import iaik.pkcs.pkcs7.EnvelopedDataStream;

import iaik.pkcs.pkcs7.IssuerAndSerialNumber;

import iaik.pkcs.pkcs7.RecipientInfo;

import iaik.pkcs.pkcs7.SignedData;

import iaik.pkcs.pkcs7.SignedDataStream;

import iaik.pkcs.pkcs7.SignerInfo;

import iaik.security.provider.IAIK;

import iaik.x509.X509Certificate;

[/code]

What it's wrong with my java mapping? Any clues?

Is there any compactibility problem with the IAIK lib?

Is the IAIK lib the "standard" way to access the KeyStorage service and sign data in XI/NetWeaver?

Thanks in advance,

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Jose,

Please import the IAIK jar into repository, in "Imported Archives" and try again.

Reward points if helpful.

Regards.

Answers (0)