Проблема импорта страницы JSP. Файл класса, помещенный в пакет внутри WEB-INF / classes - PullRequest
1 голос
/ 20 февраля 2010

У меня запущено веб-приложение crawler_GUI, в котором есть другой jspider проекта java в его пути сборки. (Я использую затмение галилео)

Графический интерфейс использует проект jspider в качестве бэкэнда.

Визит http://i45.tinypic.com/avmszn.jpg для структуры

JSP создает экземпляр объекта jspider. Прежде всего, у меня не было классов в папке WEB-INF / classes, и я исправил эту ошибку. Теперь он работает, и никаких ошибок не отображается, но ни одна из задач не выполняется.

Вот код:

JSP

<%@ page import = "net.javacoding.jspider.ESpider, source.Crawler"%>
<%@ page import = "java.net.URL" %>
<%//URL baseURL = new URL(Crawler.SelectedSites.get(0));
URL baseURL = new URL("http://www.buy.com");
System.out.println("******");
ESpider espider = new ESpider(baseURL);

Печатается * s.

ESpider.java

public ESpider(URL baseURL) throws Exception {
    super(baseURL);
    System.out.println("test");


}

Он не печатает "тест". На самом деле конструктор родителя даже не вызывается. При этом ошибки также не отображаются.

Как я могу это исправить?

1 Ответ

2 голосов
/ 21 февраля 2010

В Eclipse вам нужно добавить проект jspider в проект crawler_GUI следующим образом:

  1. crawler_GUI свойства> Путь сборки Java> Проекты> Добавить jspider.
  2. crawler_GUI свойства> Зависимости модуля Java EE> Галочка jspider.

Не забудьте очистить все свободные файлы в /WEB-INF/classes, которые вы добавили вручную. Это не нужно. Eclipse автоматически позаботится об этом, если вы правильно ссылаетесь на проекты. Кроме того, любые свободные JAR-файлы должны быть просто сброшены в /WEB-INF/lib.

Теперь часть истории JSP. Трудно определить основную причину, поскольку вы написали сырой код Java в файле JSP вместо реального класса Java. Первым шагом будет проверка журналов сервера на наличие несоответствий. Также могло случиться, что была загружена неправильная версия класса ESpider (в которой отсутствует sysout).

Как уже намекали, вы не должны использовать JSP. Он должен использоваться в качестве шаблона для написания HTML / CSS / JS, в котором вы можете динамически управлять потоком с помощью тегов, таких как JSTL, и получать доступ к данным бэкэнда с помощью EL. Необработанный код Java принадлежит классам Java, а не файлам JSP. В этом случае вы должны были использовать класс Servlet. Просто создайте класс, который extends HttpServlet, реализуйте метод doGet() соответствующим образом с помощью ESpider и, наконец, перейдите на страницу JSP для отображения результата, зарегистрируйте сервлет в web.xml и вызовите его по URL, который покрывает его url-pattern в web.xml. Здесь вы можете найти много хороших учебников по JSP / сервлетам .

P.S .: убедитесь, что вы понимаете политику robots.txt ...

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