Skip to content

Throws NullPointerException if I use BatchMessagingMessageListenerAdapter #1207

Closed
@ShambuGIT

Description

@ShambuGIT

My code to for batchMessage. Let me know if this is not a correct way to create BatchMessagingMessageListenerAdapter for my project.

public class CustomBatchMessagingMessageListenerAdapter extends BatchMessagingMessageListenerAdapter {

	private final static String defaultMethodName = "handleMessages";
	
    public CustomBatchMessagingMessageListenerAdapter(Object bean, Method method, MessageConverter messageConverter)
    {
        super(bean, null, false, null, null);
        setMessageConverter(messageConverter);
        HandlerAdapter adapter = createHandleAdapter(bean, method);
        setHandlerAdapter(adapter);
    }

    public CustomBatchMessagingMessageListenerAdapter(Object bean, MessageConverter messageConverter)
    {
        this(bean, BeanUtils.findDeclaredMethodWithMinimalParameters(bean.getClass(), defaultMethodName),
                messageConverter);
    }

    private HandlerAdapter createHandleAdapter(Object bean, Method method)
    {
        MessageHandlerMethodFactory messageHandlerMethodFactory = new DefaultMessageHandlerMethodFactory();
        InvocableHandlerMethod invokerHandlerMethod = messageHandlerMethodFactory.createInvocableHandlerMethod(bean,
                method);

        HandlerMethodArgumentResolverComposite resolvers = new HandlerMethodArgumentResolverComposite();
        resolvers.addResolver(
                new org.springframework.messaging.handler.annotation.support.HeadersMethodArgumentResolver());
        resolvers.addResolver(
                new org.springframework.messaging.handler.annotation.support.MessageMethodArgumentResolver());
        resolvers
                .addResolver(new org.springframework.messaging.handler.annotation.support.PayloadMethodArgumentResolver(
                        new GenericMessageConverter()));
        invokerHandlerMethod.setMessageMethodArgumentResolvers(resolvers);
        HandlerAdapter handler = new HandlerAdapter(invokerHandlerMethod);
        return handler;
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions