当前位置: 首页 > 知识库问答 >
问题:

Azure ServiceBus:找不到“com.microsoft.Azure.ServiceBus.ITopicClient”

子车高超
2023-03-14
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-servicebus-spring-boot-starter</artifactId>
    <version>2.2.4</version>
</dependency>
package com.example.demo.service;

import com.microsoft.azure.servicebus.ITopicClient;
import com.microsoft.azure.servicebus.Message;
import lombok.extern.log4j.Log4j2;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

import java.time.Instant;

@Log4j2
@Component
@Service
public class ServiceBusProducer implements Ordered {

    @Autowired
    private ITopicClient iTopicClient;

    ServiceBusProducer(ITopicClient iTopicClient) {
        this.iTopicClient = iTopicClient;
    }

    @EventListener(ApplicationReadyEvent.class)
    public void produce() throws Exception {
        this.iTopicClient.send(new Message("Hello @ " + Instant.now().toString()));
    }

    @Override
    public int getOrder() {
        return Ordered.LOWEST_PRECEDENCE;
    }
}
package com.example.demo.service;

import com.microsoft.azure.servicebus.ITopicClient;
import com.microsoft.azure.servicebus.Message;
import lombok.extern.log4j.Log4j2;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

import javax.annotation.PostConstruct;
import java.time.Instant;

@Log4j2
@Component
@Service
public class ServiceBusProducer implements Ordered {

   @Autowired
    private ITopicClient iTopicClient;

   ServiceBusProducer(ITopicClient iTopicClient) {
      this.iTopicClient = iTopicClient;
   }

   @PostConstruct
   private void postConstruct() {
      this.iTopicClient = iTopicClient;
   }

   @EventListener(ApplicationReadyEvent.class)
   public void produce() throws Exception {
      this.iTopicClient.send(new Message("Hello @ " + Instant.now().toString()));
   }

   @Override
   public int getOrder() {
      return Ordered.LOWEST_PRECEDENCE;
   }
}

共有1个答案

熊锐进
2023-03-14

由于您没有提供公共默认构造函数,而添加了自己的非默认构造函数,实例化失败。

查看类似的问题。看来您必须初始化itopicclientbean,否则就会出现命名问题。

  • 考虑在配置[Spring-Boot]中定义“package”类型的bean
  • https://github.com/spring-projects/spring-boot/issues/1963
 类似资料:
  • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-

  • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至

  • 问题内容: 我正在为我的项目使用jersey,并尝试从字符串中解析URI。 代码很简单,但是下面出现错误 看来程序找不到委托。我已经导入了,并且应该在我的构建路径中包含委托。但我仍然会收到此错误。 有人知道如何解决吗?谢谢! 问题答案: 如果您使用的是Maven,请使用以下依赖项: 对于Gradle,以下将起作用:

  • 问题内容: 我只需要重新安装mysql,我就无法启动它。它找不到套接字(mysql.sock)。问题是我也不能。在Mac OS X 10.4终端中,键入:,然后返回。套接字文件存在于该位置是有道理的,但实际上并不存在。 如何找到套接字文件? 如果locate返回错误的位置,则它必须具有某种内存,并且可能具有索引。如何刷新该索引? 问题答案: 回答问题的第一部分: 跑 并检查“ socket”变量

  • 问题内容: 我正在Eclipse 4.3中设置一个Spring 3.2.3 + Hibernate 4项目。 当我将代码添加到上下文中时,我开始在每个bean中收到以下错误: 现在,我在项目中添加了AspectJ Tools和Cglib依赖项,并且JAR在那里,包括它找不到的类。该应用程序正常运行,并且Spring正在成功管理会话和事务。 我一直在寻找解决方案,但每个答案都指出,由于缺少JAR,因

  • 问题内容: 我是Hibernate的新手,正在阅读《 Hibernate的Java持久性》这本书,并尝试从那里实现该示例。到目前为止,我的Ant构建是成功的,但是当我尝试执行包含main方法的类时,却收到此错误消息: 很明显,hibernate状态找不到我的配置文件,该文件位于根目录中。 项目 我的完整源代码可以在这里找到:http : //pastebin.com/bGDUrxUf 我有一个正在

  • 问题内容: 当我尝试使用或发生以下错误时 java.lang.NoSuchMethodError:sun.security.ssl.SSLSessionImpl。(Lsun / security / ssl / ProtocolVersion; Lsun / security / ssl / CipherSuite; Ljava / util / Collection; Lsun / securi

  • 问题内容: 由于某些原因,我的节点服务器无法提供路由,所以我总是会收到404错误。 我尝试编译不同的节点版本( 当前 版本 为0.6.13,该 版本 也可以在实际运行的服务器上运行 )。 从app.js 尝试调用socket.io.js时,我得到并没有错误。 我从本地主机和端口8000尝试,我使用express框架 这是来自app.js的代码: 问题答案: 请检查您的Express版本。Expre