Cannot consume content type

0

W momencie dodania do bazy dostaję błąd i nie wiem dla czego również przy wyciąganiu z bazy rekordów dostaje pustą listę.

Controller

@Path("/log")
@Named
@RequestScoped
public class LoginController {

    private static Logger logger = Logger.getLogger(LoginController.class);


    @Inject
    UserDao userDao;


    @POST
    @Path("/create")
    @Consumes("application/json")
    public void cresteUser() {
        User userData  = new User();
        userData.setUserLogin("Test");
        userData.setUserSName("Test1");
        userDao.addUser(userData);

 @GET
    @Path("/getu")
    @Produces("application/json")
    public int getUser(){
       List<User> list = userDao.findAll();
        return list.size();
    }

    }

DAO

@Named
@RequestScoped
@TransactionManagement
public class UserDao {

    EntityManager em;

    public User addUser(User userData) {
        em.persist(userData);
        return userData;
    }

    public List<User> findAll(){
        return em.createQuery("select u from User as u ", User.class).getResultList();
    }
}

persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
    <persistence-unit name="MySqlDS">
        <jta-data-source>java:/MySqlDS</jta-data-source>
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url"
                      value="jdbc:mysql://localhost:3306/db"/>
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="root" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>
    </persistence-unit>
</persistence> 
0

A jak wysyłasz zapytanie? Co masz w nagłówkach?

0
  1. Cannot consume content type Dostajesz gdy wysyłasz zły typ danych. Czy na pewno to co ślesz w nagłówku ma content-type=application/json? Czy sama zawartość jest typu json?
  2. <property name="hibernate.hbm2ddl.auto" value="create" /> To tworzy bazę danych gdy jest stawiana aplikacja i nadpisuje to co już jest. Czyli po starcie aplikacji rekordy które dodałeś wcześniej są usunięte. Czy dodajesz osoby skryptem dopior PO postawienu aplikacji?
0

Właśnie to co dodałem ręcznie w bazie danych nadal istnieje więc może błąd leży gdzieś po stronie konfiguracji z bazą danch?

0

Masz blad w request headers (ta zakladka, ktora pokazales). Poprawny naglowek to Content-type nie Accept.
Content-Type: application/json; charset=utf-8

0

Jako body dałeś empty, więc wysyłasz w headerze że będzie json, a jsona nie ma :(.

Odpal takie samo zapytanie na bazie danych po postawieniu aplikacji i zobacz czy też masz pustą listę.

0

Dodałem content- type i jeszcze przez przypadek wcześniej usunąłem z DAO @PersistenceContext to naprawiłem to. W tej chwili mam nadal pustą listę a przy @POST dostaje code 204 a na serwerze nic się nie dzieje brak jakichkolwiek nowych logów. Czy nie ma to nic wspólnego z konfiguracją bazy?

OK @GET już działa ale nadal mam problem z @POST

0

To na poziomie controllera dziala :

   @POST
    @Transactional
    @Path("/getUser")
    @Consumes("application/json")
    public void addUser(){
        User user = new User();
        user.setUserName("Test11");
        user.setUserSName("Test21");
        em.persist(user);

    }

To już nie

    @POST
    @Path("/addNewUser")
    @Transactional
    @Consumes("application/json")
    public void cresteUser() {
        User userData  = new User();
        userData.setUserLogin("Test");
        userData.setUserSName("Test1");

    }
0

Juz jest wszytko ok

1 użytkowników online, w tym zalogowanych: 0, gości: 1