能够自动生成很多编程语言的server端和client端代码。
IntelliJ IDEA 中安装了swagger-codegen插件(intellij_swagger_codegen-0.0.3.SNAPSHOT.zip)
但在生成server端的java代码时,报错:
- io.swagger.codegen.languages.AbstractJavaCodegen.postProcessModelsEnum(Ljava/util/Map;)Ljava/util/Map;
- java.lang.NoSuchMethodError: io.swagger.codegen.languages.AbstractJavaCodegen.postProcessModelsEnum(Ljava/util/Map;)Ljava/util/Map;
- at io.swagger.codegen.languages.AbstractJavaCodegen.postProcessModels(AbstractJavaCodegen.java:663)
- at io.swagger.codegen.DefaultGenerator.processModels(DefaultGenerator.java:833)
- at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:237)
- at com.jimschubert.intellij.swaggercodegen.ui.GenerateDialog.doOKAction(GenerateDialog.kt:266)
- at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1871)
- at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1837)
- at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
- at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
- at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
- at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
- at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
- at java.awt.Component.processMouseEvent(Component.java:6535)
- at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
- at java.awt.Component.processEvent(Component.java:6300)
- at java.awt.Container.processEvent(Container.java:2236)
- at java.awt.Component.dispatchEventImpl(Component.java:4891)
- at java.awt.Container.dispatchEventImpl(Container.java:2294)
- at java.awt.Component.dispatchEvent(Component.java:4713)
- at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
- at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
- at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
- at java.awt.Container.dispatchEventImpl(Container.java:2280)
- at java.awt.Window.dispatchEventImpl(Window.java:2750)
- at java.awt.Component.dispatchEvent(Component.java:4713)
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
- at java.awt.EventQueue.access$500(EventQueue.java:97)
- at java.awt.EventQueue$3.run(EventQueue.java:709)
- at java.awt.EventQueue$3.run(EventQueue.java:703)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
- at java.awt.EventQueue$4.run(EventQueue.java:731)
- at java.awt.EventQueue$4.run(EventQueue.java:729)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
- at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:843)
- at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:675)
- at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
- at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
- at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
- at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
- at java.awt.Dialog.show(Dialog.java:1084)
- at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:779)
- at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:457)
- at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1693)
- at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1635)
- at com.jimschubert.intellij.swaggercodegen.actions.CodegenGenerateAction.actionPerformed(CodegenGenerateAction.kt:30)
- at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:199)
- at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:215)
- at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.a(ActionMenuItem.java:315)
- at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:920)
- at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:130)
- at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:295)
- at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
- at com.intellij.openapi.actionSystem.impl.ActionMenuItem.a(ActionMenuItem.java:112)
- at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:91)
- at com.intellij.openapi.application.TransactionGuardImpl.access$300(TransactionGuardImpl.java:41)
- at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:116)
- at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:126)
- at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
- at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
- at com.intellij.ui.plaf.beg.BegMenuItemUI.a(BegMenuItemUI.java:513)
- at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:45)
- at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:533)
- at java.awt.Component.processMouseEvent(Component.java:6535)
- at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
- at java.awt.Component.processEvent(Component.java:6300)
- at java.awt.Container.processEvent(Container.java:2236)
- at java.awt.Component.dispatchEventImpl(Component.java:4891)
- at java.awt.Container.dispatchEventImpl(Container.java:2294)
- at java.awt.Component.dispatchEvent(Component.java:4713)
- at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
- at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
- at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
- at java.awt.Container.dispatchEventImpl(Container.java:2280)
- at java.awt.Window.dispatchEventImpl(Window.java:2750)
- at java.awt.Component.dispatchEvent(Component.java:4713)
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
- at java.awt.EventQueue.access$500(EventQueue.java:97)
- at java.awt.EventQueue$3.run(EventQueue.java:709)
- at java.awt.EventQueue$3.run(EventQueue.java:703)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
- at java.awt.EventQueue$4.run(EventQueue.java:731)
- at java.awt.EventQueue$4.run(EventQueue.java:729)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
- at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:843)
- at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:675)
- at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
原因是,此插件依赖io.swagger:swagger-codegen:2.2.1,
而下载下来的插件zip包里,lib下包含了两个版本的swagger-codegen(2.1.6和2.2.1),
所以造成了版本冲突。
解决方法是,删掉zip包里的swagger-codegen-2.1.6.jar,重新打成zip包,重新安装插件。