3
respostas

Problema ao finalizar a compra, Json não salva corretamente - Acesso negado. - ERROR [io.undertow.request] (default task-9) UT005023: Exception handling request to

Não estou conseguindo salvar o endereço do json Nos itens da tabela compra que deveria ser salvo o json da compra, são salvos uns números aleatórios como 50605.

Em CheckoutBean:

@Transactional
    public void finalizar() {
        carrinho.finalizar(usuario);
    }

Em CarrinhoCompras:

    public void finalizar(Usuario usuario) {
        Compra compra = new Compra();
        compra.setUsuario(usuario);
        compra.setItens(toJson());
        compraDao.salvar(compra);
    }

private String toJson() {
        JsonArrayBuilder builder = Json.createArrayBuilder();

        for (CarrinhoItem item : itens) {
            builder.add(Json.createObjectBuilder()
                .add("titulo", item.getLivro().getTitulo())
                .add("preco", item.getLivro().getPreco())
                .add("quantidade", item.getQuantidade())
                .add("total", getTotal(item))
            );
        }

        return builder.build().toString();
    }

Em compra Dao:

public void salvar(Compra compra) {
        manager.persist(compra);
    }
3 respostas

Apesar de conseguir enviar as imagens das capas e visualizá-las normalmente na aplicação o erro que aparece é esse:

07:20:39,814 ERROR [io.undertow.request] (default task-9) UT005023: Exception handling request to /casadocodigo/file/: java.lang.RuntimeException: java.io.FileNotFoundException: \casadocodigo (Acesso negado)
    at br.com.casadocodigo.loja.nfra.FileSaver.transfer(FileSaver.java:50)
    at br.com.casadocodigo.loja.servlets.FileServlet.service(FileServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: \casadocodigo (Acesso negado)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at br.com.casadocodigo.loja.nfra.FileSaver.transfer(FileSaver.java:36)
    ... 40 more

Pode ser que algum dos subdiretórios necessários para você gravar seu arquivo não exista, ou então que você esteja passando um nome de diretório ao invés do nome de um arquivo. Nesse caso, o erro é exatamente o mesmo (acesso negado).

No seu FileSaver, qual diretório você está informando?

eu esto conseguindo mostrar as imagens e fazer o upload normalmente.

esse erro acima só aparece quando eu tento finalizar a compra. não faz sentido pra mim

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software