Buon giorno a tutti, sono nuovo, sia nel forum, sia come "programmatore" se cosi si puo dire;
ho iniziato infatti ad interessarmi alla materia pochi mesi fa, verso febbraio, ho iniziato con java, ho visto un po' di html, javascript, ora sto cercando di studiare spring MVC, stavo creando un progettino per fare un po' di pratica dopo tanta teoria, e ho riscontrato questo problema:
durante l'invio di alcuni dati inseriti tramite form, mi spunta questo errore :
"type Exception reportmessage Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletExceptio n: Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet .java:648)
javax.servlet.http.HttpServlet.service(HttpServlet .java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilt er(WsFilter.java:52)
root cause
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.
org.hibernate.validator.internal.engine.constraint validation.ConstraintValidatorManager.verifyResolv eWasUnique(ConstraintValidatorManager.java:218)
org.hibernate.validator.internal.engine.constraint validation.ConstraintValidatorManager.findMatching ValidatorClass(ConstraintValidatorManager.java:193 )
org.hibernate.validator.internal.engine.constraint validation.ConstraintValidatorManager.getInitializ edValidator(ConstraintValidatorManager.java:97)
org.hibernate.validator.internal.engine.constraint validation.ConstraintTree.validateConstraints(Cons traintTree.java:125)
org.hibernate.validator.internal.engine.constraint validation.ConstraintTree.validateConstraints(Cons traintTree.java:91)
org.hibernate.validator.internal.metadata.core.Met aConstraint.validateConstraint(MetaConstraint.java :84)
org.hibernate.validator.internal.engine.ValidatorI mpl.validateConstraint(ValidatorImpl.java:525)
org.hibernate.validator.internal.engine.ValidatorI mpl.validateConstraintsForDefaultGroup(ValidatorIm pl.java:465)
org.hibernate.validator.internal.engine.ValidatorI mpl.validateConstraintsForCurrentGroup(ValidatorIm pl.java:429)
org.hibernate.validator.internal.engine.ValidatorI mpl.validateInContext(ValidatorImpl.java:381)
org.hibernate.validator.internal.engine.ValidatorI mpl.validate(ValidatorImpl.java:184)
org.springframework.validation.beanvalidation.Spri ngValidatorAdapter.validate(SpringValidatorAdapter .java:101)
org.springframework.validation.DataBinder.validate (DataBinder.java:722)
org.springframework.web.method.annotation.ModelAtt ributeMethodProcessor.validateIfApplicable(ModelAt tributeMethodProcessor.java:155)
org.springframework.web.method.annotation.ModelAtt ributeMethodProcessor.resolveArgument(ModelAttribu teMethodProcessor.java:108)
org.springframework.web.method.support.HandlerMeth odArgumentResolverComposite.resolveArgument(Handle rMethodArgumentResolverComposite.java:75)
org.springframework.web.method.support.InvocableHa ndlerMethod.getMethodArgumentValues(InvocableHandl erMethod.java:156)
org.springframework.web.method.support.InvocableHa ndlerMethod.invokeForRequest(InvocableHandlerMetho d.java:117)
org.springframework.web.servlet.mvc.method.annotat ion.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:96)
org.springframework.web.servlet.mvc.method.annotat ion.RequestMappingHandlerAdapter.invokeHandlerMeth od(RequestMappingHandlerAdapter.java:617)
org.springframework.web.servlet.mvc.method.annotat ion.RequestMappingHandlerAdapter.handleInternal(Re questMappingHandlerAdapter.java:578)
org.springframework.web.servlet.mvc.method.Abstrac tHandlerMethodAdapter.handle(AbstractHandlerMethod Adapter.java:80)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:923)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet .java:648)
javax.servlet.http.HttpServlet.service(HttpServlet .java:729) org.apache.tomcat.websocket.server.WsFilter.doFilt er(WsFilter.java:52)"
la cosa strana e che prima di questo avevo creato un progettino molto piu banale, in cui avevo gia inserito la validazione tramite annotazioni, e il tutto funzionava.
ho inserito la dipendenza...
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.1.Final</version>
</dependency>
e questa è la mia classe ...
package com.scuolaspring.entities;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import javax.validation.constraints.Size;
public class User
{
@NotNull()
@Size(min=2 , max=20 , message="il nome deve avere da 2 a 20 caratteri")
private String nome;
@NotNull()
@Size(min=2 , max=20 , message="il cognome deve avere da 2 a 20 caratteri")
private String cognome;
@NotNull()
@Past()
private String datadinascita;
@NotNull()
private String genere;
@NotNull()
@Size(min=4 , max=16 , message="l'username deve essere composto da 4 a 16 caratteri")
private String username;
@NotNull()
@Size(min=4 , max=16 , message="la password deve essere composta da 4 a 16 caratteri")
private String password;
@NotNull()
@Size(min=16 , max=16 , message="il codice fiscale deve essere composto da 16 cifre")
private String cf;
@NotNull(message="scegli una professione")
private String professione;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCognome() {
return cognome;
}
public void setCognome(String cognome) {
this.cognome = cognome;
}
public String getDatadinascita() {
return datadinascita;
}
public void setDatadinascita(String datadinascita) {
this.datadinascita = datadinascita;
}
public String getGenere() {
return genere;
}
public void setGenere(String genere) {
this.genere = genere;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getCf() {
return cf;
}
public void setCf(String cf) {
this.cf = cf;
}
public String getProfessione() {
return professione;
}
public void setProfessione(String professione) {
this.professione = professione;
}
}
Sono un po nel panico, scusate se non sono stato chiaro...