Zapisywanie danych przy użyciu Hibernate w aplikacji restowej

0

Jak zminić kontroler( w nim jest cyrk w tej chwili) tak żeby zapisywał przy użyciu np. rest clienta oraz porszę o sprawdzenie czy dobrze mam napisane resztę kodu. Również nie wiem jak załatwić sparwe User i UserRequest jak powinny wygladać Dopiero zaczynam naukę ze springiem.

Controller

@Controller
public class SignUpController {
 
    private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"  
   + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
 
    private static final Logger log = LoggerFactory.getLogger(SignUpController.class);
 
    @Autowired
    private UserDao userDao;
 
    @Inject
    MyUserDetailsServ myUserDetailsServ
 
  @RequestMapping(value = "/users", method = RequestMethod.POST )
    public String users(@ModelAttribute @RequestBody @Valid User user, BindingResult bindingResult){
        log.info("Create new USER");
 
        myUserDetailsServ.registerUser(toUser(user), bindingResult);
 
        private static UserRequests toUser(User user){
             UserRequests userReq = new UserRequests();
             userReq.setId(user.getId());
             userReq.setEmail(user.getEmail());
             userReq.setEmail(user.getPassword());
             return userReq;
 
    }

Albo taki kontroler który wyświetla w .jsp( to umiem) ale nie wiem jak zorobić zeby była to aplikacja restowa bez użycia views jsp tylko Jsona

@Controller
public class SignUpController {

    private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"  
   + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

    private static final Logger log = LoggerFactory.getLogger(SignUpController.class);
    
    @Autowired
    private UserDao userDao;

    @Inject
    MyUserDetailsServ myUserDetailsServ;
 
    @RequestMapping(value = "/user", method = RequestMethod.GET)
    public ModelAndView signUpPage() {
        ModelAndView model = new ModelAndView();
        model.addObject("pageTitle", "Sign up page");
        model.setViewName("signup");
        return model;
    }

    @RequestMapping(value = "/user", method = RequestMethod.POST)
    public ModelAndView signUp(
            @RequestParam(value = "email", required = false) String email,
            @RequestParam(value = "password", required = false) String password,
            @RequestParam(value = "passwordConfirm", required = false) String passwordConfirm) {

        ModelAndView model = new ModelAndView();
        model.addObject("pageTitle", "Sign up page");
        model.setViewName("signup");

        if (!isEmailValid(email)) {
            model.addObject("error", "Email addres is not valid. Please use correct value.");
            return model;
        }
        if (isEmailExists(email)) {
            model.addObject("error", "Please use different email address");
            return model;
        }

        if (!isPasswordCorrect(password, passwordConfirm)) {
            model.addObject("error", "Password is incorrect or is not match with Confirm password value. Please use correct values.");
            return model;
        }

        User user = new User();
        user.setEmail(email);
        user.setPassword(password);
        userDao.save(user);
        model.addObject("info", "Your account has been created successfully.");
        return model;
    }

    private boolean isEmailExists(String email) {
        User user = userDao.findUserByEmail(email);
        return user != null;
    }

    private boolean isEmailValid(String email) {
        boolean result = false;
        if (email != null && !email.isEmpty()) {
            Pattern pattern = Pattern.compile(EMAIL_PATTERN);
            Matcher matcher = pattern.matcher(email);
            result = matcher.matches();
        }
        return result;
    }

    private boolean isPasswordCorrect(String password, String passwordConfirm) {
        boolean result = false;
        if (password != null && !password.isEmpty() && passwordConfirm != null && !passwordConfirm.isEmpty()) {
            result = password.equals(passwordConfirm);
        }
        return result;
    }

MyUserDeatailService.xml

import javax.inject.Inject;
 
import org.springframework.stereotype.Service;
import org.springframework.validation.Errors;
 
 
@Service
public class MyUserDetailsService implements MyUserDetailsServ{
 
 
   @Inject 
    private UserDao userDao;
 
 
    private void validateEmail(String email, Errors errors){
        if(userDao.findUserByEmail(email) !=null){
            errors.rejectValue("email", "email is duplicate",
                    new String[] { email }, null );
        }
    }
 
 
    @Override
    public boolean registerUser(User user, Errors errors) {
        validateEmail(user.getEmail(), errors);
        boolean valid = !errors.hasErrors();
        if(valid){ userDao.save(user); }
        return valid;
        }
    }

UserRequest

public class UserRequests {
 
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name="id")
  @NotNull
  private Long id;
 
  @NotNull
  @Email
  @Column(name="email")
  private String email;
 
  @Column(name="pssword")
  @Size(min = 6, max = 20)
  @NotNull
  private String password;
 

    public UserRequests(String email, String password) {
        this.email = email;
        this.password = password;
    }
 
    public UserRequests() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
 
 
    @Override
    public String toString() {
        return "User{" + "id=" + id + ", email=" + email + ", password=" + password +  '}';
    }
}

User

@Entity
@Table(name = "user")
public class User  implements Serializable{

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name="id")
  @NotNull
  private Long id;
 
  @NotNull
  @Email
  @Column(name="email")
  private String email;
 
  @Column(name="pssword")
  @Size(min = 6, max = 20)
  @NotNull
  private String password;

    public User(String email, String password) {
        this.email = email;
        this.password = password;
    }
 
    public User() {
 
    }
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    @Override
    public String toString() {
        return "User{" + "id=" + id + ", email=" + email + ", password=" + password +  '}';
    }
}

UserDaoImp

import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.security.authentication.encoding.PasswordEncoder;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
 
@Repository
public class UserDaoImpl implements UserDao {
 
    private SessionFactory sessionFactory;
 
    private PasswordEncoder passwordEncoder;
 
    @Transactional()
    @Override
    public User findUserByEmail(String email) {
        List<User> users = getSessionFactory().getCurrentSession()
                .createQuery("from User where email = :email")
                .setParameter("email", email).list();
        return (CollectionUtils.isEmpty(users)) ? null : users.get(0);
    }
 
    @Transactional
    @Override
    public void save(User user) {
        getSessionFactory().getCurrentSession().save(user);
        String encodedPassword = getPasswordEncoder()
                .encodePassword(user.getPassword(), user.getEmail());
        user.setPassword(encodedPassword);
        getSessionFactory().getCurrentSession().save(user);
    }
 
    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }
 
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }
 
    public PasswordEncoder getPasswordEncoder() {
        return passwordEncoder;
    }
 
    public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
        this.passwordEncoder = passwordEncoder;
    }
}

usunięcie dziur z posta - furious programming

0

Spring 4 ma coś takiego jak @RestController. Przykład masz tu: https://github.com/Pharisaeus/SpringScaffoldApplication
Rada na przyszłość: nikt nie będzie czytał takich długich kodów.

0

stworzyłem kontroler i w nim zadanie

@RequestMapping(value = "/users", method = RequestMethod.POST)
    public ResponseEntity users(@RequestBody UserRequests userRequests, BindingResult bindingResult ){
        User user = new User();
        user.setEmail(userRequests.getEmail());
        user.setPassword(userRequests.getPassword());
        userDao.save(user);
        
        return new ResponseEntity<>(HttpStatus.CREATED);
        
    }

ale gdy wpisuje dane w restCliencie wyskakuje mi błąd

Status
400 Bad Request Show explanation Loading time: 107
Request headers 
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/json 
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: JSESSIONID=179322915AD7B42401009C27BB167DCA
Response headers 
Server: Apache-Coyote/1.1 
Content-Type: text/html;charset=utf-8 
Content-Language: en 
Content-Length: 1009 
Date: Thu, 28 Aug 2014 13:56:10 GMT 
Connection: close

dodanie znacznika <code class="java"> - furious programming

0

A czym wysyłasz te request i jak on wygląda? Masz w aplikacji poprawnie skonfigurowanego jacksona i translacje do jsona?

0

Próbowałem użyć @RestController improtoło mi siciężkę org.spring.... ale ale @ wyskakiwał mi jako błąd. Co do odpowiedzi to dziękuję ale czy możesz mi wyjaśnić" A czym wysyłasz te request i jak on wygląda" zaczynam dopiero naukę i nie do końca się oriętuje.

0

PS: mój POM.xml

  <!-- Jackson -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.2.2</version>
    </dependency>

dodanie znacznika <code class="xml"> - furious programming

0

Pom nie gra roli, pytam o konfiguracje springa -> https://github.com/Pharisaeus/SpringScaffoldApplication/blob/master/src/main/webapp/WEB-INF/spring-context.xml popatrz na "view resolver". Masz coś takiego? Bo wkleiłes tonę kodu a konfiguracji springa nie ;]

0

@Springaaa, usunąłem post, tak jak prosiłeś; Ale ogarnij się, bo jak już podajesz kod, to usuwaj z niego wrażliwe dane :]
A najlepiej to się zarejestruj - wtedy sam będziesz mógł edytować swoje posty, jeśli coś pomylisz.

0
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
 
    <mvc:annotation-driven />
    <context:component-scan base-package="com.xxx.xxx" />
 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/" />
        <property name="suffix" value=".jsp" />
    </bean>
    
    
      
        <mvc:default-servlet-handler/>
        <mvc:annotation-driven>
            <mvc:message-converters register-defaults="false">
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="supportedMediaTypes" value="application/json" />
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.gmail.com" />
        <property name="port" value="587" />
        <property name="username" value="[email protected]" />
        <property name="password" value="xx" />
        <property name="javaMailProperties">
             <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>
            </props>
        </property>
    </bean>
</beans>

dodanie znacznika <code class="xml"> - furious programming

0

No to chyba widzisz że w twoim kodzie i w kodzie który ci podałem jest pewna zasadnicza różnica. Brakuje ci mapowania jsona ;]
Zrób coś takiego:

    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="viewResolvers">
            <list>
                <bean id="viewResolver"
                      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                       <property name="prefix" value="/WEB-INF/pages/" />
                       <property name="suffix" value=".jsp" />
                </bean>
            </list>
        </property>
        <property name="defaultViews">
            <list>
                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
                    <property name="prefixJson" value="true"/>
                </bean>
            </list>
        </property>
    </bean>
0

Tak już to dodałem ale nadal nic.
Nie wiem czy przyczyna nie lezy po implementacji DAO

00:00:58.828 [http-bio-8080-exec-20] DEBUG o.s.web.servlet.DispatcherServlet - Could not complete request
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.SessionFactory.getCurrentSession()Lorg/hibernate/Session;
    at org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1284) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:965) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876) ~[spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) [spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) [spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) [servlet-api.jar:na]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) [spring-webmvc-4.0.1.RELEASE.jar:4.0.1.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) [servlet-api.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) [catalina.jar:7.0.42]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.42] 

Już nie mam pomysłu na naprawienie tego siedzę nad tym dosłownie cały dzień bardzo proszę o pomoc.

0

OMG. Powinienem olać ten temat za marnowanie mojego czasu. Skoro masz wyjątki w konsoli to PO CO pytasz o ZUPEŁNIE INNĄ RZECZ?! WTF?!
Błąd wygląda tak jakbyś przypadkiem załączył dwie różne wersje hibernate do projektu albo zrobić coś równie dziwnego.

0

TO są moje pomy i mam chyba ok

parent


    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- Spring dependencies version -->
        <spring.version>4.0.1.RELEASE</spring.version>
        <spring.security.version>3.2.3.RELEASE</spring.security.version>
        <!-- JSTL dependency version -->
        <jstl.version>1.2</jstl.version>
        <!-- Database dependencies version -->
        <mysql.connector.version>5.1.30</mysql.connector.version>
        <hibernate.version>4.1.0.Final</hibernate.version>
        <dbcp.version>1.4</dbcp.version>
        <!-- Jackson dependencies version -->
        <jackson.version>1.9.7</jackson.version>
        <!-- Java mail dependency version -->
        <javax.mail.version>1.4.3</javax.mail.version>
        <!-- Logging dependencies version -->
        <logback.version>1.1.2</logback.version>
        <slf4j.version>1.7.6</slf4j.version>
    </properties>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>javax.transaction</groupId>
                <artifactId>jta</artifactId>
                <version>1.1</version>
        </dependency>
        
         <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>

        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
        </dependency>
        
        <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-orm</artifactId>
           <version>${spring.version}</version>
        </dependency>
        

        <!-- Spring Security dependencies -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${spring.security.version}</version>
        </dependency>

        <!-- JSTL dependency -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>${dbcp.version}</version>
        </dependency>
 
        <!-- Hibernate ORM -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.1.0.Final</version>
        </dependency>

        <!-- MySql Driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.connector.version}</version>
        </dependency>

        <!-- Jackson -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.2.2</version>
    </dependency>

        <!-- Java Mail API -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>${javax.mail.version}</version>
        </dependency>

        <!-- logging, slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
 
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
 
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
     
       <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
                <type>jar</type>
        </dependency>

        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
               
            <configuration>
                <warName>ROOT</warName>
                <outputDirectory>${out.directory}</outputDirectory>
            </configuration>
        </plugin>
            
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    
    

</project>

pom.xml

<dependencies>
            <dependency>
                <groupId>javax.transaction</groupId>
                <artifactId>jta</artifactId>
        </dependency>

        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>

        <!-- Spring Security dependencies -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
        </dependency>

        <!-- JSTL dependency -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
        </dependency>
 
        <!-- Hibernate ORM -->
         <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>

        <!-- MySql Driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- Jackson -->
        <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>

        <!-- Java Mail API -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
        </dependency>

        <!-- logging, slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>
 
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
      
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
        </dependency>
                <dependency>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
            <type>jar</type>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
1

Błąd wynika z tego co napisałem, ale nie do końca z twojej winy. Patrz jakei zależności łyka spring-orm:
http://mvnrepository.com/artifact/org.springframework/spring-orm/4.0.1.RELEASE
W szczególności:

org.hibernate hibernate-core 4.2.8.Final
org.hibernate hibernate-core 3.6.10.Final
org.hibernate hibernate-entitymanager 4.2.8.Final
org.hibernate hibernate-entitymanager 3.6.10.Final

Więc jak widzisz wersje niezgodne z tą którą sam wciągasz. Tak być nie może :)

0

Tamte błędy poprawiłem ale
w rest client pojawia mi się błąd

Status
400 Bad Request Show explanation Loading time: 413
Request headers 
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/json 
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: JSESSIONID=B92811F2764696054FB3C898ABD6B79F
Response headers 
Server: Apache-Coyote/1.1 
Content-Type: text/html;charset=utf-8 
Content-Language: en

a w logach serwera :

65f45f0dfe.png

0

Wygląda że jackson nie potrafi przerobić tej klasy na JSONa.

  1. Używanie obiektów encyjnych w widoku to średni pomysł, bo kiedyś sobie coś skasujesz z bazy bo zmodyfikujesz taki obiekt przed wysłaniem do widoku a sesja będzie jeszcze otwarta i wprowadzisz zmiany w bazie...
  2. Błąd wygląda tak jakbyś nie miał w tej klasie domyślnego konstruktora i setterów/getterów dla każdego pola.
0

ok. będę poprawiam. Czyli z User powinienem usunąć @Enitity a wstawić do UserRequests?

0

Ale po co w ogóle ten UserRrequest to jest entity? Po co chcesz to zapisywać w bazie danych? o_O

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