WELD-001408: Unsatisfied dependencies for type ServiceLocator with qualifiers @Default

Estou a um tempo tentando implementar um servidor JAX-RS (Jersey) com DataSource, já migrei do Tomcat para GlassFish, e agora do GlassFish para o WildFly 11, mas estou tendo o erro abaixo que não encontro solução.

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408:
Unsatisfied dependencies for type ServiceLocator with qualifiers
@Default at injection point [UnbackedAnnotatedField] @Inject private
org.glassfish.jersey.server.mvc.internal.ViewableMessageBodyWriter.serviceLocator
at
org.glassfish.jersey.server.mvc.internal.ViewableMessageBodyWriter.serviceLocator(ViewableMessageBodyWriter.java:0)

at
org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:362)
at
org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:284)
at
org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:137)
at
org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:158)
at
org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:501)
at
org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:61)
at
org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:59)
at
org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
at
org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748) at
org.jboss.threads.JBossThread.run(JBossThread.java:320)

Controller

I tried withou Stateless, RequestScoped… But don’t worked.

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.enterprise.context.RequestScoped;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

@Path("ejb/notificacao")
@Stateless
@LocalBean
@RequestScoped
public class NotificacaoControladorEJB {

	
	SmartJava smartjava = new SmartJava();
	@EJB
	NotificacaoDAOEJB notificacaoDAO;

	
	@GET
	@Produces("application/json; charset=UTF-8")
	@Path("/contador/{id}")
	public Notificacao contadorGet(@PathParam("id") int id) {
		long quantidade;
		try {
			quantidade = notificacaoDAO.contador(id);
			
			return new Notificacao(quantidade);
		} catch(Exception e) {
			quantidade = 0;
			System.err.println(smartjava.getFullStackTrace(e));
			
			return new Notificacao(quantidade);
		}
	}
	@GET
	@Produces("application/json; charset=UTF-8")
	@Path("/marcarcomolida/{id}")
	public Notificacao marcarcomolida(@PathParam("id") int id) {
		try {
			
			Notificacao entidade = notificacaoDAO.GetNotificacao(id);
			
			if(entidade != null) {
				entidade.setVisualizado(true);
				entidade.setDtvisualizado(new Timestamp(System.currentTimeMillis()));
				notificacaoDAO.Alterar(entidade);
				return new Notificacao(entidade.getNrseq());
			} else {
				return new Notificacao();
			}
			
			
		} catch(Exception e) {
			System.err.println(smartjava.getFullStackTrace(e));
			return null;
		}
	}
	
	@GET
	@Produces("application/json; charset=UTF-8")
	@Path("/listar/{id}/{quantidade}")
	public List<Notificacao> listar(@PathParam("id") int id, @PathParam("quantidade") int quantidade) {
		List<Notificacao> notificacoes = new ArrayList<Notificacao>();
		List<Notificacao> listaDeNotificacoes;
		
		try {
			
			if(quantidade < 1) {
				listaDeNotificacoes = notificacaoDAO.listarTodosPorUsuarioNrseq(id);
			} else {
				listaDeNotificacoes = notificacaoDAO.listarQuantidadePorUsuarioNrseq(id, quantidade);
			}
			
			if(listaDeNotificacoes != null) {
				
				for (Notificacao notificacao : listaDeNotificacoes) {
					Usuario u = construtorUsuario(notificacao.getUseralvo());
					notificacoes.add(new Notificacao(notificacao.getNrseq(), notificacao.getTitulo(), notificacao.getConteudo(),
							notificacao.getImg(), notificacao.getLink(), notificacao.isAtivo(), notificacao.isVisualizado(),
							notificacao.getDtcad(), notificacao.getDtvisualizado(), u));
				}
			}
			
			return notificacoes;
		} catch(Exception e) {
		
			return new ArrayList<Notificacao>();
		}
	}
	
	
	@POST
	@Consumes("application/json; charset=UTF-8")
	@Produces("application/json; charset=UTF-8")
	@Path("/cadastrar/um")
	public Notificacao cadastrarUm(Notificacao notificacao) {
		
		try {
			
			Notificacao entidade = notificacaoParaEntidade(notificacao, notificacao.getUseralvo());
			
			notificacaoDAO.Salvar(entidade);
	
			return new Notificacao(entidade.getNrseq());
		} catch(Exception e) {
			System.err.println(smartjava.getFullStackTrace(e));
		
			return new Notificacao();
		}
	}

	public Notificacao cadastrar(Notificacao notificacao) {
		
		try {
			
			Notificacao entidade = notificacaoParaEntidade(notificacao, notificacao.getUseralvo());
			
			notificacaoDAO.Salvar(entidade);
			return new Notificacao(entidade.getNrseq());
		} catch(Exception e) {
			System.err.println(smartjava.getFullStackTrace(e));
			return new Notificacao();
		}
	}

	public Notificacao notificacaoParaEntidade(Notificacao notificacao, Usuario usuario) {
		Notificacao entidade = new Notificacao();
		
		entidade.setTitulo(notificacao.getTitulo());
		entidade.setConteudo(notificacao.getConteudo());
		entidade.setImg(notificacao.getImg());
		entidade.setDtcad(new Timestamp(System.currentTimeMillis()));
		entidade.setUsercad(notificacao.getUsercad());
		entidade.setLink(notificacao.getLink());
		entidade.setAtivo(true);
		entidade.setUseralvo(usuario);
		return entidade;
	}
	
	private Usuario construtorUsuario(Usuario u) {
		try {
			return new Usuario(u.getNrseq(), u.getNome(), u.getEmail());
		} catch (Exception e) {
			return new Usuario();
		}
	}

}

DAO

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;


@Stateless
@LocalBean
public class NotificacaoDAOEJB {

	//private EntityManagerFactory entityManagerFactory;
    @PersistenceContext
	private EntityManager entityManager;
	
	SmartJava sj = new SmartJava();
	

	
	public Notificacao Salvar(Notificacao notificacao) {
		
		try {
			this.entityManager.getTransaction().begin();
			this.entityManager.persist(notificacao);
			this.entityManager.getTransaction().commit();
		} catch (Exception e) {
			System.out.println(sj.getFullStackTrace(e));
			
		} finally {
			//this.entityManager.close();
		}
		
		return notificacao;
	}
	
	public void Alterar(Notificacao notificacao){
		 
		this.entityManager.getTransaction().begin();
		this.entityManager.merge(notificacao);
		this.entityManager.getTransaction().commit();
		//this.entityManager.close();
		
	}
	
	@SuppressWarnings("unchecked")
	public List<Notificacao> Listar(){
		return this.entityManager.createQuery("SELECT a FROM Notificacao a ORDER BY a.dtcad").getResultList();
	}
	
	public Notificacao GetNotificacao(int nrseq) {
		return this.entityManager.find(Notificacao.class, nrseq);
	}
	@SuppressWarnings("unchecked")
	public long contador(int nrsequsuario) {
		try {
			return (long) this.entityManager.createQuery("SELECT COUNT(a) FROM Notificacao a "
					+ "WHERE a.visualizado = false AND a.useralvo.nrseq = :usuario ORDER BY a.dtcad")
					.setParameter("usuario", nrsequsuario).getSingleResult();
		} catch(Exception e) {
			System.err.println(sj.getFullStackTrace(e));
			return 0;
		}
	}

	@SuppressWarnings("unchecked")
	public List<Notificacao> listarTodosPorUsuarioNrseq(int id) {
		try {
			return this.entityManager.createQuery("SELECT a FROM Notificacao a "
					+ "WHERE a.useralvo.nrseq = :usuario ORDER BY a.dtcad DESC")
					.setParameter("usuario", id).getResultList();
		} catch(Exception e) {
			System.err.println(sj.getFullStackTrace(e));
			return null;
		}
	}
	@SuppressWarnings("unchecked")
	public List<Notificacao> listarQuantidadePorUsuarioNrseq(int id, int quantidade) {
		try {
			return this.entityManager.createQuery("SELECT a FROM Notificacao a "
					+ "WHERE a.useralvo.nrseq = :usuario ORDER BY a.dtcad DESC")
					.setParameter("usuario", id).setMaxResults(quantidade).getResultList();
		} catch(Exception e) {
			System.err.println(sj.getFullStackTrace(e));
			return null;
		}
	}
	
	

	
}

WEB.XML

<?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" 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">
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>br.com.souvizinho.controlador</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
  </servlet-mapping>
  
  <!-- 
  <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>java:/dbsouvizinho</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref> -->
  
  <!--  COMENTAR AO GLASSFISH -->
  <!--   
  <filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping> -->
  
</web-app>

PERSISTENCE.XML

       <!--  JBOS AS 7.11 E WildFly-->
   <!-- --> <persistence-unit name="persistence_unit_souvizinho" transaction-type="JTA">
 	<provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:/dbsouvizinho</jta-data-source>
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
         <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
       <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
	  <!--  -->   <!--   <property name="hibernate.connection.datasource" value="java:comp/env/jdbc/dbsouvizinho"/> -->
      <!-- --> 
      <!-- <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.2"/>  -->
        <!--   <property name="hibernate.classloading.use_current_tccl_as_parent" value="false" /> -->
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.format_sql" value="true"/>
         <property name="hibernate.hbm2ddl.auto" value="update"/>
      </properties>
   </persistence-unit> <!--   -->

POM.XML

  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
  </dependencyManagement>
 
  <dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
    </dependency>
    
    <dependency> 
    	<groupId>org.slf4j</groupId>
    	 <artifactId>slf4j-api</artifactId>
    	 <version>1.5.6</version> 
   	  </dependency> 

    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-mvc-jsp</artifactId>
    </dependency>
 
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
 
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
    </dependency>
 
 
 	<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.glassfish.grizzly/grizzly-http-server -->
<dependency>
    <groupId>org.glassfish.grizzly</groupId>
    <artifactId>grizzly-http-server</artifactId>
    <version>2.4.2</version>
</dependency>


    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0.1</version>
    </dependency>
 
 <dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<version>7.0</version>
		</dependency>
 
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
    </dependency>
    <!--  TOMCAT  -->
    <!-- 
    	<dependency>
   		<groupId>org.hibernate</groupId>
   		<artifactId>hibernate-core</artifactId>
   		<version>5.1.Final</version>
	</dependency>
 
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-entitymanager</artifactId>
		<version>5.1.Final</version>
	</dependency>  -->
 
 <!--  WILDFLY 11 -->
	<dependency>
   		<groupId>org.hibernate</groupId>
   		<artifactId>hibernate-core</artifactId>
   		<version>5.1.10.Final</version>
   		<scope>provided</scope>
	</dependency>
 
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-entitymanager</artifactId>
		<version>5.1.10.Final</version>
		<scope>provided</scope>
	</dependency>
	
	<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.5.6</version>
</dependency>
 <!-- https://mvnrepository.com/artifact/org.jboss.logging/jboss-logging -->
<dependency>
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.3.0.Final</version>
</dependency>
 
 
    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
    </dependency>
 
  </dependencies>