Skip to main content

EJB 3.0 invocation over OSB 11g

Hi Guyz,
Today i am going to explain how we can call a remote EJB/Local EJB over OSB 11g, there are two ways for this. Here are going with way1, in next post i will explain how to call EJB with 2nd way.
EJB Layer configuration for remote invocation:
Most of the time we design LOCAL EJB, so here we are starting with a local EJB to remote EJB design.
Right now EJB interface is marked as @local, it restrict the OSB to consume it, So it marked as @remote, EJB interface and implementation should marked with following line of code.
Interface:
@Remote
public interface SandeepTest
Interface Implementation:
 @Stateless(name = "SandeepTestImpl", mappedName = "ejb/SandeepTestImpl")
@Remote(SandeepTest.class)
@TransactionAttribute(TransactionAttributeType. NOT_SUPPORTED)
public class SandeepTestImpl implements SandeepTest
{
/*
Interface methods implementation......
*/
}
Prepare a client JAR file which contain this interface definition:
Deploy EJB jar over weblogic server and make a JNDI look up for the EJB, as in our case we defined mappedName = "ejb/SandeepTestImpl", So over weblogic JNDI tree EJB will be available inside ejb.SandeepTestImpl #packagename.InterfaceName.
Weblogic JNDI tree look up: Deploy EJB jar over weblogic.
OSB Layer task:
  1. Design a business service layer with EJB client jar
  2. Generate WSDL from business service
  3. Design a proxy service that will invoke the EJB business service.
  4. If your remote EJB is running on a different J2EE Server then you need to add a JNDI provider for your EJB.
  5. Provide the provider URL and the username / password.
  6. Create a service interface jar of your remote EJB. (This jar must not contain the Bean or the persistence.xml, just the entities and the remote interface).  Import this jar in your OSB project. Select File system.
  7. Browse to your deploy folder and select the Service interface jar.
  8. EJB Transport 
    Create a Business Service with a Transport Service Type.
  9. Select the EJB protocol and use this ejb:JNDIProvider:XXXXXX as an endpoint URI.  JNDIProvider is the name of the just created JNDI provider and XXXX is the JNDI name of your remote EJB.
  10. In the EJB Transport Tab you need to enable EJB 3, add the service interface jar and select the remote interface.
  11. You can enable / disable some methods or change the names of the input or output parameters.
  12. Next step is to make a Proxy Service on this Business Service. Generate and save the WSDL on this BS.
  13. Use this WSDL in the proxy service and add in the Service Flow some Operation branches and use the EJB Business service or you can design your own WSDL and it's schema XSD file.
  14. Test web service over SBCONSOLE.

Comments

Post a Comment

Popular posts from this blog

Oracle SOA 12C rest adapter with Custom HTTP headers

Most existing web applications are connected through web services, which are commonly known as SOAP services. More and more users are relying on mobile devices for communication, and they’re looking for lighter ways to access enterprise information on the go. REST services are the answer for the mobile device platform, because they get rapid responses and fast access to data. Oracle SOA Suite 12 c  provides a complete set of service infrastructure components for designing, deploying, and managing composite applications. Oracle SOA Suite 12 c  enables services to be created, managed, and orchestrated into composite applications and business processes. Some time we have need to send HTTP headers in REST service, In OSB we use header component and add what ever is needed but in oracle SOA 12C it's little bit different. Let see how we can do it. Create one SOA Application. Create one SOA Sample project inside SOA Application. Go to composite and drag drop REST ...

Swagger API document from Any WADL & Schema in Oracle SOA

Hi everyone, Hope everyone is doing well these days, Recently i started a project work over how to generate swagger API document for your any REST API, In case if you don't know what is swagger please go and check " https://swagger.io/tools/swagger-editor/ ". It's a great and easy to use tool which will help to create user friendly, human readable form API documentation with extension for generating API client in different languages with capability of testing your API from same. What is swagger editor, Design, describe, and document your API on the first open source editor fully dedicated to OpenAPI-based APIs. The Swagger Editor is great for quickly getting started with the OpenAPI (formerly known as the Swagger Specification) specification, with support for Swagger 2.0 and OpenAPI 3.0.  What benefits you will get by using swagger, Runs Anywhere, The Editor works in any development environment, be it locally or in the web. Smart Feedback, Validate you...

ParseEscapedXML Function In Oracle BPEL XSLT Is Throwing Parsing Error For Special Character &

The ampersand escape sequence "&" in a Database Record/XML Payload is being converted to '&' by the BPEL composite.  This results in the XSLT transformation code throwing an oracle.xml.parser.v2.XMLParseException error/exception when the parseEscapedXML method is invoked against the data. The parseEscapedXML method was deprecated in in 12C and should not longer be used. It has been replaced by the new method oraext:parseXML. There is a know bug in the oraext:parseXML method that was address in patch 21377740. The fixes that were made in 21377740 where incorporated into the  12.2.1.0.0 GA release, thus there no patch needed  for the issue.   Note: No backport fix for 12.1.3 was released