2017-02-04 3 views
-3

Я озадачен, когда я конфиг сервлет в web.xml:«XXX» не является общедоступной, когда конфиг сервлет в web.xml - IntelliJ IDEA

com.ypd.web5.FirstServlet»не является публичной

enter image description here

код ниже:

<!-- config my servlet --> 
    <servlet> 
     <servlet-name>FirstServlet</servlet-name> 
     <servlet-class>com.ypd.web5.FirstServlet</servlet-class> /* there I got the error */ 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>FirstServlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

Я не могу найти, почему я получаю эту проблему, любая помощь будет благодарна.


Добавление

package com.ypd.web5; 
/** 
* Created by ldl on 2017/2/4. 
*/ 
import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

class FirstServlet extends HttpServlet { 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { 
     super.doGet(req, response); 

     response.getWriter().write("This is first servlet!"); 
    } 
} 
+0

Можете ли вы также включить определение класса 'FirstServlet', предполагая, что оно будет соответствовать? –

+0

@Tim Biegeleisen, Тим, я не очень понимаю ваше значение. как включить определение для 'FirstServlet'? – aircraft

+0

Покажите нам код. –

ответ

0

Вы должны объявить класс сервлета и методы инициализации, сервис и уничтожить как общественности, так как сервер должен иметь возможность доступа к ним. Это очень похоже на основной метод, объявляющий публичным доступным модификатором доступа. Другая причина в HttpServlet и в классах GenericServlet, эти три метода являются общедоступными, уровень доступа которых вы не можете уменьшить в унаследованных классах.

Так что проверьте, объявлен ли ваш класс FirstServlet открытым классом.

+0

спасибо, мой класс не установил открытый класс, только класс – aircraft