• Как сделать правильно POST запрос java?

    timych
    @timych
    Вы не очень понимаете что у вас происходит в коде. Пара комментариев в коде:
    @POST
        @Path("/add")
        @Produces(MediaType.APPLICATION_JSON)
        public String saveNewPerson(JSONObject person) throws JSONException {
    	
    	//вызов этого метода никак  не влияет на код, так как  toString() возвращает строку, но вы ее никак не используете
            person.toString();
    		// тут как раз и происходит toString(); 
             System.out.println(person + " output in service.java");
    		 //почему в savePerson() вы кладете NULL?
            if (!personDao.savePerson(null)) {
                return "Person create success   id=";
     
            } else {
                return "error, check information for new person";
            }
        }
    	
    	******************************************
    			// Тут нужно класть Entity класс ,а не JSONObject.
                session.saveOrUpdate(person);


    Вы передаете в метод null и естественно у вас ошибка. Но даже если бы вы передавали свой JSONObject, то ничего не произойдет, потому как сохранять необходимо персистентный обьект, представляющий таблицу в базе данных. Так называемый entity.
    Вот как примерно он мог бы у вас выглядеть:
    @Entity
    @Table(name =  "person")
    public class Person implements Serializable{
    
        private static final long serialVersionUID = 1L;
    
    	@Id
    	@Column(name = "id", nullable = false)
    	private int id;
    	
    	@Column(name = "full_name")
    	private String fullName;
    	
    	@Column(name = "age")
    	private int age;
    	
    	@Column(name = "city")
    	private String city;
    	
    	@Column(name = "gender")
    	@Enumerated(EnumType.STRING)
    	private Gender gender;
    	
    	
    	public Person(){
    	}
    	
    	// геттеры и сеттеры обязательно
    }


    В общем почитайте матчасть немного.
    Ответ написан
    Комментировать
  • Пустая страница при обработке ошибок сервера?

    BestuseR
    @BestuseR
    .
    Попробуйте полный путь к файлу на сервере указать, например: /WEB-INF/views/404.html (или где он у вас там)
    Также посмотрите, вы маппите приложение не в корень, а в /application_name можете попробовать ещё /название проекта/404error.html
    Ответ написан
    Комментировать
  • Как вывести названия столбцов из таблицы?

    timych
    @timych
    Можно немного покритиковать?
    Во первых - прикладывайте stack trace (Хотя я уверен что выскочил HibernateException).

    Во вторых читайте Javadoc: Метод createQuery() - Create a new instance of Query for the given HQL query string.
    В вашем рабочем примере вы как раз и используете HQL. А в нерабочем пытаетесь запихнуть SQL специфичный для MySql базы данных.
    Если хотите использовать SQL, то наверное лучше использовать createSQLQuery().

    В третьих , это все равно работать будет -потому что вы пытаетесь засунуть в Entity , который описывает таблицу, заголовки колонок, этой таблицы. Вы сами представляете как это возможно? Непонятно что вы хотите сделать, и для чего это нужно. Вы не знаете названия колонок в таблице? И на кой черт рест-клиенту их получать?

    Но если уж так надо , то вот вроде рабочий пример: https://developer.jboss.org/thread/189593?start=0&...
    Ответ написан
    Комментировать