Book Image

Oracle Service Bus 11g Development Cookbook

Book Image

Oracle Service Bus 11g Development Cookbook

Overview of this book

Oracle Service Bus 11g is a scalable SOA integration platform that delivers an efficient, standards-based infrastructure for high-volume, mission critical SOA environments. It is designed to connect, mediate, and manage interactions between heterogeneous services, legacy applications, packaged solutions and multiple Enterprise Service Bus (ESB) instances across an enterprise-wide service network. Oracle Service Bus is a core component in the Oracle SOA Suite as a backbone for SOA messaging. This practical cookbook shows you how to develop service and message-oriented (integration) solutions on the Oracle Service Bus 11g. Packed with over 80 task-based and immediately reusable recipes, this book starts by showing you how to create a basic OSB service and work efficiently and effectively with OSB. The book then dives into topics such as messaging with JMS transport, using EJB and JEJB transport, HTTP transport and Poller transports, communicating with the database, communicating with SOA Suite and Reliable Message Processing amongst others. The last two chapters discuss how to achieve message and transport-level security on the OSB.
Table of Contents (19 chapters)
Oracle Service Bus 11g Development Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Using converter class with EJB transport to help converting data types


Usually, data conversion between an EJB and OSB is done for you in OSB. However, when dealing with EJBs, there are times when automatic conversion is simply not possible. For example, if the EJB returns any of the following, the JAX RPC engine will not be able to infer the true type being returned:

  • java.lang.Object

  • java.lang.Object[]

  • Java Collections that are not strongly typed

  • Java classes that do not follow JavaBean conventions (like the Map class)

In such cases, we can help the JAX RPC engine, by providing converter classes that convert from these types to the supported types.

In this recipe, we will change the mapping of the findAllCustomers method by using a converter class from the EJB transport on the business service, so that the method returns a typed result.

We have already created a converter class that converts the list of customers to a customer array. The following screenshot shows the implementation of the converter...