liuzhihang / doc-view

IDEA 插件 Doc View 的仓库地址

Home Page:https://plugins.jetbrains.com/plugin/15305-doc-view

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mybatis Plus 兼容问题

yhan219 opened this issue · comments

Bug 描述
更新idea后报错不能使用

Version

  • Doc View: v1.1.13
IntelliJ IDEA 2021.2.3 (Ultimate Edition)
内部版本号 #IU-212.5457.46,October 12, 2021 构建
Licensed to IntelliJ IDEA Evaluator
到期日期: November 18, 2021
运行时版本: 11.0.12+7-b1504.40 x86_64
VM: OpenJDK 64-Bit Server VM,JetBrains s.r.o.
macOS 11.6
GC: G1 Young Generation, G1 Old Generation
Memory: 4096M
Cores: 12
Registry: ide.balloon.shadow.size=0

Bug 详情
异常日志、可能导致的原因、参数信息等

java.lang.ClassCastException: class com.intellij.psi.PsiWildcardType cannot be cast to class com.intellij.psi.PsiClassType (com.intellij.psi.PsiWildcardType and com.intellij.psi.PsiClassType are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @23a37d6a)
	at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
	at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
	at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
	at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
	at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:359)
	at com.liuzhihang.doc.view.utils.ParamPsiUtils.getFieldsAndDefaultValue(ParamPsiUtils.java:395)
	at com.liuzhihang.doc.view.utils.SpringPsiUtils.getReqBodyJson(SpringPsiUtils.java:251)
	at com.liuzhihang.doc.view.service.impl.SpringDocViewServiceImpl.buildClassMethodDoc(SpringDocViewServiceImpl.java:81)
	at com.liuzhihang.doc.view.service.DocViewService.buildDoc(DocViewService.java:57)
	at com.liuzhihang.doc.view.action.PreviewAction.actionPerformed(PreviewAction.java:70)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:240)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:261)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:240)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:248)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:236)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:67)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:240)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:90)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:90)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:515)
	at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:545)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6652)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
	at java.desktop/java.awt.Component.processEvent(Component.java:6417)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2784)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:885)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:814)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:751)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:441)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:440)
	at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

这个应该和版本没有关系,能发下你入参出参类型么? 是所有接口都这样还是仅仅这一个接口这样。我使用的时候 Doc View 和 Upload 都没问题。

应该是参数格式没考虑到。

image

我发现应该是入参或者返回参数对象是继承了mybatis plus 的com.baomidou.mybatisplus.extension.activerecord.Model类的都不行,比如

import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * <p>
 * 地区
 * </p>
 *
 * @author yhan219
 * @since 2021-10-09
 */
@Getter
@Setter
@Accessors(chain = true)
public class Area extends Model<Area> {

    private static final long serialVersionUID = 1L;

    /**
     * 地区编号
     */
    private String id;

    /**
     * 名称
     */
    private String areaName;
}
  • 入参是对象,没有@RequestBody,可以打开插件
@GetMapping("/test")
    public Long test(Area area) {
        return null;
    }
@GetMapping("/test")
    public Long test(@RequestBody Area area) {
        return null;
    }
  • 返回Area不能打开插件
@GetMapping("/test")
    public Area test() {
        return null;
    }

把Area类的extends Model<Area>去掉,所有情况都能打开插件。

mybatis plus 版本

implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.3.4'

这个问题我后面看一下,可能得过几天

跟mp的版本有关系,我试了下低版本的没问题

我已经修复这个问题了。后面会和新版本一起发布

https://github.com/liuzhihang/doc-view/releases/tag/v1.2.0

新版本,也可以等待后续推送更新

现在还有一个问题是返回参数是mybatis plus Page参数时不会生成返回示例。Page这样的没有生成返回示例,List这样的会生成返回示例

好的,我这个得晚些时候看了。最近一段时间比较忙。