Java qbit boon反映ClassCastException:[B与[C]不兼容
我第一次尝试使用qbit(),我必须手动处理所有依赖项(不能使用maven等) 我得到以下例外情况:Java qbit boon反映ClassCastException:[B与[C]不兼容,java,boon,Java,Boon,我第一次尝试使用qbit(),我必须手动处理所有依赖项(不能使用maven等) 我得到以下例外情况: Exception in thread "main" java.lang.ExceptionInInitializerError at java.base/java.lang.J9VMInternals.ensureError(J9VMInternals.java:186) at java.base/java.lang.J9VMInternals.recordInitiali
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/java.lang.J9VMInternals.ensureError(J9VMInternals.java:186)
at java.base/java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:175)
at io.advantageous.boon.core.reflection.Reflection.<clinit>(Reflection.java:114)
at io.advantageous.boon.core.reflection.ClassMeta.classMeta(ClassMeta.java:271)
at io.advantageous.qbit.QBit.registerReflectionAndJsonParser(QBit.java:68)
at io.advantageous.qbit.QBit.doGetFactory(QBit.java:57)
at io.advantageous.qbit.QBit.factory(QBit.java:45)
at io.advantageous.qbit.http.server.HttpServerBuilder.getFactory(HttpServerBuilder.java:136)
at io.advantageous.qbit.http.server.HttpServerBuilder.build(HttpServerBuilder.java:236)
at com.myapp.main(App.java:92)
Caused by: java.lang.ClassCastException: [B incompatible with [C
at
io.advantageous.boon.core.reflection.FastStringUtils$StringImplementation$1.toCharArray (FastStringUtils.java:93)
at io.advantageous.boon.core.reflection.FastStringUtils.toCharArray(FastStringUtils.java:178)
at io.advantageous.boon.core.Str.underBarCase(Str.java:538)
at io.advantageous.boon.core.Sys.sysProp(Sys.java:329)
at io.advantageous.boon.core.timer.TimeKeeperBasic.<init>(TimeKeeperBasic.java:52)
at io.advantageous.boon.core.Sys.<clinit>(Sys.java:171)
... 9 more
线程“main”java.lang.ExceptionInInitializeError中的异常
位于java.base/java.lang.J9VMInternals.ensureError(J9VMInternals.java:186)
在java.base/java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:175)中
在io.advantive.boon.core.reflection.reflection.(reflection.java:114)
位于io.advantive.boon.core.reflection.ClassMeta.ClassMeta(ClassMeta.java:271)
在io.Advantible.qbit.qbit.registerReflectionAndJsonParser(qbit.java:68)上
位于io.advantive.qbit.qbit.doGetFactory(qbit.java:57)
在io.advantive.qbit.qbit.factory(qbit.java:45)
位于io.advantive.qbit.http.server.HttpServerBuilder.getFactory(HttpServerBuilder.java:136)
http.server.HttpServerBuilder.build(HttpServerBuilder.java:236)
位于com.myapp.main(App.java:92)
原因:java.lang.ClassCastException:[B与[C]不兼容
在
FastStringUtils$StringImplementation$1.ToCharray(FastStringUtils.java:93)
在io.advantive.boon.core.reflection.FastStringUtils.tocharray(FastStringUtils.java:178)
位于io.advantive.boon.core.Str.underBarCase(Str.java:538)
位于io.advantive.boon.core.Sys.sysProp(Sys.java:329)
在io.advantive.boon.core.timer.TimeKeeperBasic.(TimeKeeperBasic.java:52)
在io.advantive.boon.core.Sys.(Sys.java:171)
…还有9个
我添加的jar文件的依赖项如下:
- qbit-core-2.0.0.jar
- qbit-web-0.8.18.jar——我也尝试过不包括这个,但这两种方式似乎都没有区别
- boon-reflekt-0.6.6.jar
- 反应流-1.0.0.jar
- boon-json-0.6.6.jar
- metrik-0.1.0.jar
- slf4j-api-1.7.30.jar
- 策展人-配方-4.2.0.jar
- 馆长-x-discovery-4.2.0.jar
- org.json.jar(不确定我有哪个版本,但jar是2017年9月18日发布的)
有人能告诉我我遗漏了什么吗?qbit的maven链接是:问题是,您使用的是Java 9+,而Java 9+的boon依赖项尚未更新。该库中的
FastStringUtils
类进行了一些反射性黑客攻击,以访问字符串
类的内部字段,但是在Java 9中,String
的内部字段发生了更改
2015年11月针对这一问题开放,五年后仍然开放
解决方法是在Java 8中运行应用程序,或者使用系统属性io.Advantible.boon.faststringutils.disable
设置为true
,运行项目。可以通过添加命令行参数-Dio.Advantible.boon.faststringutils.disable=true
或添加行
System.setProperty(“io.advantible.boon.faststringutils.disable”、“true”);
在调用
build()之前,调用App
类的main
方法
方法显示在stacktrace中。问题在于,您正在使用Java 9+,而Java 9+的boon依赖项尚未更新。此库中的FastStringUtils
类进行了一些反射性黑客攻击,以访问String
类的内部字段,但String
类的内部字段用Java9编写ged
2015年11月针对这一问题开放,五年后仍然开放
解决方法是在Java 8中运行应用程序,或者使用系统属性io.Advantible.boon.faststringutils.disable
设置为true
,运行项目。可以通过添加命令行参数-Dio.Advantible.boon.faststringutils.disable=true
或添加行
System.setProperty(“io.advantible.boon.faststringutils.disable”、“true”);
在调用stacktrace中显示的build()
方法之前,调用App
类的main
方法