code: protected Message createMessage(ConnectionContext context, BasicMessage basicMessage, Map<String, String> headers)
              throws JMSException {
          if (context == null) {
              throw new IllegalArgumentException("The context is null");
          }
          if (basicMessage == null) {
              throw new IllegalArgumentException("The message is null");
          }
  
          Session session = context.getSession();
          if (session == null) {
              throw new IllegalArgumentException("The context had a null session");
          }
          TextMessage msg = session.createTextMessage(basicMessage.toJSON());
  
          setHeaders(basicMessage, headers, msg);
  
          log.infof("Created text message [%s] with text [%s]", msg, msg.getText());
  
          return msg;
      }
docs: Creates a text message that can be send via a producer that contains the given BasicMessage's JSON encoded data.
  
  @param context the context whose session is used to create the message
  @param basicMessage contains the data that will be JSON-encoded and encapsulated in the created message, with
  optional headers included
  @param headers headers for the Message that will override same-named headers in the basic message
  @return the message that can be produced
  @throws JMSException any error
  @throws NullPointerException if the context is null or the context's session is null