0

Using Spring with hibernate and Jettison to create a WebService, i'm really new to this so i have no clue of what is happening, but when some method is called is always calling a NullPointerException in the autowired properties, alread had tested to change the @Autowire to classical = new Constructor(), this helped in the first method, and the error happened on the next.

This is the Web.Xml i'm using

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>Carros</display-name>
    <!-- OpenSessionInViewFilter pattern -->
    <filter>
        <filter-name>sessionFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>sessionFilter</filter-name>
        <url-pattern>/rest/*</url-pattern>
    </filter-mapping>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>br.com.livro.rest.MyApplication</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

this is my applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!-- Scan do pacote para processar annotations -->
    <context:component-scan base-package="br.com.livro">
        <context:include-filter type="annotation"
            expression="org.aspectj.lang.annotation.Aspect" />
    </context:component-scan>
    <!-- conexao.properties -->
    <bean
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:conexao.properties" />
    </bean>
    <!-- SessionFactory do Hibernate -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
        <property name="packagesToScan" value="br.com.livro.domain" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
                <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
            </props>
        </property>
        <property name="namingStrategy">
            <bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
        </property>
    </bean>
    <!-- Data Source do banco de dados -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="url" value="${jdbc.url}" />
        <property name="driverClassName" value="${jdbc.driver_class}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    <!-- Hibernate = Transaction Manager -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <!-- Transacao com @Transaction -->
    <tx:annotation-driven transaction-manager="transactionManager" />
    <!-- @Autowire -->
    <context:annotation-config />
    <!-- Spring AOP AspectJ -->
    <aop:aspectj-autoproxy />
</beans>

This is MyApplication.java which is the start of the service

package br.com.livro.rest;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import javax.ws.rs.core.Application;

import org.glassfish.jersey.media.multipart.MultiPartFeature;

public class MyApplication extends Application {
    @Override
    public Set<Object> getSingletons() {
        Set<Object> singletons = new HashSet<>();
        // Driver do Jettison para gerar JSON.
        singletons.add(new MultiPartFeature());
        return singletons;
    }

    @Override
    public Map<String, Object> getProperties() {
        Map<String, Object> properties = new HashMap<>();
        // Configura o pacote para fazer scan das classes com anotações REST.
        properties
                .put("jersey.config.server.provider.packages", "br.com.livro");
        return properties;
    }
}

this is the class which happens the error CarrosResource.java

package br.com.livro.rest;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Set;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.apache.commons.io.IOUtils;
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import br.com.livro.domain.Carro;
import br.com.livro.domain.CarroService;
import br.com.livro.domain.Response;

@Path("/carros")
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Component
public class CarrosResource {
    @Autowired
    private CarroService carroService;

    @GET
    public List<Carro> get() {
        List<Carro> carros = carroService.getCarros();
        return carros;
    }

    @GET
    @Path("{id}")
    public Carro get(@PathParam("id") long id) {
        Carro c = carroService.getCarro(id);
        return c;
    }

    @GET
    @Path("/tipo/{tipo}")
    public List<Carro> getByTipo(@PathParam("tipo") String tipo) {
        List<Carro> carros = carroService.findByTipo(tipo);
        return carros;
    }

    @GET
    @Path("/nome/{nome}")
    public List<Carro> getByNome(@PathParam("nome") String nome) {
        List<Carro> carros = carroService.findByName(nome);
        return carros;
    }

    @DELETE
    @Path("{id}")
    public Response delete(@PathParam("id") long id) {
        carroService.delete(id);
        return Response.Ok("Carro deletado com sucesso");
    }

    @POST
    public Response post(Carro c) {
        carroService.save(c);
        return Response.Ok("Carro salvo com sucesso");
    }

    @PUT
    public Response put(Carro c) {
        carroService.save(c);
        return Response.Ok("Carro atualizado com sucesso");
    }


    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response postFoto(final FormDataMultiPart multiPart) {
        if(multiPart != null) {
            Set<String> keys = multiPart.getFields().keySet();
            for (String key : keys) {
                // Obtem a  InputStream para ler o arquivo
                FormDataBodyPart field = multiPart.getField(key);
                InputStream in = field.getValueAs(InputStream.class);
                try {
                    //Salva o arquivo
                    String fileName = field.getFormDataContentDisposition().getFileName();
                    //Pasta temporária da JVM
                    File tmpDir = new File(System.getProperty("java.io.tempdir"), "carros");
                    if(!tmpDir.exists()) {
                        //Criar a pasta carros se não existe
                        tmpDir.mkdir();
                    }
                    // Cria o Arquivo
                    File file = new File(tmpDir, fileName);
                    FileOutputStream out = new FileOutputStream(file);
                    IOUtils.copy(in, out);
                    IOUtils.closeQuietly(out);
                    System.out.println("Arquivo: " + file);
                    return Response.Ok("Arquivo recebido com sucesso!");
                } catch (IOException e) {
                    e.printStackTrace();
                    return Response.Error("Erro ao enviar o arquivo");
                }
            }
        }
        return Response.Ok("Requisição inválida");
    }

}

this is the error that is showed

nov 07, 2017 9:09:04 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:Carros' did not find a matching property.
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server version:        Apache Tomcat/8.5.20
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server built:          Aug 2 2017 21:35:49 UTC
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server number:         8.5.20.0
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Name:               Windows 10
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Version:            10.0
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Architecture:          x86
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Java Home:             C:\Program Files (x86)\Java\jdk1.8.0_151\jre
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Version:           1.8.0_151-b12
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Vendor:            Oracle Corporation
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_BASE:         C:\Users\PsychoPeres\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\apache-tomcat-8.5.20
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\Users\PsychoPeres\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-8.5.20
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\Users\PsychoPeres\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\apache-tomcat-8.5.20\endorsed
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
nov 07, 2017 9:09:04 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files (x86)\Java\jdk1.8.0_151\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_141/bin/server;C:/Program Files/Java/jre1.8.0_141/bin;C:/Program Files/Java/jre1.8.0_141/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\nodejs\;C:\Users\PsychoPeres\AppData\Local\Microsoft\WindowsApps;;C:\Program Files (x86)\Microsoft VS Code\bin;C:\Users\PsychoPeres\AppData\Roaming\npm;C:\eclipse;;.]
nov 07, 2017 9:09:04 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["http-nio-8080"]
nov 07, 2017 9:09:04 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
nov 07, 2017 9:09:04 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["ajp-nio-8009"]
nov 07, 2017 9:09:04 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
nov 07, 2017 9:09:04 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 710 ms
nov 07, 2017 9:09:04 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service [Catalina]
nov 07, 2017 9:09:04 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/8.5.20
nov 07, 2017 9:09:08 PM org.apache.jasper.servlet.TldScanner scanJars
INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
nov 07, 2017 9:09:13 PM org.apache.jasper.servlet.TldScanner scanJars
INFORMAÇÕES: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
nov 07, 2017 9:09:13 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: No Spring WebApplicationInitializer types detected on classpath
nov 07, 2017 9:09:13 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: Initializing Spring root WebApplicationContext
nov 07, 2017 9:09:13 PM org.springframework.web.context.ContextLoader initWebApplicationContext
INFORMAÇÕES: Root WebApplicationContext: initialization started
nov 07, 2017 9:09:13 PM org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
INFORMAÇÕES: Refreshing Root WebApplicationContext: startup date [Tue Nov 07 21:09:13 BRST 2017]; root of context hierarchy
nov 07, 2017 9:09:13 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFORMAÇÕES: Loading XML bean definitions from class path resource [applicationContext.xml]
nov 07, 2017 9:09:14 PM org.springframework.beans.factory.config.PropertyPlaceholderConfigurer loadProperties
INFORMAÇÕES: Loading properties file from class path resource [conexao.properties]
nov 07, 2017 9:09:14 PM org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor <init>
INFORMAÇÕES: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
nov 07, 2017 9:09:14 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
nov 07, 2017 9:09:14 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.10.Final}
nov 07, 2017 9:09:14 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
nov 07, 2017 9:09:14 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
nov 07, 2017 9:09:14 PM org.hibernate.cfg.Configuration configure
INFO: HHH000044: Configuring from URL: file:/C:/Users/PsychoPeres/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Carros/WEB-INF/classes/hibernate.cfg.xml
nov 07, 2017 9:09:15 PM org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
nov 07, 2017 9:09:15 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
nov 07, 2017 9:09:15 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
nov 07, 2017 9:09:16 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
nov 07, 2017 9:09:16 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
nov 07, 2017 9:09:16 PM org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet
INFORMAÇÕES: Using DataSource [org.apache.commons.dbcp.BasicDataSource@27fd8e] of Hibernate SessionFactory for HibernateTransactionManager
nov 07, 2017 9:09:16 PM org.springframework.web.context.ContextLoader initWebApplicationContext
INFORMAÇÕES: Root WebApplicationContext: initialization completed in 3289 ms
nov 07, 2017 9:09:16 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["http-nio-8080"]
nov 07, 2017 9:09:16 PM org.apache.coyote.AbstractProtocol start
INFORMAÇÕES: Starting ProtocolHandler ["ajp-nio-8009"]
nov 07, 2017 9:09:16 PM org.apache.catalina.startup.Catalina start
INFORMAÇÕES: Server startup in 12023 ms
nov 07, 2017 9:09:28 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Jersey REST Service] in context with path [/Carros] threw exception [java.lang.NullPointerException] with root cause
java.lang.NullPointerException
    at br.com.livro.rest.CarrosResource.get(CarrosResource.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
    at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:308)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:291)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1140)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:403)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:334)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    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:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

My CarroService.java

package br.com.livro.domain;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

@Component
public class CarroService {
    @Autowired
    private CarroDAO db;

    // Lista todos os carros do banco de dados
    public List<Carro> getCarros() {
        List<Carro> carros = db.getCarros();
        return carros;
    }

    // Busca um carro pelo id
    public Carro getCarro(Long id) {
        return db.getCarroById(id);
    }

    // Deleta o carro pelo id
    @Transactional(rollbackFor=Exception.class)
    public boolean delete(Long id) {
        return db.delete(id);
    }

    // Salva ou atualiza o carro
    @Transactional(rollbackFor=Exception.class)
    public boolean save(Carro carro) {
        db.saveOrUpdate(carro);
        return true;
    }

    // Busca o carro pelo nome
    public List<Carro> findByName(String name) {
        return db.findByName(name);
    }

    public List<Carro> findByTipo(String tipo) {
        return db.findByTipo(tipo);
    }
}
  • Show your `CarroService` class. I suspect that your `MyApplication` is under `br.com.livro.rest` but `CarroService` is under `br.com.livro.domain` and it does not get scanned by Spring. – tsolakp Nov 07 '17 at 23:17
  • Here is my CarroService, but in applicationContext i put to scan br.com.livro complete, why is not scanning the domain? – Allan Peres Nov 07 '17 at 23:21
  • The accepted answer in the duplicate is relatively old. If you're using a newer version of Jersey, just find the corresponding dependency. The Jersey documentation linked in the answer is up to date. – Sotirios Delimanolis Nov 08 '17 at 00:00
  • i have the jersey spring 3 in my pom, this question didn't help me, i can't put my pom in the answer because of the length – Allan Peres Nov 08 '17 at 00:44

0 Answers0