账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    springboot应用服务,请求第二次,jvm Crash
    40
    0

    springboot应用服务,请求第二次,jvm Crash

    idea编辑器,利用spring boot发布应用服务,其中有第三方应用架包,发布服务后,第一次请求服务没有问题;第一次执行完,立马请求第二次,jvm就会崩溃

    相关代码

        private void CreateNetwork3D(Workspace workspace, String networkName, DatasetVector dv3DLine,DatasetVector dv3DPoint) {
            try {
                Datasource datasource = workspace.getDatasources().get(0);
                String availableName = datasource.getDatasets().getAvailableDatasetName(networkName,DatasetType.NETWORK3D);
    
                List<String> lineFieldNames = new ArrayList<>();
                List<String> pointFieldNames = new ArrayList<>();
    
                FieldInfos lineFieldInfos = dv3DLine.getFieldInfos();
                for(int i=0;i<lineFieldInfos.getCount();i++)
                {
                    String fieldName =  lineFieldInfos.get(i).getName();
                    if(!fieldName.toUpperCase().contains("SM"))
                    {
                        lineFieldNames.add(fieldName);
                    }
                }
    
                FieldInfos pointFieldInfos = dv3DPoint.getFieldInfos();
                for(int i=0;i<pointFieldInfos.getCount();i++)
                {
                    String fieldName =  pointFieldInfos.get(i).getName();
                    if(!fieldName.toUpperCase().contains("SM"))
                    {
                        pointFieldNames.add(fieldName);
                    }
                }
                String[] tempLineFields=lineFieldNames.toArray(new String[lineFieldNames.size()]);
                String[] temppointFields=pointFieldNames.toArray(new String[pointFieldNames.size()]);
                NetworkBuilder3D.buildNetwork(dv3DLine,dv3DPoint,tempLineFields,temppointFields,datasource,availableName, NetworkSplitMode3D.LINE_SPLIT_BY_POINT,0.00001);
                datasource = null;
            }
            catch (Exception ex)
            {
                ex.getMessage();
            }
        }

    崩溃日志部分信息

    Stack: [0x000000008cc30000,0x000000008cd30000], sp=0x000000008cd2bc08, free space=1007k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C 0x00007ffdea0420b0

    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    J 8650 com.supermap.data.ToolkitNative.jni_GetBooleanHandle(J)Z (0 bytes) @ 0x0000000003351b01 [0x0000000003351ac0+0x41]
    J 9547 C2 com.supermap.realspace.networkanalyst.NetworkBuilder3D.steppedCallBack(IJLjava/lang/String;Ljava/lang/String;J)V (56 bytes) @ 0x00000000041a378c [0x00000000041a3760+0x2c]
    v ~StubRoutines::call_stub
    j com.supermap.realspace.networkanalyst.NetworkBuilder3DNative.jni_BuildNetwork([J[J[Ljava/lang/String;[Ljava/lang/String;JLjava/lang/String;ID)J+0
    j com.supermap.realspace.networkanalyst.NetworkBuilder3D.buildNetwork(Lcom/supermap/data/DatasetVector;Lcom/supermap/data/DatasetVector;[Ljava/lang/String;[Ljava/lang/String;Lcom/supermap/data/Datasource;Ljava/lang/String;Lcom/supermap/realspace/networkanalyst/NetworkSplitMode3D;D)Lcom/supermap/data/DatasetVector;+367
    j z.s.cache.service.cacheSrv.CreateNetwork3D(Lcom/supermap/data/Workspace;Ljava/lang/String;Lcom/supermap/data/DatasetVector;Lcom/supermap/data/DatasetVector;)V+226
    j z.s.cache.service.cacheSrv.CreateDataSets(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Lcom/supermap/data/Workspace;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+330
    j z.s.cache.service.cacheSrv.Vectoring(Ljava/lang/String;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+317
    j z.s.cache.service.cacheSrv.publishServices(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V+289
    j z.s.cache.thread.CacheThread.run()V+23
    j java.lang.Thread.run()V+11
    v ~StubRoutines::call_stub

    你期待的结果是什么?实际看到的错误信息又是什么?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 莪親媽. 普通会员 1楼

      在Spring Boot应用中,如果出现jvm Crash的情况,这可能是因为以下几个原因:

      1. 应用代码中存在严重错误:如果您的应用存在严重错误,如空指针异常、数组越界、资源泄漏等,这可能会导致JVM崩溃。

      2. 硬件问题:如内存不足、CPU过载等,也可能会导致JVM崩溃。

      3. 系统资源不足:如果您的系统资源(如CPU、内存、磁盘空间等)不足,也可能会导致JVM崩溃。

      4. JVM版本过旧:如果您的JVM版本过旧,可能会出现一些新的错误,导致JVM崩溃。

      解决方法:

      1. 检查并修复应用代码中的错误。

      2. 检查并优化系统资源,如增加内存、提高CPU使用率等。

      3. 优化系统环境,如更换更强大的硬件、升级系统软件等。

      4. 如果是JVM版本过旧的问题,可以考虑升级到更新的JVM版本。

      5. 如果问题依然存在,可能需要考虑升级到更高版本的Spring Boot应用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部