aoshiguchen commented on PR #619:
URL: https://github.com/apache/rocketmq-spring/pull/619#issuecomment-1929018005

   > Do you have detailed error information? The judgment of namespance is done 
in rocketmq-client
   > 
   > org.apache.rocketmq.common.protocol.NamespaceUtil#wrapNamespace
   
   1、My MQ instance has been released and I am currently unable to test and 
obtain detailed error information.
   2、But I can provide the exact error location and a complete reproduction 
process on my end.
   3、Error source code 
location:org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#sendDefaultImpl.
 
   This line:
   throw (new MQClientException("No route info of this topic: " + 
msg.getTopic() + FAQUrl.suggestTodo("http://rocketmq.apache.org/docs/faq/";), 
(Throwable)null)).setResponseCode(10005);
   4、Problem reproduction process
   4.1、Introducing dependencies:  
org.apache.rocketmq:rocketmq-spring-boot-starter:2.2.3
   4.2、configuration groupId、accessKey、secretKey、nameServer .
   4.3、Sending messages using RocketMQTemplate instance
   4.4、Start the project and execute it
   
   5、For ease of understanding, you can refer to the following program to 
manually build RocketMQTemplate instances to reproduce the problem
   
   
   ```java
   public class Test3 {
   
       public static void main(String[] args) throws Exception {
           String groupId = "xxxx";
           String accessKey = "xxx";
           String secretKey = "xxx";
           String onsAddr = "xxx";
   
           RocketMQProperties properties = new RocketMQProperties();
           RocketMQProperties.Producer p = new RocketMQProperties.Producer();
           p.setGroup(groupId);
           p.setAccessKey(accessKey);
           p.setSecretKey(secretKey);
   
           properties.setNameServer(onsAddr);
           properties.setProducer(p);
           DefaultMQProducer producer = defaultMQProducer(properties);
           producer.start();
   
           RocketMQTemplate rocketMQTemplate = new RocketMQTemplate();
           rocketMQTemplate.setProducer(producer);
           rocketMQTemplate.setMessageConverter(new 
MappingFastJsonMessageConverter());
   
           SendResult sendResult = rocketMQTemplate.syncSend("TP_TEST1", 
"hello");
           System.out.println("msgId:" + sendResult);
       }
   
       /**
        * This method is derived 
from:org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration#defaultMQProducer(org.apache.rocketmq.spring.autoconfigure.RocketMQProperties)
        * @param rocketMQProperties
        * @return
        */
       public static DefaultMQProducer defaultMQProducer(RocketMQProperties 
rocketMQProperties) {
           RocketMQProperties.Producer producerConfig = 
rocketMQProperties.getProducer();
           String nameServer = rocketMQProperties.getNameServer();
           String groupName = producerConfig.getGroup();
           Assert.hasText(nameServer, "[rocketmq.name-server] must not be 
null");
           Assert.hasText(groupName, "[rocketmq.producer.group] must not be 
null");
           String accessChannel = rocketMQProperties.getAccessChannel();
           String ak = rocketMQProperties.getProducer().getAccessKey();
           String sk = rocketMQProperties.getProducer().getSecretKey();
           boolean isEnableMsgTrace = 
rocketMQProperties.getProducer().isEnableMsgTrace();
           String customizedTraceTopic = 
rocketMQProperties.getProducer().getCustomizedTraceTopic();
           DefaultMQProducer producer = 
RocketMQUtil.createDefaultMQProducer(groupName, ak, sk, isEnableMsgTrace, 
customizedTraceTopic);
           producer.setNamesrvAddr(nameServer);
           if (StringUtils.hasLength(accessChannel)) {
               producer.setAccessChannel(AccessChannel.valueOf(accessChannel));
           }
   
           producer.setSendMsgTimeout(producerConfig.getSendMessageTimeout());
           
producer.setRetryTimesWhenSendFailed(producerConfig.getRetryTimesWhenSendFailed());
           
producer.setRetryTimesWhenSendAsyncFailed(producerConfig.getRetryTimesWhenSendAsyncFailed());
           producer.setMaxMessageSize(producerConfig.getMaxMessageSize());
           
producer.setCompressMsgBodyOverHowmuch(producerConfig.getCompressMessageBodyThreshold());
           
producer.setRetryAnotherBrokerWhenNotStoreOK(producerConfig.isRetryNextServer());
           producer.setUseTLS(producerConfig.isTlsEnable());
           producer.setNamespace(producerConfig.getNamespace());
           producer.setInstanceName(producerConfig.getInstanceName());
           return producer;
       }
   
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to