cancel
Showing results for 
Search instead for 
Did you mean: 

Calling REST web service Dynamically gives NoClassDefFoundError

mike_radcliff
Explorer
0 Kudos

Hi Experts,

I am attempting to call a REST Web Service in PI 7.3, Single JAVA Stack.

I used the blog http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/08/11/calling-synchronous-restful-web-s...

and http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/08/18/consuming-synchronous-restful-web... posted by Amit Dingorkar as the starting point.

I am using an ABAP program on our ECC system to create/send a couple needed fields to PI via HTTP Proxy.

Following the above blogs, I created my url dynamically and put the value into the proper fields in the mapping, based on the blog. I then tested it using SPROXY on the ECC box.

Here is the message content showing that the mapping worked, the url and the TServerLocation both have the correct URL that I am setting up dynamically.

content-id:<soap-E207DABD4279A0F189C6005056B73293@sap.com>Content-Type:text/xml; charset=utf-8

<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>

<SOAP:Header xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SAP='http://sap.com/xi/XI/Message/30' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:wsu='http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' xmlns:wsse='http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' xmlns:versionMajor='003' xmlns:versionMinor='000' xmlns:mustUnderstand='1' xmlns:Id='wsuid-main-92ABE13F5C59AB7FE10000000A1551F7'>

<SAP:Main versionMajor='3' versionMinor='1' SOAP:mustUnderstand='1' wsu:Id='wsuid-main-92ABE13F5C59AB7FE10000000A1551F7'>

<SAP:MessageClass>ApplicationMessage</SAP:MessageClass><SAP:ProcessingMode>synchronous</SAP:ProcessingMode>

<SAP:MessageId>e207dabd-4279-9ef1-89c6-005056b73293</SAP:MessageId>

<SAP:TimeSent>2012-09-26T13:04:47Z</SAP:TimeSent>

<SAP:Sender>

<SAP:Party agency='' scheme=''></SAP:Party>

<SAP:Service>BS_SAPECC_DEV_150</SAP:Service>

</SAP:Sender>

<SAP:Receiver>

<SAP:Party agency='http://sap.com/xi/XI' scheme='XIParty'>

</SAP:Party>

<SAP:Service>BS_SAPECC_DEV_150</SAP:Service>

</SAP:Receiver>

<SAP:Interface namespace='http://abc.com/xi/PI/Radtest/Namespace'>Radtest_IB</SAP:Interface>

</SAP:Main>

<SAP:ReliableMessaging SOAP:mustUnderstand='1'>

<SAP:QualityOfService>BestEffort</SAP:QualityOfService>

</SAP:ReliableMessaging>

<SAP:System SOAP:mustUnderstand='1'>

<SAP:Record namespace='http://sap.com/xi/XI/Message/30/general' name='interfaceDeterminationGUID'>aeb8e57afea111e1bf3400000c37ad5a</SAP:Record>

<SAP:Record namespace='http://www.sap.com/webas/712/soap/features/runtime/metering/' name='CallingType'>SA</SAP:Record>

<SAP:Record namespace='http://sap.com/xi/XI/Message/30/general' name='syncTimeout'>300000</SAP:Record>

<SAP:Record namespace='http://sap.com/xi/XI/Message/30/general' name='senderAgreementGUID'>97720a5333e333a28ee2701c9cd32e7f</SAP:Record>

</SAP:System>

<SAP:Diagnostic SOAP:mustUnderstand='1'>

<SAP:TraceLevel>Information</SAP:TraceLevel>

<SAP:Logging>Off</SAP:Logging>

</SAP:Diagnostic>

<SAP:HopList SOAP:mustUnderstand='1'>

<SAP:Hop timeStamp='2012-09-26T13:04:45Z' wasRead='false'>

<SAP:Engine type='BS'>BS_SAPECC_DEV_150</SAP:Engine>

<SAP:Adapter namespace='http://sap.com/xi/XI/System'>XI</SAP:Adapter>

<SAP:MessageId>e207dabd-4279-9ef1-89c6-005056b73293</SAP:MessageId>

<SAP:Info>3.0</SAP:Info>

</SAP:Hop>

<SAP:Hop timeStamp='2012-09-26T13:04:47Z' wasRead='false'>

<SAP:Engine type='AE'>af.xid.sapxidb</SAP:Engine>

<SAP:Adapter namespace='http://sap.com/xi/XI/System'>XIRA</SAP:Adapter>

<SAP:MessageId>e207dabd-4279-9ef1-89c6-005056b73293</SAP:MessageId>

</SAP:Hop></SAP:HopList>

<SAP:DynamicConfiguration SOAP:mustUnderstand='1'>

<SAP:Record namespace='http://sap.com/xi/XI/Message/30/routing' name='InterfaceDeterminationHash'>ab1b59ecec2aa92356f1ae1b92085585</SAP:Record>

<SAP:Record namespace='http://sap.com/xi/XI/System/SOAP' name='TServerLocation'>http://www.abc.com/rest/bean/atg/commerce/inv/IM/quantityByArticle?arg1=9578106</SAP:Record>

<SAP:Record namespace='http://sap.com/xi/XI/Message/30/general' name='senderAgreementGUID'>97720a5333e333a28ee2701c9cd32e7f</SAP:Record>

</SAP:DynamicConfiguration>

</SOAP:Header>

<SOAP:Body><sap:Manifest xmlns:sap='http://sap.com/xi/XI/Message/30' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:wsu='http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' wsu:Id='wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7'>

<sap:Payload xlink:type='simple' xlink:href='cid:payload-E207DABD42799FF189C6005056B73293@sap.com'>

<sap:Name>MainDocument</sap:Name>

<sap:Description></sap:Description>

<sap:Type>Application</sap:Type>

</sap:Payload>

</sap:Manifest>

</SOAP:Body>

</SOAP:Envelope>content-id:payload-E207DABD42799FF189C6005056B73293@sap.comContent-Type:application/xml<?xml version="1.0" encoding="UTF-8"?>

<ns0:Radtest_MT xmlns:ns0="http://abc.com/xi/PI/Radtest/Namespace">

<url>http://www.abc.com/rest/bean/atg/commerce/inv/IM/quantityByArticle?arg1=9578106</url>

</ns0:Radtest_MT>

I am getting a General error when monitoring messages and the message cancels with the following Log.

...

9/26/2012 9:04:50.118 AMErrorAxis: fatal error in invocation: java.lang.NoClassDefFoundError: javax/wsdl/OperationType
9/26/2012 9:04:50.148 AMErrorMP: exception caught with cause javax.ejb.TransactionRolledbackLocalException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType
9/26/2012 9:04:50.154 AMErrorException caught by adapter framework: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType
9/26/2012 9:04:50.299 AMErrorTransmitting the message using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: javax.ejb.TransactionRolledbackLocalException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/wsdl/OperationType

The first message also shows up in Communication Channel monitoring for the Proxy Comm Channel and the SOAP channel that we used.

Anyone have any suggestions?

Thank you for your help,
Mike

Accepted Solutions (0)

Answers (1)

Answers (1)

mike_radcliff
Explorer
0 Kudos

Hi Again,

A little more information.

I tried the test again, and I am now getting the following errors in Monitor Messages.

9/26/2012 11:09:29.855 AMErrorAxis: fatal error in invocation: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed
9/26/2012 11:09:29.862 AMErrorMP: exception caught with cause javax.ejb.TransactionRolledbackLocalException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed
9/26/2012 11:09:29.867 AMErrorException caught by adapter framework: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed
9/26/2012 11:09:30.205 AMErrorTransmitting the message using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: javax.ejb.TransactionRolledbackLocalException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBTransactionRolledbackException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed; nested exception is: javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis/description/OperationDesc : cannot initialize class because prior initialization attempt failed

Once again, thanks for any thoughts/help on this issue.

Mike

Former Member
0 Kudos

Hi Mike,

As far as you are using PI 7.3 with a single Java stack you need to add to your classpath

wsdl4j-1.6.2.jar

actually you could add axis-wsdl4j-1.5.1.jar since it's the version used by axis to build the 1.4 version, but I recommend you to use the last version which doesn't depend on axis and it's perfectly compatible.

You can download wsdl4j-1.6.2.jar from here http://sourceforge.net/projects/wsdl4j/

best regards,

Tena.