Show TOC Start of Content Area

Procedure documentation Implementing the ProjectChangeReceiver Bean  Locate the document in its SAP Library structure

Procedure

...

       1.      Specify that ProjectChangeReceiver implements the javax.jms.MessageListener interface:

public class ProjectChangeReceiver implements MessageListener {

       2.      Inject a MessageDrivenContext and a PersistenceContext:

@Resource

    public MessageDrivenContext mdc;

@PersistenceContext(unitName = "ems/EJB3_EDM_DEMO_PU")

    private EntityManager em;

       3.      Implement the bean’s onMessage method as follows:

    public void onMessage(Message inMessage) {

        TextMessage msg = null;

 

        try {

            if (inMessage instanceof TextMessage) {

                msg = (TextMessage) inMessage;

                Projectchanges chPrj = new Projectchanges();

                chPrj.setProjectId(msg.getIntProperty("ProjectId"));

                chPrj.setEndDate(new java.util.Date(msg.getLongProperty("EndDate")));

                chPrj.setStartDate(new java.util.Date(msg.getLongProperty("StartDate")));

                chPrj.setTitle(msg.getStringProperty("Title"));

                chPrj.setDescription(msg.getStringProperty("Description"));

                chPrj.setLeader(msg.getIntProperty("LeadId"));

                chPrj.setChangeDate(new java.sql.Timestamp(msg.getLongProperty("ChangeDate")));

                chPrj.setStatus(msg.getIntProperty("Status"));

                chPrj.setChangerId(msg.getStringProperty("Changer"));

                em.merge(chPrj);

                ReferenceApplicationEJBLogger.logInfo("MESSAGE BEAN: Message received: " + chPrj.getProjectId());

            } else {

               ReferenceApplicationEJBLogger.logWarn("Message of wrong type: "

                        + inMessage.getClass().getName());

            }

        } catch (JMSException e) {

        ReferenceApplicationEJBLogger.logException( e);

            mdc.setRollbackOnly();

        } catch (Throwable te) {

        ReferenceApplicationEJBLogger.logThrowable( te);

        }

    }

Result

The implementation of the bean should now look like the one shown in ProjectChangeReceiver Source Code.

 

End of Content Area