cancel
Showing results for 
Search instead for 
Did you mean: 

Monitoring Java Proxy

Former Member
0 Kudos

Hi Experts,

I am working on Client Java proxy. The Java application that invokes the proxy call is developed using NWDS.Company ID is passed using JSP page. Webservice of a BAPI is used on the receiver side to retrieve Company Details.These should be displayed as Response on the same JSP page. But when i execute;no Response is obtained , No messages are observed in SXMB_MONI for the Sender system.

I am unable to locate the error.

Kindly suggest ways to monitor the proxy.

Thanks in advance.

Regards,

Neha

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi neha,

go to sxmb_adm in that go to specific configuration

in that create new entry

select RUNTIME ,against that select LOGGING_SYNC and set default value as 1.

with this synchronous messages ll be persisted in XI and u can see the message flow in XI BOX,accordingly u can resolve the bugs.

Thanks & Regards,

Rama Krishna

Former Member
0 Kudos

Hi All,

when i run my JSP page the following log can be seen in the trace file:

#1.5#001A4DD89852005400000024000009B80004492CB3CE3F4D#1206356250943#System.err#sap.com/Javaproxy_new#System.err#Guest#0####1993c100f99111dc9962001a4dd89852#SAPEngine_Application_Thread[impl:3]_32##0#0#Error##Plain###com.sap.engine.services.jndi.persistent.exceptions.NamingException: Error getting the server-side naming service functionality during getInitialContext operation. at com.sap.engine.services.jndi.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:243)

at com.sap.engine.system.naming.provider.DefaultInitialContext._getDefaultInitCtxt(DefaultInitialContext.java:65)

at com.sap.engine.system.naming.provider.DefaultInitialContext.<init>(DefaultInitialContext.java:46)

at com.sap.engine.system.naming.provider.DefaultInitialContextFactory.getInitialContext(DefaultInitialContextFactory.java:41)

at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)

at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)

at javax.naming.InitialContext.init(InitialContext.java:219)

at javax.naming.InitialContext.<init>(InitialContext.java:195)

at $#@@#&*.InvokeJavaProxy.getRole(InvokeJavaProxy.java:38)

at jsp_Invoke1206356236802._jspService(jsp_Invoke1206356236802.java:67)

at com.sap.engine.services.servlets_jsp.server.jsp.JspBase.service(JspBase.java:112)

at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:544)

at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:186)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

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)

Caused by: com.sap.engine.services.jndi.persistent.exceptions.NoPermissionException: Exception during getInitialContext operation. Wrong security principle/credentials. [Root exception is com.sap.engine.services.security.exceptions.BaseLoginException: Cannot authenticate the user.]

at com.sap.engine.services.jndi.implclient.LoginHelper.serverSideLogin(LoginHelper.java:70)

at com.sap.engine.services.jndi.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:135)

... 27 more

Caused by: com.sap.engine.services.security.exceptions.BaseLoginException: Cannot authenticate the user.

at com.sap.engine.services.security.login.ModulesProcessAction.run(ModulesProcessAction.java:180)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.services.security.login.FastLoginContext.login(FastLoginContext.java:172)

at com.sap.engine.services.jndi.implclient.LoginHelper.serverSideLogin(LoginHelper.java:60)

... 28 more

Caused by: com.sap.engine.services.security.exceptions.BaseLoginException: Authentication did not succeed.

at com.sap.engine.services.security.login.ModulesProcessAction.run(ModulesProcessAction.java:177)

... 31 more

All suggestions are welcome.

Thanks.

Edited by: neha nagrani on Mar 24, 2008 1:04 PM

stefan_grube
Active Contributor
0 Kudos

I think the EJB reference in your web.xml is missing.

See this thread:

/message/605488#605488 [original link is broken]

Regards

Stefan

Former Member
0 Kudos

hi Stefan,

thanx once again for your inputs.I hav gone through the thread and incorporated all changes suggested.

now i am geeting the following error in the response field of mu JSP page,

"Error getting the server-side naming service functionality during getInitialContext operation."

Could you please suggest how to eliminate this particular error ??

Also , i would like to know if there is a way of finding out if my proxy class is able to connect to XI.

Thanx,

Neha

Edited by: neha nagrani on Mar 27, 2008 10:59 AM

Former Member
0 Kudos

Hey Stefan,

The scenario worked..

the link you suggested in the previous reply helped a lott.

thanks for the help .

Just one last thing;

Could please elaborate on why exactly do we use PortableRemoteObject.narrow() method and queryOutRemote.$messageSpecifier();

Thanks in advance.

Edited by: neha nagrani on Apr 2, 2008 9:07 AM

stefan_grube
Active Contributor
0 Kudos

queryOutRemote.$messageSpecifier();

Is needed to refresh the local variables of the $messageSpecifier class. Otherwise it could lead to errors on second call.

PortableRemoteObject.narrow()

ask SUN

Regards

Stefan

Former Member
0 Kudos

Hi,

I ahd to re do my scenario because of some reasons ;

Now when i run my JSP page I dont receive response.

the following message appears in the trace file :

#1.5 #001279D06B4E0067000001C600008AEC00044A06A51F1BE4#1207292307525#XIRUN.com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler#sap.com/com.s

ap.xi.services#XIRUN.com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler#J2EE_GUEST#0#SAP J2EE Engine JTA Transaction :

[0261cffffffd60047ffffffa0]#n/a##86ce4750021411ddac69001279d06b4e#SAPEngine_Application_Thread[impl:3]_30##0#0#Error#1#/Applications/ExchangeInfrastructure/I

ntegrationServer#Plain###Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_MM_JAVAPROXY_1_:

com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns1:CompanyGetdetail/Companyid.

Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd

Thrown:

MESSAGE ID: com.sap.aii.ibrun.server.mapping.rb_MappingRuntimeException.EXCEPTION_DURING_EXECUTE

com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Runtime exception occurred during execution of application mapping program

com/sap/xi/tf/_MM_JAVAPROXY_1_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target

element /ns1:CompanyGetdetail/Companyid. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd

at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:73)

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 $Proxy190.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:277)

at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:219)

at com.sap.engine.services.rfcengine.RFCJCOServer$J2EEApplicationRunnable.run(RFCJCOServer.java:260)

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)

Thanks in advance.

Edited by: neha nagrani on Apr 4, 2008 8:46 AM

stefan_grube
Active Contributor
0 Kudos

This is an error in mapping.

Test your mapping with the source xml of the response. You can pick it up from SXMB_MONI.

You should open a new thread, as this is not related to Java Proxy.

Stefan

Former Member
0 Kudos

H iStefan,

No messages are displayed in moni for my Business Sysytem.Hence cannot pick up payload.

I have implemented the code just as explained in the previous replies

Have I missed out on something while generating the proxy code in NWDS.

Please help.

stefan_grube
Active Contributor
0 Kudos

That is not possible. As this is a mapping error (clearly stated in the error message) there must be an entry in SXMB_MONI.

Maybe you should not restrict the search to business system, try interface name instead.

Stefan

Former Member
0 Kudos

Hi Stefan,

I have checked using the sender interface as well.

There is no entry in SXMB_MONI corresponding to to my sender interface.

Please suggest some solution.

Thanks,

Neha

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi neha

CO TXT Outbounding not Found this error occurs due to

No receiver agreement found

Kindly check your receiver agreement in integration directory or if you have given any condition on receiver determination

modify that your problem will be solved

thanks

Sandeep

PS if helpful reward points

stefan_grube
Active Contributor
0 Kudos

Could you check your JSP code for error handling?

You could write the errors to String variables and write them to a special error page.

Here an example:

try{
		
		Context ctx = new InitialContext();
		FlightBookHome queryOutHome = (FlightBookHome) 
		ctx.lookup("java:comp/env/ejb/FlightBookBean");
		FlightBook queryOutRemote = queryOutHome.create();
		
		String[] result = queryOutRemote.checkFlight(airlineId,flightNumber,flightDate);
	} catch (RemoteException e) {
		errorType = "Remote exception occurred";
		errorText = e.getMessage();
		error = true;
	} catch (NamingException e) {
		errorType = "Naming exception occurred";
		errorText = e.getMessage();
		error = true;
	} catch (Exception e) {
		errorType = e.getClass().toString()+" exception occurred";
		errorText = e.toString() + e.getMessage();
		error = true;
 
	}

Mainly the error happens it this point, where the EJB is called from the JSP page.

Regards

Stefan

Former Member
0 Kudos

Hi Stefan,

Thanks a lot for your inputs.

I am a novice in java. i have developed the java class and JSP by refering to the following link

[https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f272165e-0401-0010-b4a1-e7eb8903501d]

I will apprecaite it If you could suggest anything.

stefan_grube
Active Contributor
0 Kudos

I am sorry to have to say that there are errors in this document and it will not work like described.

It is not possible to use Java proxies in such a scenario without knowledge of JSP and EJB.

But Java proxy are not made for connecting user interface with PI. Choose Webservice for this case.

Regards

Stefan

Former Member
0 Kudos

Hi,

When i run a self test of the JPR; the following error is displayed.

Starting JPR selftest via MS with timeout 60000 msec ...

Synchronous request: SystemFaultException: Error sending MS message. Exception: XIServer:CO_TXT_OUTBINDING_NOT_FOUND*:

Synchronous request for application fault: SystemFaultException: Error sending MS message. Exception: XIServer:CO_TXT_OUTBINDING_NOT_FOUND:

Synchronous request for system error: SystemFaultException: Error sending MS message. Exception: XIServer:CO_TXT_OUTBINDING_NOT_FOUND:

Done

The problem is still not resolved.

Should i avoid using SOAP adapter on the receiver side and use RFC instead.??

Also , i would like to know if there is a way to trace the working of my scenario. how would i get to know if my data is reaching XI?

NO messages are displayed when i perform monitoring for my sender system.

Suggestions are welcome.

Thanx..

Edited by: neha nagrani on Feb 28, 2008 11:54 AM

stefan_grube
Active Contributor
0 Kudos

Your scenario is not working, as you do not see anything in the message monitor.

As I have already written, you need an error handling in the JSP code, otherwise you will never be able to fix the scenario.

Regards

Stefan

Former Member
0 Kudos

Hi Neha,

try exception handling in jsp page...

Former Member
0 Kudos

Hey Stefan,

Thank you very very much for your contributions.

I was wondering if you could help me include the exceptions you had mentioned in the previous reply in

thanx..

stefan_grube
Active Contributor
0 Kudos

You can monitor your Java proxy messages with the message monitor from the runtime workbench (RWB).

You should also check the error handling of the java proxy call. Catch the error message text and display this on the JSP text.

Regards

Stefan

aashish_sinha
Active Contributor
0 Kudos

HI,

If you have troubles with your Java Proxies, you should first check the status of the Java

Proxy Runtime (JPR) inside the adapter monitor.

Start the Runtime Workbench from the SAP Exchange Infrastructure start page, choose

Component Monitoring and select the Adapter Engine (where the Java Proxies are

deployed) as the component.

On the Status tab page you choose Adapter Monitoring to call the adapter monitor.

In the adapter Monitor expand the namespace http://sap.com/xi/XI/System and choose

JPR to open the Monitor for the Java Proxy Runtime.

Regards

Aashish Sinha

PS : reward points if helpful

Former Member
0 Kudos

Hey ,

I have deployed it on the XI server.

also, I am not receiving any exception.

JPR is working fine.

Please suggest a solution to this.

.

Edited by: neha nagrani on Feb 21, 2008 11:43 AM

Former Member
0 Kudos

Hi,

I just wanted to know what details are displayed under the JPR monitor,

If my scenario's working fine; what details should be displayed under the tabs SLD access,Messaging System,Logical locking,Properties,Registry and Cache.

Right now, i am getting 0 entries in the \jpf.properties file under the Properties tab.

also i am getting 0 entries in the \jpf.registry file under the Registry tab.

Also , i had performed a self test on JPR;

the outcome is as follows:

Starting JPR selftest via MS with timeout 60000 msec ...

Synchronous request: SystemFaultException: Error sending MS message. Exception: XIServer:CO_TXT_OUTBINDING_NOT_FOUND:

Synchronous request for application fault: SystemFaultException: Error sending MS message. Exception: XIServer:CO_TXT_OUTBINDING_NOT_FOUND:

Synchronous request for system error: SystemFaultException: Error sending MS message. Exception: XIServer:CO_TXT_OUTBINDING_NOT_FOUND:

Done

Also , when i open Messaging System url; the following message is displayed :

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

<SOAP:Header />

- <SOAP:Body>

- <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<faultcode>SOAP:Client</faultcode>

<faultstring>Empty HTTP request received</faultstring>

<faultactor>http://sap.com/xi/XI/Message/30</faultactor>

- <detail>

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

<SAP:Category>XIProtocol</SAP:Category>

<SAP:Code area="MESSAGE">EMPTY_HTTP_REQUEST_RECEIVED</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText />

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack>Empty HTTP query received; message processing not possible</SAP:Stack>

</SAP:Error>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

Does this info in any way help to locate the error??

Thanx and Regards,

Neha.

Edited by: neha nagrani on Feb 22, 2008 11:36 AM

Edited by: neha nagrani on Feb 22, 2008 1:10 PM

Former Member
0 Kudos

Hi.

Where did you deploy your Java Proxies? In XI server or de-central adapter engine? If it's de-central, can you see it in the Runtime Workbench of XI server, under Component Monitoring? If you see it, you should be able to monitor centrally in RWB.

Are you sure you don't get any exception when calling the proxy from the Java Application?

Regards,

Gari.