37 Integrating Enterprise JavaBeans with Composite Applications

This chapter describes how to integrate Enterprise JavaBeans with SOA composite applications through use of Java interfaces or service data object (SDO) parameters. It describes how to design an SDO-based Enterprise JavaBeans application, create an Enterprise JavaBeans service in Oracle JDeveloper, design an Enterprise JavaBeans client to invoke Oracle SOA Suite, specify Enterprise JavaBeans roles, and configure JNDI access.

This chapter includes the following sections:

Note:

Support is provided for Enterprise JavaBeans 3.0 and Enterprise JavaBeans 2.0 references (that is, when calling Enterprise JavaBeans 2.0 beans). Support is not provided for Enterprise JavaBeans 2.0 services (that is, when being called with Enterprise JavaBeans 2.0 beans).

37.1 Introduction to Enterprise JavaBeans Binding Integration with SOA Composite Applications

There are two options for integrating Enterprise JavaBeans with SOA composite applications:

  • Through use of Java interfaces (does not use a WSDL file to define the interface)

  • Through use of SDO-based EJBs (uses a WSDL file to define the interface)

This chapter describes both options.

You can also use the spring service component to integrate Java interfaces with SOA composite applications. For information about using the spring service component, see Integrating the Spring Framework in SOA Composite Applications.

37.1.1 Integration Through Java Interfaces

You can integrate Enterprise JavaBeans with Oracle SOA Suite through Java interfaces, therefore eliminating the need for WSDL file definitions. This type of integration provides support with the following objects:

  • Native Java objects

  • Java Architecture for XML Binding (JAXB)

Java interfaces differ from SDO interfaces, which are defined in a WSDL file because of the XML-centric nature of service components such as Oracle BPEL Process Manager, Oracle Mediator, and others. No SDO parameters are required when using Java interfaces.

You use the Create EJB Service dialog in Oracle JDeveloper to define this integration, as described in How to Integrate Java Interface-based Enterprise JavaBeans with SOA Composite Applications. This option does not require the use of a WSDL file. Once complete, the interaction is defined in the composite.xml file through the interface.java entry, as shown in the example that follows. The Java interface classes must be compatible with the WSDL file used by the connecting components (that is, if a message is sent to a BPEL component). BPEL services are defined with a WSDL, and the Java interface classes must be compatible with that WSDL.

<service name="PortfolioService">
   <interface.java interface="com.bigbank.services.MyService" />
   binding.ejb uri="MyJNDI" ejb-version="EJB3"/>

The Java class must be in the project's loader to be available to the user interface. The class must be in SCA-INF to be deployed (not all JAR files in the project class path are deployed). This typically means that the class must be in the SCA-INF/classes directory or in a JAR in the SCA-INF/lib directory. However, it can also be an interface from the system class path.

For information about JAXB, see Solutions Guide for Oracle TopLink and Integrating the Spring Framework in SOA Composite Applications.

37.1.2 Integration Through SDO-Based EJBs

SDOs enable you to modify business data regardless of how it is physically accessed. Knowledge is not required about how to access a particular back-end data source to use SDOs in a SOA composite application. Consequently, you can use static or dynamic programming styles and obtain connected and disconnected access.

Enterprise JavaBeans are server-side domain objects that fit into a standard component-based architecture for building enterprise applications with Java. These objects become distributed, transactional, and secure components.

Many Oracle SOA Suite interfaces are described by WSDL files. Enterprise JavaBeans interfaces are described by Java interfaces. Invocations between the two are made possible in Oracle SOA Suite by an Enterprise JavaBeans Java interface that corresponds to an Oracle SOA Suite WSDL interface.

Through this interface, Oracle SOA Suite provides support for the following:

  • Invoking Enterprise JavaBeans with SDO parameters through an Enterprise JavaBeans reference binding component. In this scenario, a SOA composite application passes SDO parameters to an external Enterprise JavaBeans application.

  • Invoking an Enterprise JavaBeans service binding component through Enterprise JavaBeans with SDO parameters. In this scenario, an Enterprise JavaBeans application passes SDO parameters into a SOA composite application.

Figure 37-1 provides an overview.

Figure 37-1 SDO and Enterprise JavaBeans Binding Integration

Description of Figure 37-1 follows
Description of "Figure 37-1 SDO and Enterprise JavaBeans Binding Integration"

You use the Create EJB Service dialog in Oracle JDeveloper to define this integration, as described in How to Integrate SDO-based Enterprise JavaBeans with SOA Composite Applications. This option requires the use of a WSDL file. Once complete, the WSDL interaction is defined in the composite.xml file through the interface.wsdl entry, as shown in the following example:

<service name="PortfolioService">
        <interface.wsdl
 interface="http://bigbank.com/#wsdl.interface(PortfolioService)" />
    <binding.ejb javaInterface="java.class.ejb.com" serviceId="PortfolioService"
                 jarLocation="soaejb.jar"/>

37.2 Designing an SDO-Based Enterprise JavaBeans Application

This section provides a high-level overview of the steps for designing an Enterprise JavaBeans application. For more information, see the following documentation:

37.2.1 How to Create SDO Objects Using the SDO Compiler

Select one of the following options for creating SDO objects:

  • EclipseLink is an open source, object-relational mapping package for Java developers. EclipseLink provides a framework for storing Java objects in a relational database or converting Java objects to XML documents.

    Use EclipseLink to create SDO objects. For instructions on installing, configuring, and using EclipseLink to create SDO objects, visit the following URL:

    http://wiki.eclipse.org/EclipseLink/Installing_and_Configuring_EclipseLink
    
  • Oracle JDeveloper enables you to create an SDO service interface for JPA entities. While this feature is more tailored for use with the Oracle Application Development Framework (ADF) service binding in a SOA composite application, you can also use this feature with the Enterprise JavaBeans service binding in SOA composite applications. The SDO service interface feature generates the necessary WSDL and XSD files. If you use this feature, you must perform the following tasks to work with the Enterprise JavaBeans service binding:

    • Browse for and select this WSDL file in the WSDL Chooser dialog, which is accessible from the WSDL URL field of the Create EJB Service dialog (described in Creating an Enterprise JavaBeans Service in ).

    • Add the BC4J Service Runtime library to the SOA project. To add this library, double-click the project and select Libraries and Classpath to add the library in the Project Properties dialog. You are now ready to design the business logic.

    For more information, see the SDO for Enterprise JavaBeans/JPA topic in the Oracle JDeveloper online help (this includes instructions on how create to an SDO service interface).

37.2.2 How to Create a Session Bean and Import the SDO Objects

To create a session bean and import the SDO objects:

  1. Create a simple session bean with the Create Session Bean wizard. For details on using this wizard, see the Creating a Session Bean topic in the Oracle JDeveloper online help.
  2. Import the SDO objects into your project through the Project Properties dialog.
  3. Add logic and necessary import and library files. In particular, you must import the Commonj.sdo.jar file. JAR files can be added in the Libraries and Classpath dialog. This dialog is accessible by double-clicking the project and selecting Libraries and Classpath in the Project Properties dialog. You are now ready to design the logic.
  4. Expose the method to the remote interface.

37.2.3 How to Create a Profile and an EAR File

To create a profile and an EAR file:

  1. Create an Enterprise JavaBeans JAR profile in the Project Properties dialog.
  2. Create an application level EAR file in the Application Properties dialog.

37.2.4 How to Define the SDO Types with an Enterprise JavaBeans Bean

An Enterprise JavaBeans bean must define the SDO types. The example that follows provides details.

Caution:

Where to call define can be nontrivial. You must force the types to be defined before remote method invocation (RMI) marshalling must occur and in the right helper context. The EclipseLink SDO implementation indexes the helper instance with the application name or class loader.

When you invoke the Enterprise JavaBeans method, an application name is available to the EclipseLink SDO runtime. The EclipseLink SDO looks up the context using the application name as the key. Ensure that the types are defined when the application name is visible. When an Enterprise JavaBeans static block is initialized, the application name is not created. Therefore, putting the define in the static block does not work if you are using the default application name-based context. One way to get the application name initialized is to allocate more than two instance beans using the weblogic-ejb-jar.xml file.

InputStreamReader reader = new InputStreamReader(url.openStream());
StreamSource source = new StreamSource(reader);
List<SDOType> list = ((SDOXSDHelper) XSDHelper.INSTANCE).define(source, null);

The weblogic-ejb-jar.xml file is the descriptor file that must be added in the deployment jar. The weblogic-ejb-jar.xml file is automatically created when you create a session bean. This file must be modified by adding the entries shown in the following example:

<?xml version = '1.0' encoding = 'windows-1252'?>
<weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar
 http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd"
                  xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar">

    <weblogic-enterprise-bean>
    <ejb-name>HelloEJB</ejb-name>
    <stateless-session-descriptor>
      <pool>
        <initial-beans-in-free-pool>2</initial-beans-in-free-pool>
      </pool>
    </stateless-session-descriptor>
  </weblogic-enterprise-bean>

    </weblogic-ejb-jar>

Figure 37-2 provides a code example of a session bean with SDO logic defined.

Figure 37-2 Session Bean with Defined SDO Logic

Description of Figure 37-2 follows
Description of "Figure 37-2 Session Bean with Defined SDO Logic"

37.2.5 How to Use Web Service Annotations

To generate the WSDL file, the Enterprise JavaBeans interface must use the following web service annotations. Use of these annotations is described in JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.0. Visit the following URL for details:

http://www.jcp.org/en/jsr/detail?id=224

In addition, only a document/literal WSDL is currently supported by the Enterprise JavaBeans binding layer.

Table 37-1 describes the annotations to use.


Table 37-1 Annotations

Name Description

@javax.jws.WebResult;

@javax.jws.WebParam;

Customizes the mapping of an individual parameter to a web service message part and XML element. Both annotations are used to map SDO parameters to the correct XML element from the normalized message payload.

@javax.jws.Oneway;

Denotes a method as a web service one-way operation that has only an input message and no output message. The Enterprise JavaBeans binding component does not expect any reply in this case.

@javax.xml.ws.RequestWrapper;

@javax.xml.ws.ResponseWrapper;

Tells the Enterprise JavaBeans binding components whether the deserialized object must be unwrapped or whether a wrapper must be created before serialization.

An Enterprise JavaBeans interface can be generated from an existing WSDL or obtained by some other means. If the WSDL does not exist, it can be generated.

@javax.xml.ws.WebFault;

Maps WSDL faults to Java exceptions. This annotation captures the fault element name used when marshalling the JAXB type generated from the global element referenced by the WSDL fault message.

@oracle.webservices.PortableWebService

Specifies the targetNamespace and serviceName used for the WSDL. For example:

@PortableWebService(
targetNamespace = "http://hello.demo.oracle/",
serviceName = "HelloService")

The serviceName is used as the WSDL file name. If it is not specified in the annotations, the service endpoint interface (SEI) class name is used instead.

Add appropriate method parameter annotations

Controls how message elements and types are mapped to the WSDL. For example, if your interface is in doc/lit/bare style, add the following annotations to the methods.

@WebMethod
@SOAPBinding(parameterStyle =
SOAPBinding.ParameterStyle.BARE)

@SDODatabinding

Adds to the interface class to use the existing schema instead of a generated one. For example:

@SDODatabinding(schemaLocation = "etc/HelloService.xsd")

The following example provides an example of an Enterprise JavaBeans interface with annotations.

@Remote
@PortableWebService(targetNamespace = "http://www.example.org/customer-example",
 serviceName = "CustomerSessionEJBService")
@SDODatabinding(schemaLocation = "customer.xsd")
public interface CustomerSessionEJB {
     @WebMethod(operationName="createCustomer")
   @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
   @WebResult(targetNamespace = "http://www.example.org/customer-example",
 partName = "parameters", name = "customer")
   CustomerType createCustomer();
     @WebMethod(operationName="addPhoneNumber")
   @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
   @WebResult(targetNamespace = "http://www.example.org/customer-example",
 partName = "parameters", name = "customer")
   CustomerType addPhoneNumber(@WebParam(targetNamespace =
 "http://www.example.org/customer-example", partName = "parameters", name =
 "phone-number")PhoneNumber phNumber);
} 

37.2.6 How to Deploy the Enterprise JavaBeans EAR File

To deploy the EAR file from Oracle JDeveloper:

  1. Select the Application context menu to the right of the application name.
  2. Select Deploy and deploy the EAR file to a previously created application server connection.

37.3 Creating an Enterprise JavaBeans Service in Oracle JDeveloper

This section describes how to create an Enterprise JavaBeans reference binding component or Enterprise JavaBeans service binding component in Oracle JDeveloper. The Enterprise JavaBeans service enables the Enterprise JavaBeans application to communicate with Oracle SOA Suite and Oracle SOA Suite to communicate with remote Enterprise JavaBeans.

This section describes how to create the following types of integrations:

  • Integration through a Java interface

  • Integration through an SDO interface

37.3.1 How to Integrate Java Interface-based Enterprise JavaBeans with SOA Composite Applications

You can create the following types of Java interface-based Enterprise JavaBeans integrations with SOA composite applications:

  • Invoke Java interface-based Enterprise JavaBeans from a SOA composite application

  • Invoke a SOA composite application from Enterprise JavaBeans using a Java interface

To integrate Java interface-based Enterprise JavaBeans with SOA composite applications:

  1. Go to the SOA composite application in the SOA Composite Editor.
  2. In the Technology section of the Components window, drag the EJB icon into the appropriate swimlane:
    • To invoke an Enterprise JavaBeans reference binding component from a SOA composite application, drag the icon to the External References swimlane.

    • To invoke a SOA composite application from an Enterprise JavaBeans service binding component, drag the icon to the Exposed Services swimlane.

  3. In the Interface section, click Java (if it is not already selected).
  4. The Create EJB Service dialog displays the fields shown in Figure 37-3.

    Figure 37-3 Create EJB Service for Java Interface

    Description of Figure 37-3 follows
    Description of "Figure 37-3 Create EJB Service for Java Interface"
  5. Enter the details shown in Table 37-2. The fields are the same regardless of the swimlane in which you dragged the EJB icon.

    Table 37-2 Create EJB Service Dialog

    Field Value

    Name

    Accept the default value or enter a different name.

    Type

    Displays the following value:

    • Displays Reference if you dragged this icon into the External References swimlane.

    • Displays Service if you dragged this icon into the Exposed Services swimlane.

    Version

    Select the version of EJB to support: EJB2 or EJB3 (the default selection).

    Note: This field only displays if you dragged the EJB Service icon into the External References swimlane.

    Interface

    Select Java.

    JNDI Name

    Enter the JNDI name of your Enterprise JavaBeans.

    Jar File

    Click the Search icon to select the EJB JAR file created in Designing an SDO-Based Enterprise JavaBeans Application. The JAR Chooser dialog searches for and displays JAR files starting in the SCA-INF/lib subdirectory of the current project directory. The JAR file includes the interface class and any supporting classes.

    Note: If you select a JAR file outside of the current project, Oracle JDeveloper creates a copy of the JAR file in the SCA-INF/lib directory of the current project. When prompted, click OK to accept.

    Java Interface

    Select one of the following options.

    • Enter the Java interface manually.

    • Click the Browse for Class File icon to invoke the Class Browser dialog for selecting the Java interface.

      The class must be available in the runtime classpath. There are several ways to make the class available in the runtime classpath. One method is to put the class in the SCA-INF/classes directory or in a JAR file in the SCA-INF/lib directory at design time to ensure that it gets deployed. However, it can also be an interface from the system class path.

      There are several ways to make the class available at runtime, but one way is to put the class or JAR into SCA-INF at design time so that it gets deployed.

      Note: If you use the Jar File field, you do not need to add a new JAR file to the project by selecting Project Properties > Libraries and Classpath > Add JAR/Directory from the Application main menu.

    • Click the Generate Java Interface from a WSDL icon to select the WSDL file from which to generate the Java interface. This option is the same as described in How to Integrate SDO-based Enterprise JavaBeans with SOA Composite Applications.


  6. Click OK.

37.3.2 How to Integrate SDO-based Enterprise JavaBeans with SOA Composite Applications

You can create the following types of SDO-based Enterprise JavaBeans integrations with SOA composite applications:

  • Invoke SDO-based Enterprise JavaBeans from a SOA composite application

  • Invoke a SOA composite application from Enterprise JavaBeans using SDO parameters

To integrate SDO-based Enterprise JavaBeans with SOA composite applications:

  1. Go to the SOA composite application in the SOA Composite Editor.

  2. In the Technology section of the Components window, drag the EJB icon into the appropriate swimlane, as described in Table 37-3.


    Table 37-3 Swimlane for EJB Service

    To Invoke... Drag the EJB Service to this Swimlane...

    SDO-based Enterprise JavaBeans from a SOA composite application

    External References

    A SOA composite application from Enterprise JavaBeans using SDO parameters

    Exposed Services


    The Create EJB Service dialog is displayed.

  3. In the Interface section, click WSDL.

  4. See the step in Table 37-4 based on the swimlane in which you dragged the EJB service.


    Table 37-4 Swimlane Location

    If You Dragged the EJB Service to this Swimlane... Then Go To...

    External References

    44.a

    Exposed Services

    44.b


    1. View the Create EJB Service dialog that displays in the External References swimlane, as shown in Figure 37-4.

      Figure 37-4 Create EJB Service in External References Swimlane

      Description of Figure 37-4 follows
      Description of "Figure 37-4 Create EJB Service in External References Swimlane"
    2. View the Create EJB Service dialog that displays in the Exposed Services swimlane, as shown in Figure 37-5.

      Figure 37-5 Create EJB Service in Exposed Services Swimlane

      Description of Figure 37-5 follows
      Description of "Figure 37-5 Create EJB Service in Exposed Services Swimlane"
  5. Enter values appropriate to your environment. The fields that display differ based on the swimlane in which you dragged the EJB Service icon. Table 37-5 provides details.


    Table 37-5 Create EJB Service Dialog

    Field Value

    Name

    Accept the default value or enter a different name.

    Type

    Displays the following value:

    • Displays Reference if you dragged this icon into the External References swimlane.

    • Displays Service if you dragged this icon into the Exposed Services swimlane.

    Version

    Note: This field only displays if you dragged the EJB Service icon into the External References swimlane.

    Select the version of EJB to support: EJB2 or EJB3 (the default selection). If you select WSDL from the Interface list, only EJB3 is available for selection.

    Interface

    Select WSDL.

    JNDI Name

    Note: This field only displays if you dragged the EJB Service icon into the External References swimlane.

    Enter the JNDI name of your Enterprise JavaBeans.

    Jar File

    Click the Search icon to select the EJB JAR file created in Designing an SDO-Based Enterprise JavaBeans Application. The JAR Chooser dialog searches for and displays JAR files starting in the SCA-INF/lib subdirectory of the current project directory. The JAR file includes the interface class and any supporting classes.

    Note: If you select a JAR file outside of the current project, Oracle JDeveloper creates a copy of the JAR file in the SCA-INF/lib directory of the current project. When prompted, click OK to accept.

    Java Interface

    Click the Browse icon to invoke the Class Browser dialog for selecting the fully qualified Java class name of the previously created Enterprise JavaBeans interface. This class must exist in the selected JAR file. If a JAR file is not specified, it is assumed that the class is in the /SCA-INF/classes subdirectory of the current project directory.

    Note: If you use the Jar File field, you do not need to add a new JAR file to the project by selecting Project Properties > Libraries and Classpath > Add JAR/Directory from the Application main menu.

    WSDL URL

    Note: Ensure that you have created the annotations for the Enterprise JavaBeans interface before generating the WSDL file, as described in How to Use Web Service Annotations.

    Click the second icon to the right to generate a WSDL file that represents the Enterprise JavaBeans interface.

    If you created SDO objects through Oracle JDeveloper, as described in How to Create SDO Objects Using the SDO Compiler, ensure that you select the WSDL file that was automatically generated with this option.

    Port Type

    Select the port type.

    Callback Port Type

    Select the callback port type (for asynchronous services).


  6. Click OK.

37.4 Designing an Enterprise JavaBeans Client to Invoke Oracle SOA Suite

This section describes how to design an Enterprise JavaBeans client to invoke Oracle SOA Suite.

37.4.1 How to Create a Java Interface-Based Client to Invoke Oracle SOA Suite

Use the standard Enterprise JavaBeans client. The following example provides details:

InitialContext ic = new InitialContext(jndiProps);
SimpleEjb svc = (SimpleEjb) ic.lookup("PassthroughRef");
String result = svc.addBreadCrumb("RemoteTest");

37.4.2 How to Invoke an SDO-Enterprise JavaBeans Service

To invoke an SDO - Enterprise JavaBeans service from Enterprise JavaBeans, you must use the client library. Follow these guidelines to design an Enterprise JavaBeans client.

  • Look up the SOAServiceInvokerBean from the JNDI tree.

  • Get an instance of SOAServiceFactory and ask the factory to return a proxy for the Enterprise JavaBeans service interface.

  • You can include a client side Enterprise JavaBeans invocation library ($FMW_HOME/soa/soa/modules/oracle.soa.fabric_11.1.1/fabric-client.jar or the fabric-runtime.jar file located in the Oracle JDeveloper home directory or Oracle WebLogic Server) in the Enterprise JavaBeans client application. For example, the fabric-runtime.jar file can be located in the JDev_Home\jdeveloper\soa\modules\oracle.soa.fabric_11.1.1 directory.

    If the Enterprise JavaBeans application is running in a different JVM than Oracle SOA Suite, the Enterprise JavaBeans application must reference the ejbClient library. The code that follows provides an example.

    You must specify the complete path of the service ID with the MyTestEJBService parameter of serviceFactory.createService (for example, "default/MyTestProject!1.0/MyTestEJBService"). If the complete path is not specified, you receive an EJBException- Could not locate the service error.

Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY,
 "weblogic.jndi.WLInitialContextFactory");
        props.put(Context.PROVIDER_URL, "t3://" + HOSTNAME + ":" + PORT);
        InitialContext ctx = new InitialContext(props);
        SOAServiceInvokerBean invoker =
                (SOAServiceInvokerBean)
 ctx.lookup("SOAServiceInvokerBean#oracle.integration.platform.blocks.sdox.ejb.api.
SOAServiceInvokerBean");

        //--  Create a SOAServiceFactory instance
        SOAServiceFactory serviceFactory = SOAServiceFactory.newInstance(invoker);

        //--  Get a dynamice proxy that is essentially a remote reference
        HelloInterface ejbRemote =
 serviceFactory.createService("complete_path/MyTestEJBService", HelloInterface.class);

        //--  Invoke methods
        Item item = (Item) DataFactory.INSTANCE.create(Item.class);
        item.setNumber(new BigInteger("32"));
        SayHello sayHello = (SayHello)
 DataFactory.INSTANCE.create(SayHello.class);
        sayHello.setItem(item);

        SayHelloResponse response = ejbRemote.sayHello(sayHello);
        Item reply = response.getResult();

37.5 Specifying Enterprise JavaBeans Roles

To specify role names required to invoke SOA composite applications from any Java EE application, you add the roles names in the Enterprise JavaBeans service configuration. The Enterprise JavaBeans service checks to see if the caller principal has the security role. The following example provides details:

<service name="EJBService" ui:wsdlLocation="BPELEJBProcess.wsdl">
    <interface.wsdl
interface="http://xmlns.oracle.com/EJBApplication/EJBProject/BPELEJBProcess#wsdl.int
erface(BPELProcess1)"callbackInterface="http://xmlns.oracle.com/EJBApplication/
EJBProject/BPELEJBProcess#
wsdl.interface(BPELEJBProcessCallback)"/>
<property name="rolesAllowed">Superuser, Admin</property>
    <binding.ejb javaInterface="java.class.ejb.com" serviceId="EJBService"
                 jarLocation="soaejb.jar"/>
</service>

37.6 Configuring Enterprise JavaBeans Binding Support in the Credential Store Framework

This section describes how to configure Enterprise JavaBeans binding support in the credential store framework.

37.6.1 How to Configure Enterprise JavaBeans Binding Support in the Credential Store Framework

All Enterprise JavaBeans bindings support using the Credential Store Framework (CSF) to store JNDI user access credentials, and not just service data object (SDO) Enterprise JavaBeans bindings.

You can edit the following Enterprise JavaBeans binding JNDI properties in Oracle Enterprise Manager Fusion Middleware Control:

  • java.naming.factory.initial

  • java.naming.provider.url

  • java.naming.dns.url

  • java.naming.factory.url.pkgs

  • java.naming.factory.url.pkgs

  • java.naming.security.authentication

  • java.naming.security.protocol

  • java.naming.security.principal

  • java.naming.security.crendentials

  • oracle.jps.credstore.map

  • oracle.jps.credstore.key

37.6.1.1 To configure Enterprise JavaBeans binding support in the credential store framework:

To edit these properties, perform the following steps in Oracle Enterprise Manager Fusion Middleware Control:

  1. Right-click the SOA composite application that includes the Enterprise JavaBeans binding component.

  2. Select Service/Reference Properties.

  3. Select the Enterprise JavaBeans binding component.

  4. Click the Properties tab.

  5. Set the appropriate properties.

37.6.1.2 To specify the oracle.jps.credstore.map and oracle.jps.credstore.key properties

Oracle recommends that you store the JNDI lookup principal/credentials in the CSF map by specifying the properties oracle.jps.credstore.map and oracle.jps.credstore.key. Storing the user name/password directly as properties is not secure.

  1. In Oracle Enterprise Manager Fusion Middleware Control, navigate to one of the following to display the Credentials page.

    1. Domain > Security > Credentials (if the application is deployed on Oracle WebLogic Server).

      or

    2. Cell > Security > Application Policies (if it is deployed on WebSphere Application Server).

  2. To add a new map, select Create Map.

  3. Click the map to add a key entry for oracle.jps.credstore.map.

  4. Repeat Steps 2 and 3 to add oracle.jps.credstore.key.

37.6.1.3 To grant SOA infrastructure runtime access to the CSF map store

After completing these steps, you must grant SOA Infrastructure runtime access to the CSF map store.

  1. Expand the WebLogic Domain.

  2. Right-click soa-infra, and select Security > System Policies.

  3. Search for type CodeBase, which includes the name fabric-runtime.

  4. Select the entry and edit it to add a credential store access permission.

  5. Grant at least the read action to the map.