《jdk8u源码分析》jli_util.h

博客围绕jdk8u展开,对src/share/bin/jli_util.h进行源码分析,涉及C语言相关内容,为读者提供了关于该部分源码的C语言参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言参考教程

src/share/bin/jli_util.h

/*
 * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

#ifndef _JLI_UTIL_H
#define _JLI_UTIL_H

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <jni.h>
#define JLDEBUG_ENV_ENTRY "_JAVA_LAUNCHER_DEBUG"

void *JLI_MemAlloc(size_t size);
void *JLI_MemRealloc(void *ptr, size_t size);
char *JLI_StringDup(const char *s1);
void  JLI_MemFree(void *ptr);
int   JLI_StrCCmp(const char *s1, const char* s2);

typedef struct {
    char *arg;
    jboolean has_wildcard;
} StdArg;

StdArg *JLI_GetStdArgs();
int     JLI_GetStdArgc();

//size_t strlen(const char *str)
//计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
#define JLI_StrLen(p1)          strlen((p1))
//char *strchr(const char *str, int c)
//在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。				
#define JLI_StrChr(p1, p2)      strchr((p1), (p2))
//char *strrchr(const char *str, int c)
//在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。	
#define JLI_StrRChr(p1, p2)     strrchr((p1), (p2))
//int strcmp(const char *str1, const char *str2)
//把 str1 所指向的字符串和 str2 所指向的字符串进行比较。区分大小写
//两个字符串的每个字符从左到右依此按照对应的ascii码值大小进行比较,
//若两字符对应的ascii码值相等,继续比较直到出现不同的字符或者遇到串尾标志符'\0'为止。
#define JLI_StrCmp(p1, p2)      strcmp((p1), (p2))
//int strncmp(const char *str1, const char *str2, size_t n)
//把 str1 和 str2 进行比较,最多比较前 n 个字节。
#define JLI_StrNCmp(p1, p2, p3) strncmp((p1), (p2), (p3))
//char *strcat(char *dest, const char *src)
//把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
#define JLI_StrCat(p1, p2)      strcat((p1), (p2))
//char *strcpy(char *dest, const char *src)
//把 src 所指向的字符串复制到 dest。
#define JLI_StrCpy(p1, p2)      strcpy((p1), (p2))
//char *strncpy(char *dest, const char *src, size_t n)
//把 src 所指向的字符串复制到 dest,最多复制 n 个字符。
#define JLI_StrNCpy(p1, p2, p3) strncpy((p1), (p2), (p3))
//char *strstr(const char *haystack, const char *needle)
//在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。
#define JLI_StrStr(p1, p2)      strstr((p1), (p2))
//size_t strspn(const char *str1, const char *str2)
//检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标。
//从参数 str1 字符串的开头计算**连续**的字符,而这些字符都完全是 accept 所指字符串中的字符。
//简单的说,若 strspn() 返回的数值为n,则代表字符串 str 开头连续有 n 个字符都是属于字符串 accept 内的字符。
#define JLI_StrSpn(p1, p2)      strspn((p1), (p2))
//size_t strcspn(const char *str1, const char *str2)
//检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。
#define JLI_StrCSpn(p1, p2)     strcspn((p1), (p2))
//char *strpbrk(const char *str1, const char *str2)
//检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。
//也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。
#define JLI_StrPBrk(p1, p2)     strpbrk((p1), (p2))
//char *strtok(char *str, const char *delim)
//分解字符串 str 为一组字符串,delim 为分隔符。
#define JLI_StrTok(p1, p2)      strtok((p1), (p2))

/* On Windows lseek() is in io.h rather than the location dictated by POSIX. */
#ifdef _WIN32
#include <windows.h>
#include <io.h>
#include <process.h>
//比较字符串p1,p2,不区分大小写
#define JLI_StrCaseCmp(p1, p2)          stricmp((p1), (p2))
//比较字符串p1,p2,最多比较前p3个字节,不区分大小写
#define JLI_StrNCaseCmp(p1, p2, p3)     strnicmp((p1), (p2), (p3))
int  JLI_Snprintf(char *buffer, size_t size, const char *format, ...);
void JLI_CmdToArgs(char *cmdline);
//_lseeki64(fd, pos, SEEK_SET) 从文件开头移动pos位置,并返回在64位整数的偏移量
#define JLI_Lseek                       _lseeki64
//int _putenv(const char *envstring)
//创建一个新的环境变量,以及修改或删除一个已存在的环境变量。对环境变量名称的大小写不敏感。
//执行成功则返回0, 有错误发生则返回-1.
#define JLI_PutEnv                      _putenv
//int _getpid(void) 用来取得目前进程的进程ID
#define JLI_GetPid                      _getpid
#else  /* NIXES */
#include <unistd.h>
#include <strings.h>
//比较字符串p1,p2,不区分大小写
#define JLI_StrCaseCmp(p1, p2)          strcasecmp((p1), (p2))
//比较字符串p1,p2,最多比较前p3个字节,不区分大小写
#define JLI_StrNCaseCmp(p1, p2, p3)     strncasecmp((p1), (p2), (p3))
//int snprintf(char *str, size_t size, const char *format, ...)
//将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中。
#define JLI_Snprintf                    snprintf
//int putenv(char *envvar)
//用来改变或增加环境变量的内容。参数envvar的格式为envvar=value,如果该环境变量原先存在,则变量内容会依参数envvar改变,否则此参数内容会成为新的环境变量。
#define JLI_PutEnv                      putenv
//pid_t getpid(void)
//用来取得目前进程的进程ID,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。
#define JLI_GetPid                      getpid
//off_t lseek(int fd, off_t offset, int whence)
//重新定位读/写文件偏移量,fd是要操作的文件描述符,offset指定文件操作指针的偏移量(读和写使用的是同一个文件操作指针)
//whence指定移动文件操作指针的参考点。这个参数通常取值为以下宏:
//SEEK_SET:表示相对文件起始位置。
//SEEK_CUR:表示相对文件操作指针当前位置。
//SEEK_END:表示相对文件结束位置。
#ifdef __solaris__
#define JLI_Lseek                       llseek							
#endif
#ifdef __linux__
#define _LARGFILE64_SOURCE
//lseek64是_llseek的包装函数,可以简便的在代码中完成跳转。不过在使用前需要定义宏_LARGEFILE64_SOURCE
#define JLI_Lseek                       lseek64
#endif
#ifdef MACOSX
#define JLI_Lseek                       lseek
#endif
#ifdef _AIX
#define JLI_Lseek                       lseek
#endif
#endif /* _WIN32 */

/*
 * Make launcher spit debug output.
 */
void     JLI_TraceLauncher(const char* fmt, ...);
void     JLI_SetTraceLauncher();
jboolean JLI_IsTraceLauncher();

#endif  /* _JLI_UTIL_H */
G:\jdk\bin\java.exe -Dspring.application.name=ecust-custom-api-li -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:G:\2025.1\IntelliJ IDEA 2025.1\lib\idea_rt.jar=56586" -Dfile.encoding=UTF-8 -classpath C:\Users\Administrator\AppData\Local\Temp\classpath458130718.jar com.ruoyi.customApi.OuchnCustomApiApplication 19:27:39.566 [background-preinit] INFO o.h.v.i.util.Version - [<clinit>,21] - HV000001: Hibernate Validator 6.2.3.Final 19:27:39.825 [main] INFO c.u.j.c.EnableEncryptablePropertiesBeanFactoryPostProcessor - [postProcessBeanFactory,40] - Post-processing PropertySource instances 19:27:39.825 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,76] - Skipping PropertySource configurationProperties [class org.springframework.boot.context.properties.source.ConfigurationPropertySourcesPropertySource 19:27:39.827 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource bootstrap [org.springframework.core.env.MapPropertySource] to EncryptableMapPropertySourceWrapper 19:27:39.827 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource systemProperties [org.springframework.core.env.PropertiesPropertySource] to EncryptableMapPropertySourceWrapper 19:27:39.827 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource systemEnvironment [org.springframework.boot.env.SystemEnvironmentPropertySourceEnvironmentPostProcessor$OriginAwareSystemEnvironmentPropertySource] to EncryptableSystemEnvironmentPropertySourceWrapper 19:27:39.828 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource random [org.springframework.boot.env.RandomValuePropertySource] to EncryptablePropertySourceWrapper 19:27:39.828 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource cachedrandom [org.springframework.cloud.util.random.CachedRandomPropertySource] to EncryptablePropertySourceWrapper 19:27:39.828 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource springCloudClientHostInfo [org.springframework.core.env.MapPropertySource] to EncryptableMapPropertySourceWrapper 19:27:39.828 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource Config resource 'class path resource [bootstrap.yml]' via location 'optional:classpath:/' [org.springframework.boot.env.OriginTrackedMapPropertySource] to EncryptableMapPropertySourceWrapper 19:27:39.854 [main] INFO c.u.j.f.DefaultLazyPropertyFilter - [lambda$new$2,31] - Property Filter custom Bean not found with name 'encryptablePropertyFilter'. Initializing Default Property Filter 19:27:39.864 [main] INFO c.u.j.r.DefaultLazyPropertyResolver - [lambda$new$2,35] - Property Resolver custom Bean not found with name 'encryptablePropertyResolver'. Initializing Default Property Resolver 19:27:39.865 [main] INFO c.u.j.d.DefaultLazyPropertyDetector - [lambda$new$2,35] - Property Detector custom Bean not found with name 'encryptablePropertyDetector'. Initializing Default Property Detector Spring Boot Version: 2.6.6 Spring Application Name: ecust-custom-api-li _ _ (_) | | _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ | '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ | | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | |_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| __/ | __/ | |___/ |___/ 19:27:40.172 [main] INFO c.a.n.c.r.client - [lambda$createClient$0,80] - [RpcClientFactory] create a new rpc client of 10025a0f-383b-4399-95f8-7c31d45f15a5_config-0 19:27:40.196 [main] INFO o.r.Reflections - [scan,232] - Reflections took 15 ms to scan 1 urls, producing 3 keys and 6 values 19:27:40.212 [main] INFO o.r.Reflections - [scan,232] - Reflections took 8 ms to scan 1 urls, producing 4 keys and 9 values 19:27:40.220 [main] INFO o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 1 urls, producing 3 keys and 10 values 19:27:40.230 [main] INFO o.r.Reflections - [scan,232] - Reflections took 8 ms to scan 14 urls, producing 0 keys and 0 values 19:27:40.237 [main] INFO o.r.Reflections - [scan,232] - Reflections took 6 ms to scan 1 urls, producing 1 keys and 5 values 19:27:40.246 [main] INFO o.r.Reflections - [scan,232] - Reflections took 7 ms to scan 1 urls, producing 1 keys and 7 values 19:27:40.258 [main] INFO o.r.Reflections - [scan,232] - Reflections took 10 ms to scan 1 urls, producing 2 keys and 8 values 19:27:40.268 [main] INFO o.r.Reflections - [scan,232] - Reflections took 9 ms to scan 14 urls, producing 0 keys and 0 values 19:27:40.269 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] RpcClient init label, labels = {module=config, Vipserver-Tag=null, source=sdk, Amory-Tag=null, Location-Tag=null, taskId=0, AppName=unknown} 19:27:40.269 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$382/1412656257 19:27:40.270 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Register server push request handler:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$$Lambda$383/358019805 19:27:40.270 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Registry connection listener to current client:com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$1 19:27:40.270 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] RpcClient init, ServerListFactory = com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient$2 19:27:40.276 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Try to connect to server on start up, server: {serverIp = '124.133.23.84', server main port = 18848} 19:27:40.789 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Success to connect to server [124.133.23.84:18848] on start up, connectionId = 1751282860784_192.168.1.189_55988 19:27:40.790 [com.alibaba.nacos.client.remote.worker] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Notify connected event to listeners. 19:27:40.790 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler 19:27:40.791 [main] INFO c.a.n.c.r.client - [printIfInfoEnabled,60] - [10025a0f-383b-4399-95f8-7c31d45f15a5_config-0] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$391/193625667 19:27:40.818 [main] ERROR c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,101] - get data from Nacos error,dataId:application-dev.yml com.alibaba.nacos.api.exception.NacosException: http error, code=403,msg=authorization failed!,dataId=application-dev.yml,group=DEFAULT_GROUP,tenant=lichao at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.queryConfig(ClientWorker.java:979) at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:397) at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:166) at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:94) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData(NacosPropertySourceBuilder.java:85) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.build(NacosPropertySourceBuilder.java:73) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosPropertySource(NacosPropertySourceLocator.java:199) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosDataIfPresent(NacosPropertySourceLocator.java:186) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosConfiguration(NacosPropertySourceLocator.java:158) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadSharedConfiguration(NacosPropertySourceLocator.java:116) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:101) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:51) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:47) at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:95) at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:613) at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:381) at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) at com.ruoyi.customApi.OuchnCustomApiApplication.main(OuchnCustomApiApplication.java:33) 19:27:40.823 [main] ERROR c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,101] - get data from Nacos error,dataId:ecust-custom-api com.alibaba.nacos.api.exception.NacosException: http error, code=403,msg=authorization failed!,dataId=ecust-custom-api,group=DEFAULT_GROUP,tenant=lichao at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.queryConfig(ClientWorker.java:979) at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:397) at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:166) at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:94) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData(NacosPropertySourceBuilder.java:85) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.build(NacosPropertySourceBuilder.java:73) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosPropertySource(NacosPropertySourceLocator.java:199) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosDataIfPresent(NacosPropertySourceLocator.java:186) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadApplicationConfiguration(NacosPropertySourceLocator.java:141) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:103) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:51) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:47) at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:95) at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:613) at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:381) at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) at com.ruoyi.customApi.OuchnCustomApiApplication.main(OuchnCustomApiApplication.java:33) 19:27:40.826 [main] ERROR c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,101] - get data from Nacos error,dataId:ecust-custom-api.yml com.alibaba.nacos.api.exception.NacosException: http error, code=403,msg=authorization failed!,dataId=ecust-custom-api.yml,group=DEFAULT_GROUP,tenant=lichao at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.queryConfig(ClientWorker.java:979) at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:397) at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:166) at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:94) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData(NacosPropertySourceBuilder.java:85) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.build(NacosPropertySourceBuilder.java:73) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosPropertySource(NacosPropertySourceLocator.java:199) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosDataIfPresent(NacosPropertySourceLocator.java:186) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadApplicationConfiguration(NacosPropertySourceLocator.java:144) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:103) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:51) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:47) at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:95) at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:613) at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:381) at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) at com.ruoyi.customApi.OuchnCustomApiApplication.main(OuchnCustomApiApplication.java:33) 19:27:40.830 [main] ERROR c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,101] - get data from Nacos error,dataId:ecust-custom-api-dev.yml com.alibaba.nacos.api.exception.NacosException: http error, code=403,msg=authorization failed!,dataId=ecust-custom-api-dev.yml,group=DEFAULT_GROUP,tenant=lichao at com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient.queryConfig(ClientWorker.java:979) at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:397) at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:166) at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:94) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData(NacosPropertySourceBuilder.java:85) at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.build(NacosPropertySourceBuilder.java:73) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosPropertySource(NacosPropertySourceLocator.java:199) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosDataIfPresent(NacosPropertySourceLocator.java:186) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadApplicationConfiguration(NacosPropertySourceLocator.java:149) at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:103) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:51) at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:47) at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:95) at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:613) at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:381) at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) at com.ruoyi.customApi.OuchnCustomApiApplication.main(OuchnCustomApiApplication.java:33) 19:27:40.833 [main] INFO c.r.c.OuchnCustomApiApplication - [logStartupProfileInfo,646] - The following 1 profile is active: "dev" 19:27:42.183 [main] INFO c.u.j.c.EnableEncryptablePropertiesBeanFactoryPostProcessor - [postProcessBeanFactory,40] - Post-processing PropertySource instances 19:27:42.183 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource bootstrapProperties-ecust-custom-api-dev.yml,DEFAULT_GROUP [org.springframework.cloud.bootstrap.config.BootstrapPropertySource] to EncryptableEnumerablePropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource bootstrapProperties-ecust-custom-api.yml,DEFAULT_GROUP [org.springframework.cloud.bootstrap.config.BootstrapPropertySource] to EncryptableEnumerablePropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource bootstrapProperties-ecust-custom-api,DEFAULT_GROUP [org.springframework.cloud.bootstrap.config.BootstrapPropertySource] to EncryptableEnumerablePropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource bootstrapProperties-application-dev.yml,DEFAULT_GROUP [org.springframework.cloud.bootstrap.config.BootstrapPropertySource] to EncryptableEnumerablePropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,76] - Skipping PropertySource configurationProperties [class org.springframework.boot.context.properties.source.ConfigurationPropertySourcesPropertySource 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,76] - Skipping PropertySource servletConfigInitParams [class org.springframework.core.env.PropertySource$StubPropertySource 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,76] - Skipping PropertySource servletContextInitParams [class org.springframework.core.env.PropertySource$StubPropertySource 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource systemProperties [org.springframework.core.env.PropertiesPropertySource] to EncryptableMapPropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource systemEnvironment [org.springframework.boot.env.SystemEnvironmentPropertySourceEnvironmentPostProcessor$OriginAwareSystemEnvironmentPropertySource] to EncryptableSystemEnvironmentPropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource random [org.springframework.boot.env.RandomValuePropertySource] to EncryptablePropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource cachedrandom [org.springframework.cloud.util.random.CachedRandomPropertySource] to EncryptablePropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource springCloudClientHostInfo [org.springframework.core.env.MapPropertySource] to EncryptableMapPropertySourceWrapper 19:27:42.184 [main] INFO c.u.j.EncryptablePropertySourceConverter - [makeEncryptable,81] - Converting PropertySource springCloudDefaultProperties [org.springframework.core.env.MapPropertySource] to EncryptableMapPropertySourceWrapper 19:27:42.263 [main] INFO i.s.s.b.a.SeataAutoConfiguration - [globalTransactionScanner,65] - Automatically configure Seata 19:27:42.263 [main] INFO c.u.j.f.DefaultLazyPropertyFilter - [lambda$new$2,31] - Property Filter custom Bean not found with name 'encryptablePropertyFilter'. Initializing Default Property Filter 19:27:42.268 [main] INFO c.u.j.r.DefaultLazyPropertyResolver - [lambda$new$2,35] - Property Resolver custom Bean not found with name 'encryptablePropertyResolver'. Initializing Default Property Resolver 19:27:42.268 [main] INFO c.u.j.d.DefaultLazyPropertyDetector - [lambda$new$2,35] - Property Detector custom Bean not found with name 'encryptablePropertyDetector'. Initializing Default Property Detector 19:27:42.299 [main] INFO i.s.c.ConfigurationFactory - [<clinit>,65] - load Configuration:FileConfiguration$$EnhancerByCGLIB$$862af1eb 19:27:42.306 [main] INFO i.s.c.ConfigurationFactory - [buildConfiguration,123] - load Configuration:FileConfiguration$$EnhancerByCGLIB$$862af1eb 19:27:42.337 [main] INFO i.s.s.a.GlobalTransactionScanner - [initClient,164] - Initializing Global Transaction Clients ... 19:27:42.372 [main] INFO i.s.c.r.n.NettyClientBootstrap - [start,147] - NettyClientBootstrap has started 19:27:42.372 [main] INFO i.s.s.a.GlobalTransactionScanner - [initClient,172] - Transaction Manager Client is initialized. applicationId[ecust-custom-api-li] txServiceGroup[ecust-custom-api-li-seata-service-group] 19:27:42.378 [main] INFO i.s.r.d.AsyncWorker - [init,125] - Async Commit Buffer Limit: 10000 19:27:42.378 [main] INFO i.s.r.d.x.ResourceManagerXA - [init,40] - ResourceManagerXA init ... 19:27:42.382 [main] INFO i.s.c.r.n.NettyClientBootstrap - [start,147] - NettyClientBootstrap has started 19:27:42.382 [main] INFO i.s.s.a.GlobalTransactionScanner - [initClient,177] - Resource Manager is initialized. applicationId[ecust-custom-api-li] txServiceGroup[ecust-custom-api-li-seata-service-group] 19:27:42.382 [main] INFO i.s.s.a.GlobalTransactionScanner - [initClient,181] - Global Transaction Clients are initialized. 19:27:42.900 [main] INFO o.a.c.c.AprLifecycleListener - [log,173] - Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.4]. 19:27:42.900 [main] INFO o.a.c.c.AprLifecycleListener - [log,173] - APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true]. 19:27:42.900 [main] INFO o.a.c.c.AprLifecycleListener - [log,173] - APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 19:27:42.904 [main] INFO o.a.c.c.AprLifecycleListener - [log,173] - OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024] 19:27:42.912 [main] INFO o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-9205"] 19:27:42.913 [main] INFO o.a.c.c.StandardService - [log,173] - Starting service [Tomcat] 19:27:42.913 [main] INFO o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.60] 19:27:42.992 [main] INFO o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext 19:27:43.146 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - [refresh,591] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redissonConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.redis.host' in value "${spring.redis.host}" 19:27:43.149 [main] INFO o.a.c.c.StandardService - [log,173] - Stopping service [Tomcat] 19:27:43.185 [main] ERROR o.s.b.SpringApplication - [reportFailure,830] - Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redissonConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.redis.host' in value "${spring.redis.host}" at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:405) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) at com.ruoyi.customApi.OuchnCustomApiApplication.main(OuchnCustomApiApplication.java:33) Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.redis.host' in value "${spring.redis.host}" at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:191) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:936) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1330) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ... 17 common frames omitted 19:27:43.186 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] - [HttpClientBeanHolder] Start destroying common HttpClient 19:27:43.186 [Thread-11] WARN c.a.n.c.n.NotifyCenter - [shutdown,136] - [NotifyCenter] Start destroying Publisher 19:27:43.186 [Thread-11] WARN c.a.n.c.n.NotifyCenter - [shutdown,153] - [NotifyCenter] Destruction of the end 19:27:43.186 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] - [HttpClientBeanHolder] Destruction of the end
最新发布
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值