Calling Java EE Applications from Portal Applications
Use
Portal applications can access Java EE applications, such as EJBs and servlets, as follows:
-
Specify the reference.
The reference is defined in portalapp.xml either in PrivateSharingReference or PublicSharingReference using the Java EE application prefix SAPJ2EE:: .
<property name="PrivateSharingReference" value="SAPJ2EE::sap.com/Hello"/> -
Access the application.
The application is accessed via JNDI. The following is an example of a portal component accessing an EJB.
public void doContent( IPortalComponentRequest request, IPortalComponentResponse response) { String key = "Hello/Stateless/HelloStatelessBean"; try { Context context = new InitialContext(); Object obj = context.lookup(key); HelloHome home = (HelloHome) P4ObjectBroker.init().narrow(obj, HelloHome.class); Hello hello = home.create(); response.write("Bean message: " + hello.getMessage());
Referencing Elements
You can reference an application, connector, library, interface or service by specifying the Java EE object in the portalapp.xml , either in the SharingReference or PrivateSharingReference property. Whether you should use SharingReference or PrivateSharingReference depends on your purpose:
-
If the referenced application, library or service has to be used in the API of the portal application, use the SharingReference .
-
If the reference is for the core of the portal application, use PrivateSharingReference .
The format of the Java EE object in the SharingReference or PrivateSharingReference property is as follows:
-
Application: SAPJ2EE::<provider name/application name>
-
Connector: SAPJ2EE::<provider name/connector name>
-
Service: SAPJ2EE::service:<service name>
-
Library: SAPJ2EE::library:<library name>
-
Interface: SAPJ2EE::interface::<interface name>
For more information on sharing references, see Application Configuration .
Example
This is an example of a portal application referencing the Java EE application sap.com/Hello , the AS Java service P4 and the library TestLibrary . The references are specified in PrivateSharingReference . This means that the references are established between the core of the portal application and the referenced application, service and library.
<application>
<application-config>
<property name="SharingReference" value=""/>
<property name="PrivateSharingReference" value="SAPJ2EE::sap.com/Hello,
SAPJ2EE::service:p4,SAPJ2EE::library:TestLibrary"/>
</application-config>
</application>