Как правильно импортировать Marvin Framework в Java EE? - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь импортировать Marvin Framework в проекте сервлета Java EE с использованием Eclipse.

Как написано в руководстве , я скопировал и вставил *Папка 1007 * marvin и настроенный путь сборки и сборка развертывания.Однако, похоже, что функция robert () в методе getPath () класса Main не найдена.

Это метод GET сервлета:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Part filePart = request.getPart("file");
        InputStream is = filePart.getInputStream();
        BufferedImage bi = ImageIO.read(is);
        Point[] points = Main.getPath(bi);
[...]

И это часть класса Main:

import static marvin.MarvinPluginCollection.*;
import marvin.MarvinPluginCollection;
import marvin.image.MarvinImage;
import marvin.io.MarvinImageIO;

public class Main {

  public static Point[] getPath(BufferedImage inputImage) {
        MarvinImage image = new MarvinImage(inputImage);
        image = resizeImage(image, 200);
        printImage(image);
        MarvinImage result = new MarvinImage(image.getWidth(), image.getHeight());

        result.clear(0xFF000000);
        MarvinPluginCollection.roberts(image, result);

        thresholding(result, 45);
        invertColors(result);

        printImage(result);

        MarvinImageIO.saveImage(result, "result.jpg");

        BufferedImage im = result.getBufferedImage();
        [...]
  }
}

Это ошибка сервера:

GRAVE: Servlet.service() for servlet [edgedetector] in context with path [/edgeDetectorService] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoSuchMethodError: marvin.util.MarvinPluginLoader.loadImagePlugin(Ljava/lang/String;)Lmarvin/plugin/MarvinImagePlugin;
    at marvin.MarvinPluginCollection.checkAndLoadImagePlugin(MarvinPluginCollection.java:1225)
    at marvin.MarvinPluginCollection.roberts(MarvinPluginCollection.java:941)
    at marvin.MarvinPluginCollection.roberts(MarvinPluginCollection.java:931)
    at edgeDetector.Main.getPath(Main.java:49)
    at edgeDetector.edgeDetectorServlet.doGet(edgeDetectorServlet.java:41)
    at edgeDetector.edgeDetectorServlet.doPost(edgeDetectorServlet.java:58)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
[...]

Iтакже не знаю, почему в сообщении об ошибке есть две L буквы:

marvin.util.MarvinPluginLoader.loadImagePlugin ( L java / lang /String;) L marvin / plugin / MarvinImagePlugin;

Если я запускаю код локально, как обычное приложение Java (без использования сервера), он работает.

Я только что нашел другой вопрос , но не могу понять, какой путь мне нужно указать в методе setImagePluginPath () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...