cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with invoke Method of Java Proxy

Former Member
0 Kudos

Hello,

I have a ABAP-Proxy -> XI -> Java-Proxy Scenario.

I get following error:

 Error invoking method pIBOTD001REQIB of proxy bean com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundLocal4LocalObjectImpl10: null

But i think everything is alright.

my xmls looks like that:

ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
	<description>EJB JAR description</description>
	<display-name>EJB JAR</display-name>
	<enterprise-beans>
		<session>
			<ejb-name>PIBOTD001REQIB_PortTypeBean</ejb-name>
			<home>com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundHome4</home>
			<remote>com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundRemote4</remote>
			<local-home>com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundLocalHome4</local-home>
			<local>com.sap.aii.proxy.xiruntime.core.AbstractProxyInboundLocal4</local>
			<ejb-class>net.getro.bOF.PIBOTD001REQIB_PortTypeBean</ejb-class>
			<session-type>Stateless</session-type>
			<transaction-type>Container</transaction-type>
		</session>
		<session>
			<ejb-name>ejb/BOPITD001OUT_PortTypeBean</ejb-name>
			<home>net.getro.pIPE.BOPITD001OUT_PortTypeHome</home>
			<remote>net.getro.pIPE.BOPITD001OUT_PortTypeRemote</remote>
			<local-home>net.getro.pIPE.BOPITD001OUT_PortTypeLocalHome</local-home>
			<local>net.getro.pIPE.BOPITD001OUT_PortTypeLocal</local>
			<ejb-class>net.getro.pIPE.BOPITD001OUT_PortTypeBean</ejb-class>
			<session-type>Stateless</session-type>
			<transaction-type>Container</transaction-type>
		</session>
	</enterprise-beans>
</ejb-jar>

application-j2ee-engine.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application-j2ee-engine SYSTEM "application-j2ee-engine.dtd">
<application-j2ee-engine>
	<reference 
		reference-type="weak">
		<reference-target 
			provider-name="sap.com" 
			target-type="library">com.sap.aii.proxy.xiruntime</reference-target>
	</reference>
	<reference 
		reference-type="weak">
		<reference-target 
			provider-name="sap.com" 
			target-type="library">com.sap.aii.messaging.runtime</reference-target>
	</reference>
	<reference 
		reference-type="weak">
		<reference-target 
			provider-name="sap.com" 
			target-type="library">com.sap.xi.util.misc</reference-target>
	</reference>
	<reference 
		reference-type="weak">
		<reference-target 
			provider-name="sap.com" 
			target-type="library">com.sap.guid</reference-target>
	</reference>
	<provider-name>sap.com</provider-name>
	<fail-over-enable 
		mode="disable"/>
</application-j2ee-engine>

Any Idea ?

Regards,

Robin

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

How did you register your inbound proxy?

Check with http://<host>:<port>/ProxyServer/listAll

The assigned bean should be the JNDI name of your bean.

Here an example:

 "http://sap.com/xi/XI/Demo/Airline#FlightSeatAvailabilityQuery_In = sap.com/JavaProxyExampleEAR/FlightSeatAvailabilityQueryIn_PortTypeBean:flightSeatAvailabilityQueryIn"

Regards

Stefan

Former Member
0 Kudos

Hi,

i have register my Interface.

http://****.net/BOF#PIBO_TD001_REQ_IB = sap.com/ProxySenderEAR/PIBOTD001REQIB_PortTypeBean:pIBOTD001REQIB

Regards,

Robin

stefan_grube
Active Contributor
0 Kudos

Check in the Visual Admin tool:

Server -> Services -> EJB Container

if the JNDI name is the same.

Check also in Server -> Services -> Deploy if your EJB is active.

And as last step check, if your communication channel points to the J2EE server, where your Java Proxy is deployed.

by the way: in the ejb-j2ee-engine.xml you can assign a more convenient JNDI name:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">
<ejb-j2ee-engine>
	<enterprise-beans>
		<enterprise-bean>
			<ejb-name>FlightSeatAvailabilityQueryOut_PortTypeBean</ejb-name>
			<jndi-name>myProxy/FlightQueryOut</jndi-name>
			<session-props/>
		</enterprise-bean>
		<enterprise-bean>
			<ejb-name>FlightSeatAvailabilityQueryIn_PortTypeBean</ejb-name>
			<jndi-name>myProxy/FlightQueryIn</jndi-name>
			<session-props/>
		</enterprise-bean>
	</enterprise-beans>
</ejb-j2ee-engine>

Regards

Stefan

Former Member
0 Kudos

Now its working.

I don't know why .. but thats not important

I think there was a mistake in the Invoke Methode.

Thanks.

Robin

Answers (0)