Closed o174110 closed 3 years ago
你是怎么打包的?你应该使用Springboot打包插件,不论是否使用了springboot环境
我一开始是使用文档里面说明的Springboot打包,但是部署运行后报错好像是找不到里面引用jar包具体错误也看不太懂,现在就用idea自带的build artifacts打成jar包
用idea自帶build,那么你可能需要将所有的依赖jar全部分离为独立文件放在mainJar的同级目录,而不能是fastJar。 否则你需要使用Springboot打包插件。
刚刚又试了一下mvn package 部署抛出错误 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at scfinternal.EventHandlerLoader$BaseMethodRequestHandler.handlerRequest(EventHandlerLoader.java:230)
at bootstrap.eventInvoke(bootstrap.java:168)
Caused by: java.lang.NoClassDefFoundError: love/forte/simbot/core/SimbotApp
at love.simbot.example.SimbotExampleApplication.mainHandler(SimbotExampleApplication.java:35)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more
java.lang.reflect.InvocationTargetException
at scfinternal.EventHandlerLoader$BaseMethodRequestHandler.handlerRequest(EventHandlerLoader.java:240)
Caused by: java.lang.NoClassDefFoundError: love/forte/simbot/core/SimbotApp
at love.simbot.example.SimbotExampleApplication.mainHandler(SimbotExampleApplication.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Caused by: java.lang.ClassNotFoundException: love.forte.simbot.core.SimbotApp
ERROR RequestId:159a01c8-04f1-433f-a356-7db91e8f1059 Result:{"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"java.lang.reflect.InvocationTargetException","statusCode":430} 我只是个小菜鸟 开发经验不足 跟您请教一下
这是用mvn package 打的jar包运行的 云函数只抛出了这么一点异常代码
提供你完整的pom,以及项目树结构。截图也可以
基本上代码上没有修改,想着部署成功了再继续写其他业务,idea爆红,但是实际是可以运行成功的
你并没有 love/forte/simbot/core/SimbotApp
这个类。但是你打包的时候很有可能指定的main class
是这个类,改成你真正的main
所在类。
云函数部署的时候指定执行方法是mainHandler 项目中确实没有这个类 这个类不是引用jar中的嘛
oh, 确实。那说明你打包的时候依赖缺失了,并没有把相关依赖打进去。检查打包出来的jar文件中的内容。以及,用springboot打包插件打包。
根据您的建议,打包重新部署后 云函数无法找到SimbotExampleApplication不知您对这个是否了解,有解决的意见嘛 ERROR RequestId:35928202-cf6b-48a8-bee4-1d176e35aa22 Result:{"errorCode":-1,"errorMessage":"java.lang.ClassNotFoundException: love.simbot.example.SimbotExampleApplication","statusCode":443}
END RequestId:35928202-cf6b-48a8-bee4-1d176e35aa22
Report RequestId:35928202-cf6b-48a8-bee4-1d176e35aa22 Duration:0ms Memory:128MB MemUsage:0.000000MB
提供打包插件的配置信息
您好 是这个么
你可以先在本地测试打包后的jar。正常来讲,被指定的mainClass不应该会消失。
您好,本地对jar执行没有问题,方法正常调用了
既然都是同一个Jar文件,本地可以,云服务器就应该可以。
不知道是什么原因 用idea自带的打成jar就不会出现找不到这个类,能启动,但是会有前面跟您说的那种报错信息,用springboot打包就会找不到类,本地测试都可以通过的 查看jar包目录也可以看见SimbotExampleApplication类
既然本地不会报错,那么就说明Jar没有问题,毕竟都是同一个文件。那么很有可能是你使用的这个函数管理工具或者其他方面的因素导致的,自行排查一下吧。
好的麻烦您了,非常抱歉占用您的休息时间,万分感谢您的耐心帮助。
version: `` 当前版本2.2.1
module: ``
疑问描述
您好,我下载了您GitHub上的原生demo,想布置到腾讯云函数上,在打成jar包后部署运行时抛出错误不知如何解决,本地运行无异常。 云函数异常信息如下: [INFO ] [0m| [36mlove.simbot.example.SimbotExampleApplication[0m : [0mActive resources: [simbot.yml][0m
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at bootstrap.main(bootstrap.java:246)
Caused by: love.forte.common.ioc.exception.NoSuchDependException: interface love.forte.simbot.bot.BotManager
at love.forte.common.ioc.DependCenter.get(DependCenter.kt:945)
at love.forte.simbot.core.SimbotApp.createSimbotContext(SimbotApp.kt:411)
at love.forte.simbot.core.SimbotApp.run$core(SimbotApp.kt:250)
at scfinternal.EventHandlerLoader$BaseMethodRequestHandler.handlerRequest(EventHandlerLoader.java:240)
Caused by: love.forte.common.ioc.exception.NoSuchDependException: interface love.forte.simbot.bot.BotManager
at love.forte.common.ioc.DependCenter.get(DependCenter.kt:945)
at love.forte.simbot.core.SimbotApp.run$core(SimbotApp.kt:250)
at love.forte.simbot.core.SimbotApp$Run.run$default(SimbotApp.kt:434)
at love.forte.simbot.core.SimbotApp.run(SimbotApp.kt)
at love.simbot.example.SimbotExampleApplication.mainHandler(SimbotExampleApplication.java:34)