Lucas_Camara 29 de jun. de 2020
Desse jeito está dando erro?
Weslley_De_Souza 29 de jun. de 2020
@Lucas_Camara quando eu clico no botão da esse erro
jun 29 , 2020 5 : 35 : 27 PM org . apache . catalina . core . StandardWrapperValve invoke
GRAVE : Servlet . service () for servlet [ default ] in context with path [ /guide10 ] threw exception
br . com . caelum . vraptor . http . InvalidParameterException : Exception when trying to instantiate Target ( name = avaliacao , type = class br . com . guide10 . models . AvaliacaoModel )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator . handleException ( VRaptorInstantiator . java : 129 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator . handleException ( VRaptorInstantiator . java : 131 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator . instantiate ( VRaptorInstantiator . java : 123 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator . instantiate ( VRaptorInstantiator . java : 115 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator $ Proxy $ _ $$ _WeldClientProxy . instantiate ( Unknown Source )
at br . com . caelum . vraptor . http . iogi . IogiParametersProvider . instantiateOrAddError ( IogiParametersProvider . java : 87 )
at br . com . caelum . vraptor . http . iogi . IogiParametersProvider . instantiateParameters ( IogiParametersProvider . java : 80 )
at br . com . caelum . vraptor . http . iogi . IogiParametersProvider . getParametersFor ( IogiParametersProvider . java : 72 )
at br . com . caelum . vraptor . http . iogi . IogiParametersProvider $ Proxy $ _ $$ _WeldClientProxy . getParametersFor ( Unknown Source )
at br . com . caelum . vraptor . observer . ParametersInstantiator . getParametersForCurrentMethod ( ParametersInstantiator . java : 149 )
at br . com . caelum . vraptor . observer . ParametersInstantiator . instantiate ( ParametersInstantiator . java : 89 )
at sun . reflect . GeneratedMethodAccessor73 . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at org . jboss . weld . injection . MethodInjectionPoint . invokeOnInstanceWithSpecialValue ( MethodInjectionPoint . java : 93 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 266 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 253 )
at org . jboss . weld . event . ObserverMethodImpl . notify ( ObserverMethodImpl . java : 232 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 169 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 165 )
at org . jboss . weld . event . ObserverNotifier . notifyObservers ( ObserverNotifier . java : 119 )
at org . jboss . weld . event . ObserverNotifier . fireEvent ( ObserverNotifier . java : 112 )
at org . jboss . weld . event . EventImpl . fire ( EventImpl . java : 83 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . start ( DefaultInterceptorStack . java : 90 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack $ Proxy $ _ $$ _WeldClientProxy . start ( Unknown Source )
at br . com . caelum . vraptor . observer . RequestHandlerObserver . handle ( RequestHandlerObserver . java : 93 )
at sun . reflect . GeneratedMethodAccessor64 . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at org . jboss . weld . injection . MethodInjectionPoint . invokeOnInstanceWithSpecialValue ( MethodInjectionPoint . java : 93 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 266 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 253 )
at org . jboss . weld . event . ObserverMethodImpl . notify ( ObserverMethodImpl . java : 232 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 169 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 165 )
at org . jboss . weld . event . ObserverNotifier . notifyObservers ( ObserverNotifier . java : 119 )
at org . jboss . weld . event . ObserverNotifier . fireEvent ( ObserverNotifier . java : 112 )
at org . jboss . weld . event . EventImpl . fire ( EventImpl . java : 83 )
at br . com . caelum . vraptor . VRaptor . doFilter ( VRaptor . java : 123 )
at org . apache . catalina . core . ApplicationFilterChain . internalDoFilter ( ApplicationFilterChain . java : 193 )
at org . apache . catalina . core . ApplicationFilterChain . doFilter ( ApplicationFilterChain . java : 166 )
at org . apache . catalina . core . StandardWrapperValve . invoke ( StandardWrapperValve . java : 202 )
at org . apache . catalina . core . StandardContextValve . invoke ( StandardContextValve . java : 96 )
at org . apache . catalina . authenticator . AuthenticatorBase . invoke ( AuthenticatorBase . java : 541 )
at org . apache . catalina . core . StandardHostValve . invoke ( StandardHostValve . java : 139 )
at org . apache . catalina . valves . ErrorReportValve . invoke ( ErrorReportValve . java : 92 )
at org . apache . catalina . valves . AbstractAccessLogValve . invoke ( AbstractAccessLogValve . java : 690 )
at org . apache . catalina . core . StandardEngineValve . invoke ( StandardEngineValve . java : 74 )
at org . apache . catalina . connector . CoyoteAdapter . service ( CoyoteAdapter . java : 343 )
at org . apache . coyote . http11 . Http11Processor . service ( Http11Processor . java : 373 )
at org . apache . coyote . AbstractProcessorLight . process ( AbstractProcessorLight . java : 65 )
at org . apache . coyote . AbstractProtocol $ ConnectionHandler . process ( AbstractProtocol . java : 868 )
at org . apache . tomcat . util . net . NioEndpoint $ SocketProcessor . doRun ( NioEndpoint . java : 1590 )
at org . apache . tomcat . util . net . SocketProcessorBase . run ( SocketProcessorBase . java : 49 )
at java . util . concurrent . ThreadPoolExecutor . runWorker ( Unknown Source )
at java . util . concurrent . ThreadPoolExecutor $ Worker . run ( Unknown Source )
at org . apache . tomcat . util . threads . TaskThread $ WrappingRunnable . run ( TaskThread . java : 61 )
at java . lang . Thread . run ( Unknown Source )
Caused by : java . lang . NullPointerException
at br . com . caelum . iogi . reflection . NewObject $ JavaSetter . settersOf ( NewObject . java : 118 )
at br . com . caelum . iogi . reflection . NewObject $ Setter . settersIn ( NewObject . java : 67 )
at br . com . caelum . iogi . reflection . NewObject $ Setter . access $ 000 ( NewObject . java : 63 )
at br . com . caelum . iogi . reflection . NewObject . populateProperties ( NewObject . java : 51 )
at br . com . caelum . iogi . reflection . NewObject . valueWithPropertiesSet ( NewObject . java : 42 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator $ VRaptorTypeConverter . setPropertiesAfterConversions ( VRaptorInstantiator . java : 193 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator $ VRaptorTypeConverter . instantiate ( VRaptorInstantiator . java : 176 )
at br . com . caelum . iogi . MultiInstantiator . instantiate ( MultiInstantiator . java : 20 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator . instantiate ( VRaptorInstantiator . java : 121 )
at br . com . caelum . iogi . reflection . NewObject . setProperty ( NewObject . java : 58 )
at br . com . caelum . iogi . reflection . NewObject . populateProperties ( NewObject . java : 52 )
at br . com . caelum . iogi . reflection . NewObject . valueWithPropertiesSet ( NewObject . java : 42 )
at br . com . caelum . iogi . ObjectInstantiator . instantiate ( ObjectInstantiator . java : 35 )
at br . com . caelum . iogi . MultiInstantiator . instantiate ( MultiInstantiator . java : 20 )
at br . com . caelum . vraptor . http . iogi . VRaptorInstantiator . instantiate ( VRaptorInstantiator . java : 121 )
... 55 more
Lucas_Camara 29 de jun. de 2020
Manda o código da classe AvaliacaoModel.
Weslley_De_Souza 29 de jun. de 2020
@Lucas_Camara atributos, o restante da classe sãos os getters e setters
@Entity
@Table ( name = "c_avaliacao" )
public class AvaliacaoModel {
@Id
@GeneratedValue ( strategy = GenerationType . IDENTITY )
private Long idAvaliacao ;
@ManyToOne
@JoinColumn ( name = "idUsuario" )
private UsuarioModel usuarioPertencente ;
@OneToOne
@JoinColumn ( name = "idGuide" )
private ComposicaoModel guide ;
@Enumerated ( EnumType . ORDINAL )
private TpavaliaType status ;
Lucas_Camara 29 de jun. de 2020
E como é o json recebido em dados nessa parte?
var dados = $ ( "#add-avalicao" ) . serializeArray ();
Weslley_De_Souza 29 de jun. de 2020
Então, eu sou iniciante com ajax jquery, basicamente minha função pega o formulário id=“add-avaliação” e passa todo pra dentro dessa variável dados, não sei se isso é o correto se a minha function ta errada.
Lucas_Camara 30 de jun. de 2020
Dependendo do formato do json recebido na variável dados vai acontecer erro ao criar a instância da classe AvaliacaoModel . Pois, para funcionar, o json deve ter o mesmo formato dos atributos da classe. Por isso pedi para vc executar o código para ver qual json está indo para essa variável dados. Dê um console.log(dados); e copie o json impresso no console do navegador e mande ele aqui pra gente ver.
De qualquer forma, não é recomendado que seja usada uma entidade mapeada com o banco para receber os dados no controller (camada REST). É melhor ter uma classe para receber os dados e montar a entidade dentro de uma classe de lógica.
Weslley_De_Souza 30 de jun. de 2020
Acredito que esteja aqui realmente o erro.
0: {name: “avaliacao.usuarioPertencente.idUsuario[1]”, value: “1”}
2. 1: {name: “avaliacao.guide.idGuide[1]”, value: “1”}
3. 2: {name: “avaliacao.status[1]”, value: “POSITIVO”}
4. 3: {name: “avaliacao.usuarioPertencente.idUsuario[2]”, value: “1”}
5. 4: {name: “avaliacao.guide.idGuide[2]”, value: “3”}
6. 5: {name: “avaliacao.status[2]”, value: “POSITIVO”}
7. 6: {name: “avaliacao.usuarioPertencente.idUsuario[3]”, value: “1”}
8. 7: {name: “avaliacao.guide.idGuide[3]”, value: “4”}
9. 8: {name: “avaliacao.status[3]”, value: “POSITIVO”}
10. 9: {name: “avaliacao.usuarioPertencente.idUsuario[4]”, value: “1”}
11. 10: {name: “avaliacao.guide.idGuide[4]”, value: “5”}
12. 11: {name: “avaliacao.status[4]”, value: “POSITIVO”}
13. 12: {name: “avaliacao.usuarioPertencente.idUsuario[5]”, value: “1”}
14. 13: {name: “avaliacao.guide.idGuide[5]”, value: “6”}
15. 14: {name: “avaliacao.status[5]”, value: “POSITIVO”}
16. length: 15
17. proto : Array(0)
Solucao aceita
Lucas_Camara 30 de jun. de 2020 1 like
Sim, esse formato de json não serve para instanciar a classe AvaliacaoModel . Deve ser algo assim:
{
usuarioPertencente : {
// atributos da classe "UsuarioModel"
},
guide : {
// atributos da classe "ComposicaoModel"
},
status : "VALOR_VALIDO_ENUM" // algum valor válido do enum "TpavaliaType"
}
Weslley_De_Souza 1 de jul. de 2020
@Lucas_Camara depois de muita luta eu consegui refazer o json acredito que da forma certa, no entanto acho que ta dando erro na hora de passar para o controller, ele mostra o seguinte erro, Tem ideia do que seja?
br . com . caelum . vraptor . view . ResultException : Unable to deserialize data
at br . com . caelum . vraptor . serialization . gson . GsonDeserialization . deserialize ( GsonDeserialization . java : 153 )
at br . com . caelum . vraptor . serialization . gson . GsonDeserialization $ Proxy $ _ $$ _WeldClientProxy . deserialize ( Unknown Source )
at br . com . caelum . vraptor . observer . DeserializingObserver . deserializes ( DeserializingObserver . java : 96 )
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at org . jboss . weld . injection . MethodInjectionPoint . invokeOnInstanceWithSpecialValue ( MethodInjectionPoint . java : 93 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 266 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 253 )
at org . jboss . weld . event . ObserverMethodImpl . notify ( ObserverMethodImpl . java : 232 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 169 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 165 )
at org . jboss . weld . event . ObserverNotifier . notifyObservers ( ObserverNotifier . java : 119 )
at org . jboss . weld . event . ObserverNotifier . fireEvent ( ObserverNotifier . java : 112 )
at org . jboss . weld . event . EventImpl . fire ( EventImpl . java : 83 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack . start ( DefaultInterceptorStack . java : 90 )
at br . com . caelum . vraptor . core . DefaultInterceptorStack $ Proxy $ _ $$ _WeldClientProxy . start ( Unknown Source )
at br . com . caelum . vraptor . observer . RequestHandlerObserver . handle ( RequestHandlerObserver . java : 93 )
at sun . reflect . NativeMethodAccessorImpl . invoke0 ( Native Method )
at sun . reflect . NativeMethodAccessorImpl . invoke ( Unknown Source )
at sun . reflect . DelegatingMethodAccessorImpl . invoke ( Unknown Source )
at java . lang . reflect . Method . invoke ( Unknown Source )
at org . jboss . weld . injection . MethodInjectionPoint . invokeOnInstanceWithSpecialValue ( MethodInjectionPoint . java : 93 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 266 )
at org . jboss . weld . event . ObserverMethodImpl . sendEvent ( ObserverMethodImpl . java : 253 )
at org . jboss . weld . event . ObserverMethodImpl . notify ( ObserverMethodImpl . java : 232 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 169 )
at org . jboss . weld . event . ObserverNotifier . notifyObserver ( ObserverNotifier . java : 165 )
at org . jboss . weld . event . ObserverNotifier . notifyObservers ( ObserverNotifier . java : 119 )
at org . jboss . weld . event . ObserverNotifier . fireEvent ( ObserverNotifier . java : 112 )
at org . jboss . weld . event . EventImpl . fire ( EventImpl . java : 83 )
at br . com . caelum . vraptor . VRaptor . doFilter ( VRaptor . java : 123 )
at org . apache . catalina . core . ApplicationFilterChain . internalDoFilter ( ApplicationFilterChain . java : 193 )
at org . apache . catalina . core . ApplicationFilterChain . doFilter ( ApplicationFilterChain . java : 166 )
at org . apache . catalina . core . StandardWrapperValve . invoke ( StandardWrapperValve . java : 202 )
at org . apache . catalina . core . StandardContextValve . invoke ( StandardContextValve . java : 96 )
at org . apache . catalina . authenticator . AuthenticatorBase . invoke ( AuthenticatorBase . java : 541 )
at org . apache . catalina . core . StandardHostValve . invoke ( StandardHostValve . java : 139 )
at org . apache . catalina . valves . ErrorReportValve . invoke ( ErrorReportValve . java : 92 )
at org . apache . catalina . valves . AbstractAccessLogValve . invoke ( AbstractAccessLogValve . java : 690 )
at org . apache . catalina . core . StandardEngineValve . invoke ( StandardEngineValve . java : 74 )
at org . apache . catalina . connector . CoyoteAdapter . service ( CoyoteAdapter . java : 343 )
at org . apache . coyote . http11 . Http11Processor . service ( Http11Processor . java : 373 )
at org . apache . coyote . AbstractProcessorLight . process ( AbstractProcessorLight . java : 65 )
at org . apache . coyote . AbstractProtocol $ ConnectionHandler . process ( AbstractProtocol . java : 868 )
at org . apache . tomcat . util . net . NioEndpoint $ SocketProcessor . doRun ( NioEndpoint . java : 1590 )
at org . apache . tomcat . util . net . SocketProcessorBase . run ( SocketProcessorBase . java : 49 )
at java . util . concurrent . ThreadPoolExecutor . runWorker ( Unknown Source )
at java . util . concurrent . ThreadPoolExecutor $ Worker . run ( Unknown Source )
at org . apache . tomcat . util . threads . TaskThread $ WrappingRunnable . run ( TaskThread . java : 61 )
at java . lang . Thread . run ( Unknown Source )
Caused by : com . google . gson . JsonSyntaxException : com . google . gson . stream . MalformedJsonException : Use JsonReader . setLenient ( true ) to accept malformed JSON at line 1 column 36
at com . google . gson . JsonParser . parse ( JsonParser . java : 65 )
at com . google . gson . JsonParser . parse ( JsonParser . java : 45 )
at br . com . caelum . vraptor . serialization . gson . GsonDeserialization . deserialize ( GsonDeserialization . java : 108 )
... 51 more
Caused by : com . google . gson . stream . MalformedJsonException : Use JsonReader . setLenient ( true ) to accept malformed JSON at line 1 column 36
at com . google . gson . stream . JsonReader . syntaxError ( JsonReader . java : 1505 )
at com . google . gson . stream . JsonReader . checkLenient ( JsonReader . java : 1386 )
at com . google . gson . stream . JsonReader . doPeek ( JsonReader . java : 531 )
at com . google . gson . stream . JsonReader . peek ( JsonReader . java : 414 )
at com . google . gson . JsonParser . parse ( JsonParser . java : 60 )
... 53 more
a função ficou assim Ajax:
$ ( "#cadastrar-avaliacao" ) . click ( function () {
var dados = {
"avalicao[0].usuarioPertencente" : $ ( "#idUsuario1" ) . val (),
"avalicao[0].guide" : $ ( "#idGuide1" ) . val (),
"avalicao[0].status" : $ ( "#status1" ) . val (),
"avalicao[1].usuarioPertencente" : $ ( "#idUsuario2" ) . val (),
"avalicao[1].guide" : $ ( "#idGuide2" ) . val (),
"avalicao[1].status" : $ ( "#status2" ) . val ()
};
console . log ( dados );
$. ajax ({
url : "/guide10/pagina/save" ,
type : "POST" ,
data : dados ,
datatype : "json" ,
contentType : "application/json;"
});
});
E o método do controller:
@Consumes ( "application/json" )
@Post
public void save ( List < AvaliacaoModel > avaliacao ) {
this . entityManager . persist ( avaliacao );
result . forwardTo ( this ). index ();
}
Lucas_Camara 1 de jul. de 2020
Tenta assim:
var dados = {
"avalicao[0].usuarioPertencente" : {
"id" : $ ( "#idUsuario1" ) . val ()
},
"avalicao[0].guide" : {
"id" : $ ( "#idGuide1" ) . val ()
},
"avalicao[0].status" : $ ( "#status1" ) . val (),
"avalicao[1].usuarioPertencente" : {
"id" : $ ( "#idUsuario2" ) . val ()
},
"avalicao[1].guide" : {
"id" : $ ( "#idGuide2" ) . val ()
},
"avalicao[1].status" : $ ( "#status2" ) . val ()
};
Verifique se o atributo de “usuarioPertencente” e “guide” é “id” mesmo.