【Final】如何用W7100A实现DNS客户端(二)

本文详细介绍了DNS客户端的实现方法及关键代码解析,包括初始化UDPsocket、创建查询信息、发送请求、接收响应和解析DNS应答的过程。示例代码基于Keil编译环境,适合开发者深入理解DNS客户端工作原理。

这篇文档将会介绍DNS以及如何用iMCU7100EVB来实现DNS客户端,并且通过实际例子演示该功能。

在昨天的博文“如何用W7100A实现DNS客户端(一)”我们给大家介绍了第二章域名系统以及第三章DNS演示的部分,今天继续与大家分享第四章实现代码的内容。本文中所有的示例代码全部基于Keil编译环境。

这是本篇文档的最后一部分,希望对大家有所帮助。

 

第一部分请参考:如何用W7100A实现DNS客户端(一)/  http://blog.youkuaiyun.com/wiznet2012/article/details/7990852

 

4      实现代码

本章将会介绍相关的示例代码,这些代码被下载到iMCU7100EVB开发板后,开发板利用UDP协议实现DNS客户端的功能。更多关于UDP协议的详细信息,请参考文档‘如何使用W7100A实现UDP通信’。

4.1    dns_query()函数

该DNS客户端的示例代码是用dns_query()函数完成的。其它的低级函数被dns_query()函数调用执行。代码4.1为dns_query()函数的代码。

所有的变量都定义于dns_query()函数内,结构变量dhdr位于dns.c的头文件中。DNS_IP保存DNS服务器的IP地址,必须正确输入。

首先,打开UDP socket。在代码4.2中,将端口号设置为5000(端口号可以根据用户的需求进行修改),然后利用dns_makequery()函数(后面将会详细介绍该函数)创建一个查询信息。在查询信息创建后,调用sento()函数将该信息作为一个UDP数据包发送到服务器。

在发送完查询信息后,iMCU7100EVB等待DNS服务器的响应。通过getSn_RX_RSR()函数来确认DNS服务器是否接收到响应信息;如果在一段时间后没有收到响应,就会认为是超时。一旦有响应,通过recvfrom()函数接收响应,并且调用parseMSG()函数来解析该响应信息。parseMSG()函数可以检测来自DNS服务器应答的rcode(DNS信息报文头段);并且返回1或者0。若返回值为1(rcode=0), 表示域名搜索成功。除了0之外的其它值都表示发生错误,但是在示例代码中,对于其它错误parseMSG()函数的返回值都将为0。

4.2    dns_makequery()函数

dns_makequery()函数由dns_query()函数调用来创建DNS查询信息。更多的详细信息,请参考第2章DNS查询信息的配置。该函数的返回值为DNS缓存器的信息指针。

查询信息是由dns_makequery()函数创建的,具体格式在第2章已经介绍。在缓存器中输入DNS信息时要用到Put16()函数,该函数将16位的输入保存到8位的缓存器中。

4.3    parseMSG()函数

parseMSG()由dns_query()函数调用,用来分析接收到的DNS信息。首先分析报文头段,然后调用dns_question()函数来分析问题段,之后再次调用dns_answer()函数分析应答段。最后将已经分析完成的应答信息、与域名相对应的IP地址保存到一个变量中通过printf()函数进行输出。

4.4        dns_question()函数

dns_question()函数由parseMSG()函数调用,用来分析问题段(如:Qname、Qtype、

Qclass)。更多的详细信息,请参考RFC1034和RFC1035文档中问题段的值。

4.5          dns_answer()函数

dns_answer()函数由parseMSG()函数调用,用来对资源记录(RRs)段(Name、Type、

Class、TTL、Rdlength、Rddata)进行分析。在对所有的信息类型解析完成之后,如果信息的类型为TypeA、TypePTR、TypeHINFO、TypeMX、TypeSOA或者TypeTXT时,需要对其进行再次解析。

更多的详细信息,请参考RFC1034和RFC1035文档中对各信息类型的介绍。

4.6         parse_name()函数

parse_name()函数只分析来自DNS应答信息的name段。parse_name()函数也可以改变

DNS信息格式从而使用户更容易进行操作,在分析完成之后返回Name段的长度。

 

 

本篇文档介绍完毕了,欢迎大家讨论并咨询!

 

D:\Java\jdk-1.8\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:D:\work\w\idea\2023.2\exe\IntelliJ IDEA 2023.2\lib\idea_rt.jar=52580:D:\work\w\idea\2023.2\exe\IntelliJ IDEA 2023.2\bin" -Dfile.encoding=UTF-8 -classpath D:\Java\jdk-1.8\jre\lib\charsets.jar;D:\Java\jdk-1.8\jre\lib\deploy.jar;D:\Java\jdk-1.8\jre\lib\ext\access-bridge-64.jar;D:\Java\jdk-1.8\jre\lib\ext\cldrdata.jar;D:\Java\jdk-1.8\jre\lib\ext\dnsns.jar;D:\Java\jdk-1.8\jre\lib\ext\jaccess.jar;D:\Java\jdk-1.8\jre\lib\ext\jfxrt.jar;D:\Java\jdk-1.8\jre\lib\ext\localedata.jar;D:\Java\jdk-1.8\jre\lib\ext\nashorn.jar;D:\Java\jdk-1.8\jre\lib\ext\sunec.jar;D:\Java\jdk-1.8\jre\lib\ext\sunjce_provider.jar;D:\Java\jdk-1.8\jre\lib\ext\sunmscapi.jar;D:\Java\jdk-1.8\jre\lib\ext\sunpkcs11.jar;D:\Java\jdk-1.8\jre\lib\ext\zipfs.jar;D:\Java\jdk-1.8\jre\lib\javaws.jar;D:\Java\jdk-1.8\jre\lib\jce.jar;D:\Java\jdk-1.8\jre\lib\jfr.jar;D:\Java\jdk-1.8\jre\lib\jfxswt.jar;D:\Java\jdk-1.8\jre\lib\jsse.jar;D:\Java\jdk-1.8\jre\lib\management-agent.jar;D:\Java\jdk-1.8\jre\lib\plugin.jar;D:\Java\jdk-1.8\jre\lib\resources.jar;D:\Java\jdk-1.8\jre\lib\rt.jar;D:\zy\project-zy\vue3-cloud-zy\zy25090801\zy-microservice\zy-modules\zy-order\target\classes;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot\2.7.18\spring-boot-2.7.18.jar;D:\work\w\maven\repository\org\springframework\spring-context\5.3.39\spring-context-5.3.39.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.18\spring-boot-autoconfigure-2.7.18.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;D:\work\w\maven\repository\ch\qos\logback\logback-classic\1.2.13\logback-classic-1.2.13.jar;D:\work\w\maven\repository\ch\qos\logback\logback-core\1.2.13\logback-core-1.2.13.jar;D:\work\w\maven\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;D:\work\w\maven\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;D:\work\w\maven\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\work\w\maven\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\work\w\maven\repository\org\springframework\spring-core\5.3.39\spring-core-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-jcl\5.3.39\spring-jcl-5.3.39.jar;D:\work\w\maven\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-web\2.7.18\spring-boot-starter-web-2.7.18.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-json\2.7.18\spring-boot-starter-json-2.7.18.jar;D:\work\w\maven\repository\com\fasterxml\jackson\core\jackson-databind\2.13.5\jackson-databind-2.13.5.jar;D:\work\w\maven\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.5\jackson-annotations-2.13.5.jar;D:\work\w\maven\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.5\jackson-datatype-jdk8-2.13.5.jar;D:\work\w\maven\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.5\jackson-datatype-jsr310-2.13.5.jar;D:\work\w\maven\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.5\jackson-module-parameter-names-2.13.5.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;D:\work\w\maven\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.106\tomcat-embed-core-9.0.106.jar;D:\work\w\maven\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.106\tomcat-embed-el-9.0.106.jar;D:\work\w\maven\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.106\tomcat-embed-websocket-9.0.106.jar;D:\work\w\maven\repository\org\springframework\spring-web\5.3.39\spring-web-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-beans\5.3.39\spring-beans-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-webmvc\5.3.39\spring-webmvc-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-aop\5.3.39\spring-aop-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-expression\5.3.39\spring-expression-5.3.39.jar;D:\work\w\maven\repository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-discovery\2021.0.6.1\spring-cloud-starter-alibaba-nacos-discovery-2021.0.6.1.jar;D:\work\w\maven\repository\com\alibaba\cloud\spring-cloud-alibaba-commons\2021.0.6.1\spring-cloud-alibaba-commons-2021.0.6.1.jar;D:\work\w\maven\repository\com\alibaba\nacos\nacos-client\2.2.0\nacos-client-2.2.0.jar;D:\work\w\maven\repository\com\alibaba\nacos\nacos-auth-plugin\2.2.0\nacos-auth-plugin-2.2.0.jar;D:\work\w\maven\repository\com\alibaba\nacos\nacos-encryption-plugin\2.2.0\nacos-encryption-plugin-2.2.0.jar;D:\work\w\maven\repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\work\w\maven\repository\com\fasterxml\jackson\core\jackson-core\2.13.5\jackson-core-2.13.5.jar;D:\work\w\maven\repository\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;D:\work\w\maven\repository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;D:\work\w\maven\repository\org\apache\httpcomponents\httpcore-nio\4.4.16\httpcore-nio-4.4.16.jar;D:\work\w\maven\repository\org\apache\httpcomponents\httpclient\4.5.14\httpclient-4.5.14.jar;D:\work\w\maven\repository\io\prometheus\simpleclient\0.15.0\simpleclient-0.15.0.jar;D:\work\w\maven\repository\io\prometheus\simpleclient_tracer_otel\0.15.0\simpleclient_tracer_otel-0.15.0.jar;D:\work\w\maven\repository\io\prometheus\simpleclient_tracer_common\0.15.0\simpleclient_tracer_common-0.15.0.jar;D:\work\w\maven\repository\io\prometheus\simpleclient_tracer_otel_agent\0.15.0\simpleclient_tracer_otel_agent-0.15.0.jar;D:\work\w\maven\repository\com\alibaba\spring\spring-context-support\1.0.11\spring-context-support-1.0.11.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-commons\3.1.8\spring-cloud-commons-3.1.8.jar;D:\work\w\maven\repository\org\springframework\security\spring-security-crypto\5.7.11\spring-security-crypto-5.7.11.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-context\3.1.8\spring-cloud-context-3.1.8.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-starter-openfeign\3.1.9\spring-cloud-starter-openfeign-3.1.9.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-starter\3.1.8\spring-cloud-starter-3.1.8.jar;D:\work\w\maven\repository\org\springframework\security\spring-security-rsa\1.0.12.RELEASE\spring-security-rsa-1.0.12.RELEASE.jar;D:\work\w\maven\repository\org\bouncycastle\bcpkix-jdk18on\1.73\bcpkix-jdk18on-1.73.jar;D:\work\w\maven\repository\org\bouncycastle\bcprov-jdk18on\1.73\bcprov-jdk18on-1.73.jar;D:\work\w\maven\repository\org\bouncycastle\bcutil-jdk18on\1.73\bcutil-jdk18on-1.73.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-openfeign-core\3.1.9\spring-cloud-openfeign-core-3.1.9.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-aop\2.7.18\spring-boot-starter-aop-2.7.18.jar;D:\work\w\maven\repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;D:\work\w\maven\repository\io\github\openfeign\form\feign-form-spring\3.8.0\feign-form-spring-3.8.0.jar;D:\work\w\maven\repository\io\github\openfeign\form\feign-form\3.8.0\feign-form-3.8.0.jar;D:\work\w\maven\repository\commons-fileupload\commons-fileupload\1.5\commons-fileupload-1.5.jar;D:\work\w\maven\repository\io\github\openfeign\feign-core\11.10\feign-core-11.10.jar;D:\work\w\maven\repository\io\github\openfeign\feign-slf4j\11.10\feign-slf4j-11.10.jar;D:\work\w\maven\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\work\w\maven\repository\io\seata\seata-spring-boot-starter\1.6.1\seata-spring-boot-starter-1.6.1.jar;D:\work\w\maven\repository\io\seata\seata-spring-autoconfigure-client\1.6.1\seata-spring-autoconfigure-client-1.6.1.jar;D:\work\w\maven\repository\io\seata\seata-spring-autoconfigure-core\1.6.1\seata-spring-autoconfigure-core-1.6.1.jar;D:\work\w\maven\repository\io\seata\seata-all\1.6.1\seata-all-1.6.1.jar;D:\work\w\maven\repository\io\netty\netty-all\4.1.101.Final\netty-all-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-buffer\4.1.101.Final\netty-buffer-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec\4.1.101.Final\netty-codec-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-dns\4.1.101.Final\netty-codec-dns-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-haproxy\4.1.101.Final\netty-codec-haproxy-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-http\4.1.101.Final\netty-codec-http-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-http2\4.1.101.Final\netty-codec-http2-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-memcache\4.1.101.Final\netty-codec-memcache-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-mqtt\4.1.101.Final\netty-codec-mqtt-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-redis\4.1.101.Final\netty-codec-redis-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-smtp\4.1.101.Final\netty-codec-smtp-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-socks\4.1.101.Final\netty-codec-socks-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-stomp\4.1.101.Final\netty-codec-stomp-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-codec-xml\4.1.101.Final\netty-codec-xml-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-native-unix-common\4.1.101.Final\netty-transport-native-unix-common-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-handler-proxy\4.1.101.Final\netty-handler-proxy-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-handler-ssl-ocsp\4.1.101.Final\netty-handler-ssl-ocsp-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-resolver\4.1.101.Final\netty-resolver-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-resolver-dns\4.1.101.Final\netty-resolver-dns-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-rxtx\4.1.101.Final\netty-transport-rxtx-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-sctp\4.1.101.Final\netty-transport-sctp-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-udt\4.1.101.Final\netty-transport-udt-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-classes-epoll\4.1.101.Final\netty-transport-classes-epoll-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-classes-kqueue\4.1.101.Final\netty-transport-classes-kqueue-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-resolver-dns-classes-macos\4.1.101.Final\netty-resolver-dns-classes-macos-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport-native-epoll\4.1.101.Final\netty-transport-native-epoll-4.1.101.Final-linux-x86_64.jar;D:\work\w\maven\repository\io\netty\netty-transport-native-epoll\4.1.101.Final\netty-transport-native-epoll-4.1.101.Final-linux-aarch_64.jar;D:\work\w\maven\repository\io\netty\netty-transport-native-kqueue\4.1.101.Final\netty-transport-native-kqueue-4.1.101.Final-osx-x86_64.jar;D:\work\w\maven\repository\io\netty\netty-transport-native-kqueue\4.1.101.Final\netty-transport-native-kqueue-4.1.101.Final-osx-aarch_64.jar;D:\work\w\maven\repository\io\netty\netty-resolver-dns-native-macos\4.1.101.Final\netty-resolver-dns-native-macos-4.1.101.Final-osx-x86_64.jar;D:\work\w\maven\repository\io\netty\netty-resolver-dns-native-macos\4.1.101.Final\netty-resolver-dns-native-macos-4.1.101.Final-osx-aarch_64.jar;D:\work\w\maven\repository\org\antlr\antlr4\4.8\antlr4-4.8.jar;D:\work\w\maven\repository\org\antlr\antlr4-runtime\4.8\antlr4-runtime-4.8.jar;D:\work\w\maven\repository\org\antlr\antlr-runtime\3.5.2\antlr-runtime-3.5.2.jar;D:\work\w\maven\repository\org\antlr\ST4\4.3\ST4-4.3.jar;D:\work\w\maven\repository\org\abego\treelayout\org.abego.treelayout.core\1.0.3\org.abego.treelayout.core-1.0.3.jar;D:\work\w\maven\repository\org\glassfish\javax.json\1.0.4\javax.json-1.0.4.jar;D:\work\w\maven\repository\com\ibm\icu\icu4j\61.1\icu4j-61.1.jar;D:\work\w\maven\repository\com\alibaba\fastjson\1.2.83\fastjson-1.2.83.jar;D:\work\w\maven\repository\com\alibaba\druid\1.2.6\druid-1.2.6.jar;D:\work\w\maven\repository\com\typesafe\config\1.2.1\config-1.2.1.jar;D:\work\w\maven\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\work\w\maven\repository\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\work\w\maven\repository\commons-pool\commons-pool\1.6\commons-pool-1.6.jar;D:\work\w\maven\repository\org\apache\dubbo\extensions\dubbo-filter-seata\1.0.0\dubbo-filter-seata-1.0.0.jar;D:\work\w\maven\repository\io\seata\seata-core\1.5.2\seata-core-1.5.2.jar;D:\work\w\maven\repository\io\seata\seata-common\1.5.2\seata-common-1.5.2.jar;D:\work\w\maven\repository\io\seata\seata-discovery-core\1.5.2\seata-discovery-core-1.5.2.jar;D:\work\w\maven\repository\io\seata\seata-config-core\1.5.2\seata-config-core-1.5.2.jar;D:\work\w\maven\repository\cglib\cglib\3.1\cglib-3.1.jar;D:\work\w\maven\repository\org\ow2\asm\asm\4.2\asm-4.2.jar;D:\work\w\maven\repository\org\apache\dubbo\dubbo\3.0.8\dubbo-3.0.8.jar;D:\work\w\maven\repository\org\javassist\javassist\3.28.0-GA\javassist-3.28.0-GA.jar;D:\work\w\maven\repository\com\google\code\gson\gson\2.9.1\gson-2.9.1.jar;D:\work\w\maven\repository\net\bytebuddy\byte-buddy\1.12.23\byte-buddy-1.12.23.jar;D:\work\w\maven\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\work\w\maven\repository\com\google\guava\guava\27.0.1-jre\guava-27.0.1-jre.jar;D:\work\w\maven\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\work\w\maven\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\work\w\maven\repository\org\checkerframework\checker-qual\2.5.2\checker-qual-2.5.2.jar;D:\work\w\maven\repository\com\google\errorprone\error_prone_annotations\2.2.0\error_prone_annotations-2.2.0.jar;D:\work\w\maven\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;D:\work\w\maven\repository\org\codehaus\mojo\animal-sniffer-annotations\1.17\animal-sniffer-annotations-1.17.jar;D:\work\w\maven\repository\com\github\ben-manes\caffeine\caffeine\2.9.3\caffeine-2.9.3.jar;D:\work\w\maven\repository\com\mysql\mysql-connector-j\8.0.33\mysql-connector-j-8.0.33.jar;D:\work\w\maven\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.2\mybatis-spring-boot-starter-2.2.2.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.18\spring-boot-starter-jdbc-2.7.18.jar;D:\work\w\maven\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\work\w\maven\repository\org\springframework\spring-jdbc\5.3.39\spring-jdbc-5.3.39.jar;D:\work\w\maven\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.2\mybatis-spring-boot-autoconfigure-2.2.2.jar;D:\work\w\maven\repository\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;D:\work\w\maven\repository\org\mybatis\mybatis-spring\2.0.7\mybatis-spring-2.0.7.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.18\spring-boot-starter-data-redis-2.7.18.jar;D:\work\w\maven\repository\org\springframework\data\spring-data-redis\2.7.18\spring-data-redis-2.7.18.jar;D:\work\w\maven\repository\org\springframework\data\spring-data-keyvalue\2.7.18\spring-data-keyvalue-2.7.18.jar;D:\work\w\maven\repository\org\springframework\data\spring-data-commons\2.7.18\spring-data-commons-2.7.18.jar;D:\work\w\maven\repository\org\springframework\spring-tx\5.3.39\spring-tx-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-oxm\5.3.39\spring-oxm-5.3.39.jar;D:\work\w\maven\repository\org\springframework\spring-context-support\5.3.39\spring-context-support-5.3.39.jar;D:\work\w\maven\repository\io\lettuce\lettuce-core\6.1.10.RELEASE\lettuce-core-6.1.10.RELEASE.jar;D:\work\w\maven\repository\io\netty\netty-common\4.1.101.Final\netty-common-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-handler\4.1.101.Final\netty-handler-4.1.101.Final.jar;D:\work\w\maven\repository\io\netty\netty-transport\4.1.101.Final\netty-transport-4.1.101.Final.jar;D:\work\w\maven\repository\io\projectreactor\reactor-core\3.4.34\reactor-core-3.4.34.jar;D:\work\w\maven\repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\zy\project-zy\vue3-cloud-zy\zy25090801\zy-microservice\zy-api\zy-api-order\target\classes;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-starter-loadbalancer\3.1.8\spring-cloud-starter-loadbalancer-3.1.8.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-loadbalancer\3.1.8\spring-cloud-loadbalancer-3.1.8.jar;D:\work\w\maven\repository\io\projectreactor\addons\reactor-extra\3.4.10\reactor-extra-3.4.10.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-cache\2.7.18\spring-boot-starter-cache-2.7.18.jar;D:\work\w\maven\repository\com\stoyanr\evictor\1.0.0\evictor-1.0.0.jar;D:\work\w\maven\repository\com\alibaba\transmittable-thread-local\2.14.4\transmittable-thread-local-2.14.4.jar;D:\work\w\maven\repository\com\github\pagehelper\pagehelper-spring-boot-starter\2.0.0\pagehelper-spring-boot-starter-2.0.0.jar;D:\work\w\maven\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\2.0.0\pagehelper-spring-boot-autoconfigure-2.0.0.jar;D:\work\w\maven\repository\com\github\pagehelper\pagehelper\6.0.0\pagehelper-6.0.0.jar;D:\work\w\maven\repository\com\github\jsqlparser\jsqlparser\4.5\jsqlparser-4.5.jar;D:\work\w\maven\repository\org\springframework\boot\spring-boot-starter-validation\2.7.18\spring-boot-starter-validation-2.7.18.jar;D:\work\w\maven\repository\org\hibernate\validator\hibernate-validator\6.2.5.Final\hibernate-validator-6.2.5.Final.jar;D:\work\w\maven\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\work\w\maven\repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;D:\work\w\maven\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;D:\work\w\maven\repository\com\alibaba\fastjson2\fastjson2\2.0.57\fastjson2-2.0.57.jar;D:\work\w\maven\repository\io\jsonwebtoken\jjwt\0.9.1\jjwt-0.9.1.jar;D:\work\w\maven\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;D:\work\w\maven\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;D:\work\w\maven\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\work\w\maven\repository\commons-io\commons-io\2.19.0\commons-io-2.19.0.jar;D:\work\w\maven\repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;D:\work\w\maven\repository\org\apache\poi\poi\4.1.2\poi-4.1.2.jar;D:\work\w\maven\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\work\w\maven\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;D:\work\w\maven\repository\com\zaxxer\SparseBitSet\1.2\SparseBitSet-1.2.jar;D:\work\w\maven\repository\org\apache\poi\poi-ooxml-schemas\4.1.2\poi-ooxml-schemas-4.1.2.jar;D:\work\w\maven\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;D:\work\w\maven\repository\org\apache\commons\commons-compress\1.19\commons-compress-1.19.jar;D:\work\w\maven\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;D:\work\w\maven\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;D:\work\w\maven\repository\org\springframework\cloud\spring-cloud-starter-bootstrap\3.1.8\spring-cloud-starter-bootstrap-3.1.8.jar com.zy.order.ZyOrderApplication 当前工作目录: D:\zy\project-zy\vue3-cloud-zy\zy25090801\zy-microservice 16:59:55.632 [main] INFO c.a.n.c.e.SearchableProperties - [sortPropertySourceDefaultOrder,197] - properties search order:PROPERTIES->JVM->ENV->DEFAULT_SETTING 16:59:55.695 [background-preinit] INFO o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.5.Final Spring Boot Version: 2.7.18 Spring Application Name: zy-order ███████ ██ ██ ██████ ██████ ██████ ███████ ██████ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███ ████ █████ ██ ██ ██████ ██ ██ █████ ██████ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ██ ██████ ██ ██ ██████ ███████ ██ ██ 16:59:56.383 [main] INFO c.z.o.ZyOrderApplication - [logStartupProfileInfo,632] - No active profile set, falling back to 1 default profile: "default" 16:59:56.632 [main] ERROR o.s.b.SpringApplication - [reportFailure,818] - Application run failed java.lang.IllegalStateException: Unable to read meta-data for class com.zy.api.system.factory.RemoteTestOrdersFallbackFactory at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:237) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getOrder(AutoConfigurationSorter.java:208) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.access$000(AutoConfigurationSorter.java:154) at org.springframework.boot.autoconfigure.AutoConfigurationSorter.lambda$getInPriorityOrder$0(AutoConfigurationSorter.java:63) at java.util.TimSort.countRunAndMakeAscending(TimSort.java:360) at java.util.TimSort.sort(TimSort.java:234) at java.util.Arrays.sort(Arrays.java:1512) at java.util.ArrayList.sort(ArrayList.java:1464) at org.springframework.boot.autoconfigure.AutoConfigurationSorter.getInPriorityOrder(AutoConfigurationSorter.java:62) at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.sortAutoConfigurations(AutoConfigurationImportSelector.java:478) at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.selectImports(AutoConfigurationImportSelector.java:463) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:885) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:812) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:783) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:192) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:756) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:573) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409) at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) at com.zy.order.ZyOrderApplication.main(ZyOrderApplication.java:18) Caused by: java.io.FileNotFoundException: class path resource [com/zy/api/system/factory/RemoteTestOrdersFallbackFactory.class] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:203) at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:55) at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:48) at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103) at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86) at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73) at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81) at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:233) ... 27 common frames omitted 进程已结束,退出代码为 1
最新发布
09-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值