Java проект. Проблема с JspWriter - PullRequest
10 голосов
/ 09 августа 2011

У меня есть какой-то старый веб-проект JSP, который я пытаюсь импортировать в затмение. Мой опыт работы с Java и Eclipse далек от великого.

В одном из файлов JSP у меня ошибка:
Не удается разрешить импорт javax.servlet.jsp.JspWriter

код:

<%@ page import="org.apache.axiom.om.OMAbstractFactory,
             org.apache.axiom.om.OMElement,
             org.apache.axiom.om.OMFactory,
             org.apache.axiom.om.OMNamespace,
             org.apache.axis2.AxisFault,
             org.apache.axis2.Constants,
             org.apache.axis2.addressing.EndpointReference,
             org.apache.axis2.client.Options,
             org.apache.axis2.client.ServiceClient,
             org.apache.axis2.context.ConfigurationContext,
             org.apache.axis2.context.ConfigurationContextFactory,
             javax.servlet.ServletContext,
             javax.servlet.http.HttpServletRequest,
             javax.servlet.http.HttpServletResponse,
             javax.servlet.jsp.JspWriter,                   <- Problem is HERE
             javax.xml.parsers.SAXParser,
             javax.xml.parsers.SAXParserFactory"
     session="false" %>

И, конечно, в любом другом месте, где у меня есть ссылка на JspWriter, я получаю ту же ошибку.

Я посмотрел на Java Build Path, и у меня есть следующее:
1) servlet-api.jar - C: \ Program Files ...
2) Ушные библиотеки
3) Системная библиотека JRE (jdk1.6.0_25)
4) Библиотеки веб-приложений

Раньше у меня был один элемент для библиотеки Apache Tomcat 6.0, который не был привязан, поэтому я удалил его. Я пытался добавить это, но не смог. Когда я нажимаю «Добавить библиотеку»> «Среда выполнения сервера», я получаю новое окно, в котором говорится: «Выберите среду выполнения для добавления в путь к классам», но выбрать нечего.

У меня установлено: Eclipse Java EE IDE для веб-разработчиков, установлен Apache Tomcat (6.0), последняя версия Ant и Windows 7 64bit.

Есть идеи?

Спасибо.

Ответы [ 3 ]

21 голосов
/ 09 августа 2011

Не удается разрешить импорт javax.servlet.jsp.JspWriter

В случае Tomcat это часть файла jsp-api.jar. Однако, , а не , вручную добавьте этот файл в путь сборки, как вы это сделали для servlet-api.jar, это было бы неправильно! Это сделает ваше веб-приложение непереносимым для других целевых сред выполнения (читай: servletcontainers). То есть Ваше веб-приложение будет совместимо только с Tomcat 6.0, но не с другими производителями / версиями контейнеров, такими как Tomcat 7, Glassfish, JBoss AS и т. д.


Я посмотрел на Java Build Path, и у меня есть следующее:

1) servlet-api.jar - C: \ Program Files ...

Удалите это. Он будет сталкиваться только с любой целевой средой выполнения, которую вы собираетесь настроить в ближайшее время.


Раньше у меня был один элемент для библиотеки Apache Tomcat 6.0, который не был привязан, поэтому я удалил его. Я пытался добавить это, но не смог. Когда я нажимаю «Добавить библиотеку»> «Среда выполнения сервера», я получаю новое окно, в котором говорится: «Выберите среду выполнения для добавления в путь к классам», но выбрать нечего.

Перейти к Серверы Просмотр в Eclipse. Щелкните правой кнопкой мыши и выберите Новый . Выберите подходящую марку и версию сервлет-контейнера и пройдите мастер. Теперь у вас есть целевая среда выполнения в Eclipse.

Затем в свойствах проекта перейдите к Targeted Runtimes и выберите там сервер. Больше ничего не нужно делать. Затмение позаботится об оставшейся магии.

Смотри также:

2 голосов
/ 09 августа 2011

javax.servlet.jsp.JspWriter не будет присутствовать в servlet-api.jar вашего дистрибутива Tomcat. Скорее, он обычно присутствует в файле jsp-api.jar.

Вы должны перепривязать Apache Tomcat 6 Server Runtime обратно в путь к классам вашего проекта, чтобы все JAR-файлы, предоставляемые Tomcat 6, снова стали доступны. Несвязанная среда выполнения сервера Tomcat 6 не служит никакой другой целью, кроме как сообщить вам, что вы скопировали проект Eclipse, записи пути к классам которого были или могли быть действительными в исходном рабочем пространстве Eclipse.

Чтобы заново ввести сервер Apache Tomcat 6 в путь к классу вашего проекта, сначала определите время выполнения сервера в Eclipse, используя существующую установку Tomcat 6. Позже добавьте Server Runtime в качестве библиотеки в путь сборки вашего проекта.

0 голосов
/ 09 августа 2011

Так как ошибка только с "javax.servlet.jsp.JspWriter", я бы сначала пошел и проверил, существует ли этот класс на самом деле в банке, которую вы поместили в путь к классам проекта. Также неплохо создать в Eclipse Java EE новый динамический веб-проект с необходимыми фасетами и просто импортировать исходные файлы.

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