cancel
Showing results for 
Search instead for 
Did you mean: 

Java Proxy Runtime: failure to locate proxy bean on inbound call

Former Member
0 Kudos

Hello gurus of the SDN,

I have been trying to get an inbound Java Proxy scenario to work in XI 3.0 but have not been able to get the JPR to recognize my generated and deployed java code. My scenario is set up to call the java proxies generated from a message interface based on the MATMAS Idoc. I successfully deployed the generated java proxies on the same host box as is running the XI instance. The objects are named as follows

Message interface on XI = Inbound_MATMAS04

Generated proxy bean = Inbound_MATMAS04_PortTypeBean

Implementing class = InboundMATMAS04_PortTypeImpl

Implementing method = inboundMATMAS04

I used the JPR transport servlet to register the interface and implementing class but am not sure if I did this correctly. I used the following entry in my web browser:

http://nadcp786:50000/ProxyServer/register?

ns=urn:xiTrainingLabs:groupXX:SAP&

interface=InboundMATMAS04&

bean=InboundMATMAS04_PortTypeImpl&

method=inboundMATMAS04

I also tried using the localejb/ prefix for the bean name in the above step since the code is co-located. When I trigger the scenario, the Idoc info is passed into XI and the Java Proxy Runtime is called, but I get the following error response back in the SOAP header:

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

<SAP:Category>XIAdapterFramework</SAP:Category>

<SAP:Code area="PARSING">GENERAL</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Cannot locate proxy bean InboundMATMAS04_PortTypeImpl: com.sap.aii.proxy.xiruntime.core.XmlInboundException: Cannot locate proxy bean InboundMATMAS04_PortTypeImpl</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

Finally, appended at the end of this post is the audit log of the messaging system showing that the JPR is called but without being able to locate the bean. I think I am missing a configuration step somewhere, but can’t figure out what it is!! Can anyone help me?

Many thanks in advance.

Regards,

Nick Simon

Time Stamp Status Description

2004-10-25 19:47:32 Success The message was successfully received by the messaging system. Profile: XI URL: http://nadcp786.bcsdc.lexington.ibm.com:50000/MessagingSystem/receive/JPR/XI

2004-10-25 19:47:32 Success Using connection JPR. Trying to put the message into the receive queue.

2004-10-25 19:47:32 Success The message was successfully retrieved from the receive queue.

2004-10-25 19:47:32 Success The message status set to DLNG.

2004-10-25 19:47:32 Success Java proxy runtime (JPR) accepted the message

2004-10-25 19:47:34 Error JPR could not process the message. Reason: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl

2004-10-25 19:47:34 Error Delivery of the message to the application using connection JPR failed, due to: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl.

2004-10-25 19:47:34 Error The message status set to FAIL.

2004-10-25 19:47:34 Error Asynchronous error detected: Cannot locate proxy bean localejbs/InboundMATMAS04_PortTypeImpl. Trying to report it.

2004-10-25 19:47:34 Error Asynchronous error reported.

Message was edited by: Nicholas Simon

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

Hi Nicholas,

when you register, you should not use the class name for the bean definition. You have to use the JNDI name of the EJB.

Here is an example:

http://localhost:50000/ProxyServer/register?ns=http://myNS&interface=myInterface&bean=myBean&method=...

myBean = JNDI name of the Java Proxy Bean

eg: sap.com/myBean/myInterface_PortTypeBean

Regards

Stefan

Answers (2)

Answers (2)

0 Kudos

Hi Nicholas,

I am doing something very similar but I am getting a different error : com.sap.aii.af.ra.ms.api.DeliveryException: Exception in method onMessage.

Whe are you looking for the trace (the status by timestamp) that you mentioned in this post ? Where should look in Visual Administrator ?

Thanks,

Durga

Former Member
0 Kudos

Thanks Stefan!

You've saved me once again on this java proxy stuff!

Once I determined the JNDI naming, the proxy call worked.

Best Regards,

Nick

Message was edited by: Nicholas Simon

Message was edited by: Nicholas Simon

Former Member
0 Kudos

Hi

How do you determine the JNDI naming of the a EJB?

I have following entry in JNDI directory in the root

Object Name FlightQueryIn

Class Name javax.naming.Reference

Context Name

Object Value Reference Class Name:

Type: clientAppName

Content: sap.com/JavaProxyEAR

Type: interfaceType

Content: remote

Type: home

Content: com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundHome4

Type: ejb-link

Content: FlightSeatAvailabilityQueryIn_PortTypeBean

Type: jndi-name

Content: FlightQueryIn

Type: remote

Content: com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundRemote4

I tried to register the bean with JPR using:

http://ctsapxid01:50100/ProxyServer/register?ns=http://sap.com/xi/XI/Demo/Airline&interface=FlightSe...

I followed the following blog

http://wiki.sdn.sap.com/wiki/display/Java/JavaProxyChangesinPI7.1fromPI7.0

Thanks,

Chris