powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка JSON при использовании JPA, restful
5 сообщений из 5, страница 1 из 1
Ошибка JSON при использовании JPA, restful
    #38896822
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня! Уже и танцы с бубном не помогают, прошу у вас помощи.
Через restful нужно сохранить объект в БД с использованием JPA.
Вот ошибка (ниже будут исходники):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "active" (class com.entities.Excursion), not marked as ignorable (6 known properties: "isActive", "shortDescription", "id", "pathExcursion", 
"fullDescription", "pictureDescription"])
 at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@200a7241; line: 1, column: 46] (through reference chain: com.entities.Excursion["active"])
	at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:731) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:915) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1292) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1270) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:247) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1232) [jackson-databind-2.4.1.jar:2.4.1]
	at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:676) [jackson-databind-2.4.1.jar:2.4.1]
	at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.readFrom(ResteasyJackson2Provider.java:120) [resteasy-jackson2-provider-3.0.10.Final.jar:]
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:59) [resteasy-jaxrs-3.0.10.Final.jar:]
	at org.jboss.resteasy.core.interception.ServerReaderInterceptorContext.readFrom(ServerReaderInterceptorContext.java:62) [resteasy-jaxrs-3.0.10.Final.jar:]
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:51) [resteasy-jaxrs-3.0.10.Final.jar:]
	at org.jboss.resteasy.security.doseta.DigitalVerificationInterceptor.aroundReadFrom(DigitalVerificationInterceptor.java:32) [resteasy-crypto-3.0.10.Final.jar:]
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53) [resteasy-jaxrs-3.0.10.Final.jar:]
	at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59) [resteasy-jaxrs-3.0.10.Final.jar:]
	at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53) [resteasy-jaxrs-3.0.10.Final.jar:]
	at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:150) [resteasy-jaxrs-3.0.10.Final.jar:]
	... 37 more



Куда копать?? Как победить эту ошибку??

Класс сущности:
Код: java
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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
@Entity
@Table(schema = "public")
public class Excursion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id_excursion;
    

    private String short_description;
    private String full_description;
    private String picture_description;
    private String path_excursion;
    private Boolean is_active=true;
    
    public Long getId() {
        return id_excursion;
    }

    public void setId(Long id) {
        this.id_excursion = id;
    }
    
    public String getShortDescription(){
        return this.short_description;
    }

    public void setShortDescription(String short_description){
        this.short_description=short_description;
    }

    public String getFullDescription(){
        return this.full_description;
    }
    public void setFullDescription(String full_description){
        this.full_description=full_description;
    }
    public String getPictureDescription(){
        return this.picture_description;
    }
    public void setPictureDescription(String picture_description){
        this.picture_description=picture_description;
    }

    public String getPathExcursion(){
        return this.path_excursion;
    }

    public void setPathExcursion(String path_excursion){
        this.path_excursion=path_excursion;
    }

    public void setIsActive(Boolean active){
        this.is_active=active;
    }

    public Boolean isActive(){
        return this.is_active;
    }
}



SessionBean:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@Path("/excursion")
@Stateless
@Produces(MediaType.APPLICATION_JSON)
public class ExcursionFacade extends AbstractFacade<Excursion> {
    @PersistenceContext(unitName = "audio_guide")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public ExcursionFacade() {
        super(Excursion.class);
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public abstract class AbstractFacade<T> {
    private Class<T> entityClass;

    public AbstractFacade(Class<T> entityClass) {
        this.entityClass = entityClass;
    }

    protected abstract EntityManager getEntityManager();

    @PUT
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Response create(T entity) {
        getEntityManager().persist(entity);
        getEntityManager().flush();
        return Response.ok(entity).build();
    }
}




Тест:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void crudExample() {
      String REST_SERVICE_URL = "http://localhost:8080/application/webresources/excursion";
      Client client = ClientBuilder.newClient().register(JacksonFeature.class);

      Excursion excursion = new Excursion();
      Excursion excursionPersisted = client
                .target(REST_SERVICE_URL)
                .request()
                .put(Entity.entity(excursion, MediaType.APPLICATION_JSON),
                        Excursion.class);
}
...
Рейтинг: 0 / 0
Ошибка JSON при использовании JPA, restful
    #38896837
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatrielВсем доброго дня! Уже и танцы с бубном не помогают, прошу у вас помощи.
Через restful нужно сохранить объект в БД с использованием JPA.
Вот ошибка (ниже будут исходники):
Тест:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void crudExample() {
      String REST_SERVICE_URL = "http://localhost:8080/application/webresources/excursion";
      Client client = ClientBuilder.newClient().register(JacksonFeature.class);

      Excursion excursion = new Excursion();
      Excursion excursionPersisted = client
                .target(REST_SERVICE_URL)
                .request()
                .put(Entity.entity(excursion, MediaType.APPLICATION_JSON),
                        Excursion.class);
}



Вам же английским по белому написали -
Поля должны быть заполнены.
Т.е. вы не заполнили данными переменную excursion.
...
Рейтинг: 0 / 0
Ошибка JSON при использовании JPA, restful
    #38896859
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

мне русским по белому написали "Не корректное поле "active", прошу заметить, в классе такого поля нет.
Но проблема уже разрешилась. JSON, видать не признает сеттеры и геттеры со словом Active. Переименовал методы и все разаработало :)
...
Рейтинг: 0 / 0
Ошибка JSON при использовании JPA, restful
    #38896912
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatrielmad_nazgul,

мне русским по белому написали "Не корректное поле "active", прошу заметить, в классе такого поля нет.
Но проблема уже разрешилась. JSON, видать не признает сеттеры и геттеры со словом Active. Переименовал методы и все разаработало :)

У вас есть поле "active"...
Только оно назвается is_active ;-)
Похоже на особенности Jackson.
...
Рейтинг: 0 / 0
Ошибка JSON при использовании JPA, restful
    #38896973
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

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


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