登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
2025 Gitee 年度开源项目评选投票进行中,快为你的心仪项目助力!
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
1
Star
6
Fork
4
OpenSolon
/
solon-native-example
代码
Issues
3
Wiki
统计
流水线
服务
JavaDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
native构建问题请教
待办的
#ICLH40
walter
创建于
2025-07-10 17:10
# 问题: 执行命令mvn -Pnative native:compile之后一直报异常:Error: The class io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess has already been initialized (from command line with 'io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess'); it is too late to register io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess for build-time initialization. io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField caused initialization of this class with the following trace: at io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess.<clinit>(UnsafeAccess.java:44) at io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField.<clinit>(MpscUnpaddedArrayQueue.java:38) # RuntimeNativeRegistrarImpl ``` java @Component public class RuntimeNativeRegistrarImpl implements RuntimeNativeRegistrar { @Override public void register(AppContext context, RuntimeNativeMetadata metadata) { metadata.registerAllDeclaredMethod(MpscUnpaddedArrayQueue.class, ExecutableMode.INVOKE); metadata.registerAllDeclaredMethod(MpscUnpaddedArrayQueue.class, ExecutableMode.INTROSPECT); metadata.registerReflection(MpscUnpaddedArrayQueue.class, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.DECLARED_FIELDS, MemberCategory.PUBLIC_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.PUBLIC_CLASSES); metadata.registerAllDeclaredMethod(UnsafeAccess.class, ExecutableMode.INVOKE); metadata.registerAllDeclaredMethod(UnsafeAccess.class, ExecutableMode.INTROSPECT); metadata.registerReflection(UnsafeAccess.class, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.DECLARED_FIELDS, MemberCategory.PUBLIC_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.PUBLIC_CLASSES); } } ``` # maven依赖: ``` <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.noear</groupId> <artifactId>solon-parent</artifactId> <version>3.3.3</version> <relativePath/> </parent> <groupId>com.walter</groupId> <artifactId>video</artifactId> <version>0.0.1-SNAPSHOT</version> <name>video</name> <description>video</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>21</java.version> <hutool.version>5.8.39</hutool.version> <netty.version>4.2.2.Final</netty.version> </properties> <repositories> <repository> <id>public</id> <name>aliyun nexus</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>oss-aliyun-solon-plugin</id> <url>https://gitee.com/gitwcx/oss-aliyun-solon-plugin/raw/master/release/</url> </repository> </repositories> <dependencyManagement> <dependencies> <!-- https://mvnrepository.com/artifact/org.noear/solon-health --> <dependency> <groupId>org.noear</groupId> <artifactId>solon-health</artifactId> <version>3.3.3</version> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty-common --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-resolver</artifactId> <version>${netty.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.noear</groupId> <artifactId>solon-security-validation</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-ai</artifactId> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-http</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-json</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-db</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-captcha</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-crypto</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-web</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-web-cors</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-scheduling-quartz</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <!--HikariDataSources--> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.noear/solon-sessionstate-redisson --> <dependency> <groupId>org.noear</groupId> <artifactId>solon-sessionstate-redisson</artifactId> <version>3.4.0-M2</version> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-aot</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-logging-logback</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.redisson/redisson --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.50.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <artifactId>byte-buddy</artifactId> <groupId>net.bytebuddy</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-configuration-processor</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.40.82.ALL</version> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>aliyun-oss-solon-cloud-plugin</artifactId> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba.nls/nls-sdk-tts --> <dependency> <groupId>com.alibaba.nls</groupId> <artifactId>nls-sdk-tts</artifactId> <version>2.2.18</version> </dependency> <dependency> <groupId>org.dromara.solon-plugins</groupId> <artifactId>mapstruct-plus-solon-plugin</artifactId> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <configuration> <mainClass>com.walter.video.Application</mainClass> <buildArgs> <buildArg>--initialize-at-run-time=io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess,io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField</buildArg> <buildArg>--trace-class-initialization=io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess</buildArg> </buildArgs> </configuration> </plugin> <plugin> <groupId>org.noear</groupId> <artifactId>solon-maven-plugin</artifactId> <executions> <execution> <id>process-aot</id> <goals> <goal>process-aot</goal> </goals> </execution> </executions> </plugin> <!-- <plugin>--> <!-- <groupId>org.apache.maven.plugins</groupId>--> <!-- <artifactId>maven-jar-plugin</artifactId>--> <!-- <version>3.4.2</version>--> <!-- <configuration>--> <!-- <excludes>--> <!-- <exclude>bgm/**</exclude>--> <!-- <exclude>fonts/**</exclude>--> <!-- </excludes>--> <!-- </configuration>--> <!-- </plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.3</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <path> <groupId>io.github.linpeilie</groupId> <artifactId>mapstruct-plus-processor</artifactId> <version>1.4.8</version> </path> </annotationProcessorPaths> <compilerArgs> <arg> -Amapstruct.defaultComponentModel=solon </arg> </compilerArgs> </configuration> </plugin> </plugins> </build> </project> ```
# 问题: 执行命令mvn -Pnative native:compile之后一直报异常:Error: The class io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess has already been initialized (from command line with 'io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess'); it is too late to register io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess for build-time initialization. io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField caused initialization of this class with the following trace: at io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess.<clinit>(UnsafeAccess.java:44) at io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField.<clinit>(MpscUnpaddedArrayQueue.java:38) # RuntimeNativeRegistrarImpl ``` java @Component public class RuntimeNativeRegistrarImpl implements RuntimeNativeRegistrar { @Override public void register(AppContext context, RuntimeNativeMetadata metadata) { metadata.registerAllDeclaredMethod(MpscUnpaddedArrayQueue.class, ExecutableMode.INVOKE); metadata.registerAllDeclaredMethod(MpscUnpaddedArrayQueue.class, ExecutableMode.INTROSPECT); metadata.registerReflection(MpscUnpaddedArrayQueue.class, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.DECLARED_FIELDS, MemberCategory.PUBLIC_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.PUBLIC_CLASSES); metadata.registerAllDeclaredMethod(UnsafeAccess.class, ExecutableMode.INVOKE); metadata.registerAllDeclaredMethod(UnsafeAccess.class, ExecutableMode.INTROSPECT); metadata.registerReflection(UnsafeAccess.class, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.DECLARED_FIELDS, MemberCategory.PUBLIC_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.PUBLIC_CLASSES); } } ``` # maven依赖: ``` <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.noear</groupId> <artifactId>solon-parent</artifactId> <version>3.3.3</version> <relativePath/> </parent> <groupId>com.walter</groupId> <artifactId>video</artifactId> <version>0.0.1-SNAPSHOT</version> <name>video</name> <description>video</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>21</java.version> <hutool.version>5.8.39</hutool.version> <netty.version>4.2.2.Final</netty.version> </properties> <repositories> <repository> <id>public</id> <name>aliyun nexus</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>oss-aliyun-solon-plugin</id> <url>https://gitee.com/gitwcx/oss-aliyun-solon-plugin/raw/master/release/</url> </repository> </repositories> <dependencyManagement> <dependencies> <!-- https://mvnrepository.com/artifact/org.noear/solon-health --> <dependency> <groupId>org.noear</groupId> <artifactId>solon-health</artifactId> <version>3.3.3</version> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty-common --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-resolver</artifactId> <version>${netty.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.noear</groupId> <artifactId>solon-security-validation</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-ai</artifactId> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-http</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-json</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-db</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-captcha</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-crypto</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-web</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-web-cors</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-scheduling-quartz</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> <!--HikariDataSources--> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.noear/solon-sessionstate-redisson --> <dependency> <groupId>org.noear</groupId> <artifactId>solon-sessionstate-redisson</artifactId> <version>3.4.0-M2</version> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-aot</artifactId> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-logging-logback</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.redisson/redisson --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.50.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <artifactId>byte-buddy</artifactId> <groupId>net.bytebuddy</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>solon-configuration-processor</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.40.82.ALL</version> </dependency> <dependency> <groupId>org.noear</groupId> <artifactId>aliyun-oss-solon-cloud-plugin</artifactId> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba.nls/nls-sdk-tts --> <dependency> <groupId>com.alibaba.nls</groupId> <artifactId>nls-sdk-tts</artifactId> <version>2.2.18</version> </dependency> <dependency> <groupId>org.dromara.solon-plugins</groupId> <artifactId>mapstruct-plus-solon-plugin</artifactId> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <configuration> <mainClass>com.walter.video.Application</mainClass> <buildArgs> <buildArg>--initialize-at-run-time=io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess,io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField</buildArg> <buildArg>--trace-class-initialization=io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess</buildArg> </buildArgs> </configuration> </plugin> <plugin> <groupId>org.noear</groupId> <artifactId>solon-maven-plugin</artifactId> <executions> <execution> <id>process-aot</id> <goals> <goal>process-aot</goal> </goals> </execution> </executions> </plugin> <!-- <plugin>--> <!-- <groupId>org.apache.maven.plugins</groupId>--> <!-- <artifactId>maven-jar-plugin</artifactId>--> <!-- <version>3.4.2</version>--> <!-- <configuration>--> <!-- <excludes>--> <!-- <exclude>bgm/**</exclude>--> <!-- <exclude>fonts/**</exclude>--> <!-- </excludes>--> <!-- </configuration>--> <!-- </plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.3</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <path> <groupId>io.github.linpeilie</groupId> <artifactId>mapstruct-plus-processor</artifactId> <version>1.4.8</version> </path> </annotationProcessorPaths> <compilerArgs> <arg> -Amapstruct.defaultComponentModel=solon </arg> </compilerArgs> </configuration> </plugin> </plugins> </build> </project> ```
评论 (
1
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
未关联
master
dubbo
multi-module
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
Java
1
https://gitee.com/opensolon/solon-native-example.git
git@gitee.com:opensolon/solon-native-example.git
opensolon
solon-native-example
solon-native-example
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册