Сбой JVM с помощью второго метода публикации в Django - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь построить API для моего проекта NLP, используя Django. У меня есть файл JAR и запускаю его с JVM, используя Jpype в Python. Он очень хорошо работает с первым POST, но не работает со вторым методом post без каких-либо исключений.

Я подумал, что это причина JVM, и попробовал следующий код, но он не работал:

if not jp.isJVMStarted():
    print('JVM starting...')
    jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
    TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
    Paths = jp.JClass('java.nio.file.Paths')
else:
    print('JVM shutting down...')
    jp.shutdownJVM()
    print('JVM starting...')
    jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)

Мой весь код:

def getMorfoloji(sentence):
    JAR_PATH = r'bin\zemberek-full.jar'

    if not jp.isJVMStarted():
        print('JVM starting...')
        jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)
        TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
        Paths = jp.JClass('java.nio.file.Paths')
    else:
        print('JVM shutting down...')
        jp.shutdownJVM()
        print('JVM starting...')
        jp.startJVM(jp.getDefaultJVMPath(), "-Djava.class.path=%s" % JAR_PATH)

    TurkishMorphology = jp.JClass('zemberek.morphology.TurkishMorphology')
    Paths = jp.JClass('java.nio.file.Paths')
    morphology = TurkishMorphology.createWithDefaults()
    analysis = morphology.analyzeSentence(sentence)
    results = morphology.disambiguate(sentence, analysis).bestAnalysis()
    analysis_result = ''
    for i in results:
        analysis_result += str(i)
        analysis_result += ' -- '
    print(analysis_result)
    jp.shutdownJVM()
    return analysis_result

Как мне запустить JVM и не дать ей остановиться?

...