如何将消息直接发送到azure服务总线(java)中的死信队列中?

如何将消息直接发送到azure服务总线(java)中的死信队列中?,java,azure,azure-functions,azureservicebus,Java,Azure,Azure Functions,Azureservicebus,我有一个servicebusqueuetrigger函数,它从服务总线上取下一个字符串并调用另一个api,如果该api调用没有返回200,我想将该字符串作为meesage移动到死信队列中。我该怎么做 到目前为止我有这个 public class myEventsConsumerFunction { @FunctionName("myEventTrigger") public void myEventTrigger( @ServiceB

我有一个servicebusqueuetrigger函数,它从服务总线上取下一个字符串并调用另一个api,如果该api调用没有返回200,我想将该字符串作为meesage移动到死信队列中。我该怎么做

到目前为止我有这个

public class myEventsConsumerFunction {

    @FunctionName("myEventTrigger")
    public void myEventTrigger(
            @ServiceBusQueueTrigger(name = "message", queueName = "%QUEUE_NAME%", connection = "ServiceBusConnection") String message,
            final ExecutionContext context) throws MSPException {
            int responseCode = callApi(message);
                    if(responseCode!=200){
            String ConnectionString = "connectionstring"
            QueueClient sendClient = new QueueClient(new ConnectionStringBuilder(ConnectionString, queueName), ReceiveMode.PEEKLOCK);
            //
            //how do i send my String message to dead letter queue here?
            //


        }

我在queue client中看到了一系列称为deadletter的方法,但它们将UUID作为参数(我不确定这是什么),而不是消息字符串。

问题的关键在于offcial的基于Java的azure sdk包没有编写MessageReceiver类。(据我所知,官方只实现C#的IMessageReceiver接口)如果是C#,可以直接使用:

但对于java,官方尚未实现此功能,只有一个接口:

我在队列客户机中看到了一系列称为deadletter的方法,但它们 将UUID作为参数(我不确定它是什么),而不是 消息字符串

我知道这一点,但它不是基于消息的,如果您创建queueclient的对象并使用该方法,它将告诉您没有接收者:

总之,我认为这是一个未完成的特性,也许它可以在未来的sdk版本中更新。但现在不行,除非您阅读底层代码并自己实现IMessageReceiver接口,否则这是不可能的