Maks00088
@Maks00088
Обучаюсь Java/JavaEE /Php/Js

Передача JSON через Postman и отладка запроса на сервер, почему не выходит?

Всем привет!

Пытаюсь передать JSON дата через Postman на сервак. Происходит следующее.

При запуске самого веб сервака томкат инициализирует фильтер.
При запросе в фильтре выводится doFilter, что происходит с destroy почему не вызывается?
Класс регистер: В консоль принт не выводится, тоисть программа не запустила этот класс, почему ?
Следовательно немогу передать данные на MySql сервер, если кто может обьяснить сам процесс буду признателен!

Пример регистра, нету вывода в консоль.
@Path("/register")
     public class Register extends HttpServlet{


     private static final long serialVersionUID = 1068653210561068853L;
     Connection con;

     @POST
     @Consumes({MediaType.APPLICATION_JSON})
     public void Registering(@Valid User user){

    ConnectionPool con_pool = ConnectionPool.con_instance;

    String register = "INSERT INTO users(nickname,first_name,last_name,password,type,email)values(?,?,?,?,?,?)";

    PreparedStatement pre;

    try {

        pre = con.prepareStatement(register);
        pre.setString(1,user.getNickName());
        pre.setString(2,user.getFirstName());
        pre.setString(3,user.getLastName());
        pre.setString(4,user.getPassword());
        pre.setString(5,user.getType());
        pre.setObject(6,user.getEmail());
        pre.execute();

        **System.out.println("In the register method");**


    }catch(com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException e){

        throw new DuplicateUser("Such user already exists in database");

    }catch (SQLException e1) {

        throw new DataBaseError("You have some problems that need to be fixed with your database..");
    }
    finally{

    try {
        con_pool.returnConnection(con);
    } catch (CouponSystemException e1) {
        throw new DataBaseError("You have some problems that need to be fixed with your database..");
    }

    try {
        con.close();
    } catch (SQLException e) {

        throw new DataBaseError("You have some problems that need to be fixed with your database..");
      }
     }      
    }
    }


Пример фильтра, вывод только doFilter и init при запуске сервера.
public class RegisterFilter implements Filter{

@Override
public void destroy() {

    System.out.println("In the destroy method");

}

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
        throws IOException, ServletException {


    HttpServletResponse httpResponse = (HttpServletResponse)res;

    httpResponse.setHeader("Access-Control-Allow-Origin", "http://localhost");
    httpResponse.setHeader("Access-Control-Allow-Methods", "POST");
    httpResponse.setHeader("Access-Control-Max-Age", "86400");
    httpResponse.setHeader("Content-Language", "en-US");
    httpResponse.setContentType("application/json;charset=utf-8");

    System.out.println("In the do filter method");

}

@Override
public void init(FilterConfig config) throws ServletException {

    System.out.println("In the init method");

}


Пример выводов в консоль:
7d5d55286ab04a85be6a79167427a657.png743426943e6f487fa4d91d7f02edad48.png
<servlet>
  <servlet-name>Register</servlet-name>
  <servlet-class>coupon.register.Register</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>Register</servlet-name>
  <url-pattern>/register/posting</url-pattern>
  </servlet-mapping>
 
  
  <!--  <filter>
  <filter-name>Register</filter-name>
  <filter-class>coupon.filters.RegisterFilter</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>Register</filter-name>
  <url-pattern>/register/posting</url-pattern>
  </filter-mapping> 
 -->
  
  <security-constraint>
  <web-resource-collection>
  <web-resource-name>RegisterPosting</web-resource-name>
  <url-pattern>/register/posting</url-pattern>
  <http-method>POST</http-method>
  </web-resource-collection>
  
  <user-data-constraint>
  <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
  
  
  </security-constraint>
  
   <!-- Registration -->
   
   <session-config>
    <session-timeout>30</session-timeout>
    <cookie-config>
      <name>SESSIONID</name>
    </cookie-config>
  </session-config>

Решение!
@GET
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		Post calling! 
	}
  • Вопрос задан
  • 11856 просмотров
Пригласить эксперта
Ответы на вопрос 1
init и destroy не вызываются каждый раз в отличие от dofilter
Фильтры нужно вызывать по цепочке.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы