powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с компиляцией сервлета на Tomcat
15 сообщений из 15, страница 1 из 1
Проблема с компиляцией сервлета на Tomcat
    #34517595
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут первый раз пользуюсь Томкатом и поэтому создалась проблемка, которую я уже несколько часов не могу разрешить.

1. В общем, после интсаляции Tomcat 5.5 с j2sdk1.5-sun в bashrc добавил следующие строки:
Код: plaintext
1.
export JAVA_HOME=/usr/lib/j2sdk1. 5 -sun/ export CLASSPATH="/usr/local/tomcat/common/lib/jsp.jar;/usr/local/tomcat/common/lib/servlet.jar"
хотя в common/lib после интсаляции названия этих библиотек были j sp-api.jar; servlet-api.jar / . Я просто там же сделал их копии с новыми названиями, которые я и установил в CLASSPATH.
Можно ли так делать?

2. После всех настроек запустилась с браузера Апачевская страничка на ROOTе, что вроде бы говорит о работоспособности Томката. И решил сделать первй Servlet

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 import  javax.servlet.*;
 import  javax.servlet.http.*;
 import  java.io.*;
 import  java.util.*;

 public   class  TestingServlet  extends  HttpServlet {

  public   void  doGet(HttpServletRequest request, HttpServletResponse response) 
   throws  ServletException, IOException {
  
  PrintWriter out = response.getWriter();
  out.println("<HTML>");
  out.println("<HEAD>");
  out.println("<TITLE>Servlet Testing</TITLE>");
  out.println("</HEAD>");
  out.println("<BODY>");
  out.println("Welcome to the Servlet Testing Center");
  out.println("</BODY>");
  out.println("</HTML>");
 }
}

Который я пометил в /usr/local/tomcat/webapps/MyApp/src . Компилирую и мне выдаёт туеву хучу ошибок

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 1 . ERROR in TestingServlet.java (at line  1 )
         import  javax.servlet.*;
               ^^^^^^^^^^^^^
The  import  javax.servlet cannot be resolved
----------
 2 . ERROR in TestingServlet.java (at line  2 )
         import  javax.servlet.http.*;
               ^^^^^^^^^^^^^
The  import  javax.servlet cannot be resolved
----------
 3 . ERROR in TestingServlet.java (at line  6 )
         public   class  TestingServlet  extends  HttpServlet {
                                            ^^^^^^^^^^^
HttpServlet cannot be resolved to a type
----------
 4 . ERROR in TestingServlet.java (at line  8 )
         public   void  doGet(HttpServletRequest request, HttpServletResponse response) 
                          ^^^^^^^^^^^^^^^^^^
HttpServletRequest cannot be resolved to a type
----------
 5 . ERROR in TestingServlet.java (at line  8 )
         public   void  doGet(HttpServletRequest request, HttpServletResponse response) 
                                                      ^^^^^^^^^^^^^^^^^^^
HttpServletResponse cannot be resolved to a type
----------
 6 . ERROR in TestingServlet.java (at line  9 )
         throws  ServletException, IOException {
               ^^^^^^^^^^^^^^^^
ServletException cannot be resolved to a type
----------
 6  problems ( 6  errors)

В чём проблема? Вроде всё делал по инструкции. Может библиотеку не находит? Подскажите плиз
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517604
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
В чём проблема? Вроде всё делал по инструкции. Может библиотеку не находит? Подскажите плиз


Ваш компилятор или среда разработки, которой компилируете, не находит библиотеку servlet API:
- если компилируете из консоли с помощью javac, то очевидно что ваш CLASSPATH определен не правильно
- если компилируете из какой нибудь IDE (eclipse например), то в свойствах проекта нужно включить библиотеку servlet API

проверьте правильно ли у вас заданы переменные classpath набрав в консоли echo $CLASSPATH
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517608
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
хотя в common/lib после интсаляции названия этих библиотек были jsp-api.jar; servlet-api.jar/ . Я просто там же сделал их копии с новыми названиями, которые я и установил в CLASSPATH.
Можно ли так делать?


Думаю что делать это не обязательно и в classpath указывать ссылки на оригинальные файлы без их переименования. Также эти библиотеки Tomcat сам прописывает в classpath при запуске, и поэтому ради самого сервера не нужно их прописывать в глобальный CLASSPATH
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517617
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage автор
В чём проблема? Вроде всё делал по инструкции. Может библиотеку не находит? Подскажите плиз


Ваш компилятор или среда разработки, которой компилируете, не находит библиотеку servlet API:
- если компилируете из консоли с помощью javac, то очевидно что ваш CLASSPATH определен не правильно
- если компилируете из какой нибудь IDE (eclipse например), то в свойствах проекта нужно включить библиотеку servlet API

проверьте правильно ли у вас заданы переменные classpath набрав в консоли echo $CLASSPATH

спасибо за ответ.
после этой команды выдаёт
/usr/local/tomcat/common/lib/jsp-api.jar;/usr/local/tomcat/common/lib/servlet-api.jar
Странно, я ведь изменил вначале названия библиотек и CLASSPATH в bashrc. Я сечас переставли в bashrc обратно на имена, которые выдала команда echo $CLASSPATH, прокомпилирова и такая же фигня. Вроде бы теперь то всё соответвует вроде
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517622
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл сказать, я компилирую с консоли
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517628
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, сегодня, в числе прочих попыток, я скопировал библиотеку servlet.jar в WEB-INF и при копиляции задал её
Код: plaintext
javac -d servlet.jar TestingServlet
и было выдано всего одно предупреждение что то типа проблемы с extends HttpServlet но класс она создала
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517631
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте скомпилировать так:

Код: plaintext
1.
javac -classpath /usr/local/tomcat/common/lib/servlet.jar TestingServlet.java
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517638
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
magogaКстати, сегодня, в числе прочих попыток, я скопировал библиотеку servlet.jar в WEB-INF и при копиляции задал её
Код: plaintext
javac -d servlet.jar TestingServlet
и было выдано всего одно предупреждение что то типа проблемы с extends HttpServlet но класс она создала

думаю этого делать не нужно так как при запуске томкат находит все библиотеки и подключает их в classpath, который существует во время выполнения tomcat (посмотрите на скрипты запуска томката в директории tomcat/bin (startup.sh и catalina.sh)
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517646
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageпопробуйте скомпилировать так:

Код: plaintext
1.
javac -classpath /usr/local/tomcat/common/lib/servlet.jar TestingServlet.java


спасибо, уже теплее :) Теперь всего два предупреждения, но класс создался
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 1 . WARNING in TestingServlet.java (at line  4 )
         import  java.util.*;
               ^^^^^^^^^
The  import  java.util is never used
----------
 2 . WARNING in TestingServlet.java (at line  6 )
         public   class  TestingServlet  extends  HttpServlet {
                     ^^^^^^^^^^^^^^
The serializable  class  TestingServlet does not declare a  static   final  serialVersionUID field of type  long 
----------
 2  problems ( 2  warnings)

Всё таки как бы сделать так чтобы без ручных вводов при компиляции срабатывало по умолчанию и почему два предупреждения?
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517661
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
magoga
спасибо, уже теплее :) Теперь всего два предупреждения, но класс создался
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 1 . WARNING in TestingServlet.java (at line  4 )
         import  java.util.*;
               ^^^^^^^^^
The  import  java.util is never used
----------
 2 . WARNING in TestingServlet.java (at line  6 )
         public   class  TestingServlet  extends  HttpServlet {
                     ^^^^^^^^^^^^^^
The serializable  class  TestingServlet does not declare a  static   final  serialVersionUID field of type  long 
----------
 2  problems ( 2  warnings)


измените команду:

Код: plaintext
1.
javac -classpath /usr/local/tomcat/common/lib/servlet.jar:/usr/lib/j2sdk1. 5 -sun/jre/lib/rt.jar TestingServlet.java
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517680
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
1. WARNING in TestingServlet.java (at line 4)
import java.util.*;
^^^^^^^^^
The import java.util is never used
----------
2. WARNING in TestingServlet.java (at line 6)
public class TestingServlet extends HttpServlet {
^^^^^^^^^^^^^^
The serializable class TestingServlet does not declare a static final serialVersionUID field of type long
----------
2 problems (2 warnings)


извините, невнимательно посмотрел на сообщения - думал что это ошибки а это предупреждения, они говорят о том что: 1) импортируемый пакет не используется в вашем классе и строку import java.util.*; можно выкинуть
2) что то не доконца понял почему это
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517684
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage magoga
спасибо, уже теплее :) Теперь всего два предупреждения, но класс создался
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 1 . WARNING in TestingServlet.java (at line  4 )
         import  java.util.*;
               ^^^^^^^^^
The  import  java.util is never used
----------
 2 . WARNING in TestingServlet.java (at line  6 )
         public   class  TestingServlet  extends  HttpServlet {
                     ^^^^^^^^^^^^^^
The serializable  class  TestingServlet does not declare a  static   final  serialVersionUID field of type  long 
----------
 2  problems ( 2  warnings)


измените команду:

Код: plaintext
1.
javac -classpath /usr/local/tomcat/common/lib/servlet.jar:/usr/lib/j2sdk1. 5 -sun/jre/lib/rt.jar TestingServlet.java

у меня файл java-1.5.0-sun вместо j2sdk1.5-sun и поэтому комнда получилась такой
Код: plaintext
1.
javac -classpath /usr/local/tomcat/common/lib/servlet-api.jar:/usr/lib/jvm/java- 1 . 5 . 0 -sun/jre/lib/rt.jar TestingServlet.java

и опять таже история

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
----------
 1 . WARNING in TestingServlet.java (at line  4 )
         import  java.util.*;
               ^^^^^^^^^
The  import  java.util is never used
----------
 2 . WARNING in TestingServlet.java (at line  6 )
         public   class  TestingServlet  extends  HttpServlet {
                     ^^^^^^^^^^^^^^
The serializable  class  TestingServlet does not declare a  static   final  serialVersionUID field of type  long 
----------
 2  problems ( 2  warnings)
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517685
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage автор
1. WARNING in TestingServlet.java (at line 4)
import java.util.*;
^^^^^^^^^
The import java.util is never used
----------
2. WARNING in TestingServlet.java (at line 6)
public class TestingServlet extends HttpServlet {
^^^^^^^^^^^^^^
The serializable class TestingServlet does not declare a static final serialVersionUID field of type long
----------
2 problems (2 warnings)


извините, невнимательно посмотрел на сообщения - думал что это ошибки а это предупреждения, они говорят о том что: 1) импортируемый пакет не используется в вашем классе и строку import java.util.*; можно выкинуть
2) что то не доконца понял почему это

убрал её
и теперь только одно предупреждение
Код: plaintext
1.
2.
3.
4.
5.
6.
 1 . WARNING in TestingServlet.java (at line  5 )
         public   class  TestingServlet  extends  HttpServlet {
                     ^^^^^^^^^^^^^^
The serializable  class  TestingServlet does not declare a  static   final  serialVersionUID field of type  long 
----------
 1  problem
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34517704
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а каков весь код класса TestingServlet?
...
Рейтинг: 0 / 0
Проблема с компиляцией сервлета на Tomcat
    #34519389
magoga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageа каков весь код класса TestingServlet?

как открыть код кдасса?

Отклыл я этот сервлет в браузере и вот что мне выдало

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling  this  request.

exception

javax.servlet.ServletException: Error allocating a servlet instance
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 105 )
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 148 )
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: 856 )
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java: 744 )
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java: 527 )
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java: 80 )
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java: 684 )
	java.lang.Thread.run(Thread.java: 595 )

root cause

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
	java.lang.ClassLoader.defineClass1( Native  Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java: 620 )
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java: 124 )
	java.net.URLClassLoader.defineClass(URLClassLoader.java: 260 )
	java.net.URLClassLoader.access$ 100 (URLClassLoader.java: 56 )
	java.net.URLClassLoader$ 1 .run(URLClassLoader.java: 195 )
	java.security.AccessController.doPrivileged( Native  Method)
	java.net.URLClassLoader.findClass(URLClassLoader.java: 188 )
	java.lang.ClassLoader.loadClass(ClassLoader.java: 306 )
	sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java: 268 )
	java.lang.ClassLoader.loadClass(ClassLoader.java: 251 )
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1247 )
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1181 )
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 105 )
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 148 )
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: 856 )
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java: 744 )
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java: 527 )
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java: 80 )
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java: 684 )
	java.lang.Thread.run(Thread.java: 595 )


...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с компиляцией сервлета на Tomcat
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]