pkuclay 发表于 2021-3-15 14:15:21

本地修改源代码编译后直接覆盖war包或者class文件,提示错误

请问在本地修改源码编译后,如何替换服务器上的程序文件?
本地修改x_message_assemble_communicate模块下的QiyeweixinConsumeQueue.java文件,修改content显示内容,然后编译,无论是直接替换store目录下的x_message_assemble_communicate.war文件还是里面的QiyeweixinConsumeQueue.class文件,启动都报错,且企业微信通知消息无法使用
WARN org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.q.QuickStartWebApp@54e3c8c2{x_message_assemble_communicate,/x_message_assemble_communicate,file:///home/o2server/servers/applicationServer/work/x_message_assemble_communicate/,UNAVAILABLE}
MultiException
      at org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:122)
      at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:492)
      at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:346)
      at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:498)
      at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1417)
      at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:911)
      at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
      at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
      at org.eclipse.jetty.quickstart.QuickStartWebApp.doStart(QuickStartWebApp.java:222)
      at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
      at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
      at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
      at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
      at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
      at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
      at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
      at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
      at org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:426)
      at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
      at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
      at org.eclipse.jetty.server.Server.start(Server.java:423)
      at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
      at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
      at org.eclipse.jetty.server.Server.doStart(Server.java:387)
      at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
      at com.x.server.console.server.application.ApplicationServerTools.start(ApplicationServerTools.java:144)
      at com.x.server.console.server.Servers.startApplicationServer(Servers.java:95)
      at com.x.server.console.Main.startApplicationServer(Main.java:326)
      at com.x.server.console.Main.startAll(Main.java:411)
      at com.x.server.console.Main.main(Main.java:167)
      Suppressed: java.lang.RuntimeException: Error scanning file /home/o2server/servers/applicationServer/work/x_message_assemble_communicate/WEB-INF/classes/com/x/message/assemble/communicate/QiyeweixinConsumeQueue.class
                at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:741)
                at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:828)
                at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:159)
                at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:455)
                at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
                at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
                at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.IllegalArgumentException
                at org.objectweb.asm.ClassReader.<init>(Unknown Source)
                at org.objectweb.asm.ClassReader.<init>(Unknown Source)
                at org.objectweb.asm.ClassReader.<init>(Unknown Source)
                at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:932)
                at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:734)
                ... 6 more
      Suppressed: java.lang.RuntimeException: Error scanning file /home/o2server/servers/applicationServer/work/x_message_assemble_communicate/WEB-INF/classes/com/x/message/assemble/communicate/QiyeweixinConsumeQueue$QiyeweixinMessageResp.class
                at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:741)
                at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:828)
                at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:159)
                at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:455)
                at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
                at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
                at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.IllegalArgumentException
                at org.objectweb.asm.ClassReader.<init>(Unknown Source)
                at org.objectweb.asm.ClassReader.<init>(Unknown Source)
                at org.objectweb.asm.ClassReader.<init>(Unknown Source)
                at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:932)
                at org.eclipse.jetty.annotations.AnnotationParser.parseDir(AnnotationParser.java:734)
                ... 6 more
      
INFO org.eclipse.jetty.util.ssl.SslContextFactory - x509=X509@68bdf3ca(1,h=,w=[]) for Server@65132031
INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@48210ca1{SSL, (ssl, http/1.1)}{0.0.0.0:20020}
INFO org.eclipse.jetty.server.Server - Started @2080853ms

论坛管理员 发表于 2021-3-15 22:54:56

您好:如果修改源码编译方式见文档
https://www.o2oa.net/course/ng5iqb.html

pkuclay 发表于 2021-3-17 14:13:09

按照官方编译说明,在IDEA里面完成修改编译,比如修改了Qiyeweixin.Queue.java的文件,编译后会生成新的x_message_assemble_communicate.war包和jar文件,请问如何正确的替换服务器上的程序
启动提示   扫描 store 过程中删除无效的文件:x_message_assemble_communicate-6.0.war

论坛管理员 发表于 2021-3-17 21:37:52

1.x_message_assemble_communicate-6.0.war是您自己编译的对象吗
2.o2server\store\manifest.cfg是需要加载的war对象!

pkuclay 发表于 2021-3-18 08:21:24

是的,已经解决问题了,谢谢您,辛苦啦,这么晚还工作
x_message_assemble_communicate-6.0.war是自己编译后的文件,和manifest.cfg中标注的x_message_assemble_communicate.war不一致,所以每次扫描都会被删除,把名字改成x_message_assemble_communicate.war就可以了,不需要替换jar文件
页: [1]
查看完整版本: 本地修改源代码编译后直接覆盖war包或者class文件,提示错误