Skip to Content
0
Oct 03, 2006 at 10:38 AM

XI synchronous java proxy issue (negative cache error)

18 Views

Hello,

I am trying to implement a synchronous XI-generated java proxy example for the FlightAvailabilityOut scenario as-per the demo-guide:

http://sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7d4db211-0d01-0010-1e8e-9b07fc2113ab#search=%22sap%20xi%20java%20proxy%20guide%22

I have created the EJB from the generated proxy code, and I have also created a WAR project containing a servlet to call the EJB. Both the EJB (JAR) and WAR files are then packaged into a single EAR project and deployed to the J2EE engine successfully from within the NWDS IDE.

I have added the following external JARs to the build paths of both the EJB and the WAR projects:

com.sap.aii.proxy.xiruntime

com.sap.aii.messaging.runtime

com.sap.xi.util.misc

com.sap.guid

I have also added weak references to these libraries in the application-j2ee-engine.xml of the EAR project.

When I run the servlet, the EJB object is created and the remote interface is returned successfully, however when I run the synchronous method (flightSeatAvailabilityQueryOut) on the remote interface, I receive the following exception:

"I/O operation failed : java.lang.ClassNotFoundException: com.sap.aii.af.ra.ms.api.DeliveryException Found in negative cache"

This issue only seems to occur when calling synchronous methods, I have implemented asynchronous proxies exactly the same without encountering any issues.

Seems as I am only doing a proof-of-concept at this point, I am currently deploying the EAR file to the J2EE engine of the integration server itself, this is because this is the only NW2004s server that we have in our development environment that is currently running the Java Adapter Framework. The demo-guide advises that you should use a separate install of the adapter framework for deploying bespoke proxies, could this be what is causing the negative-cache issue with my synchronous calls?

Any help would be greatly appreciated.

Thanks in advance,

Paul.