2013-03-28 5 views
0

Я недавно разработал приложение с Glassfish, и разработка идет очень гладко, теперь с JBoss я пытаюсь сделать то же самое, но замедляется различными проблемами, такими как as: @EJB работает, но @Inject не работает. У меня пока нет классного класса, у меня просто есть класс Singleton Startup и простой класс Stateless, который я ввожу, и к моему удивлению, инъекция не работает. Вот мой класс:JBoss7.1.3: @EJB работает, а @Inject не работает

package com.czetsuya.dropship; 

import javax.annotation.PostConstruct; 
import javax.ejb.EJB; 
import javax.ejb.Singleton; 
import javax.ejb.Startup; 

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

@Singleton 
@Startup 
public class StartupListener { 
    private Logger log = LoggerFactory.getLogger(StartupListener.class); 

    @EJB 
    private TestService testService; 

    public StartupListener() { 

    } 

    @PostConstruct 
    private void init() { 
     testService.test(); 
     log.debug("startup"); 
    } 
} 

Класс обслуживания:

package com.czetsuya.dropship; 

import javax.ejb.LocalBean; 
import javax.ejb.Stateless; 

@Stateless 
@LocalBean 
public class TestService { 
    public TestService() { 

    } 

    public void test() { 
     System.out.println("run"); 
    } 
} 

Другое дело, если я впрыснуть мой регистратор со следующим производителя также не работает и бросает:

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject private com.czetsuya.dropship.StartupListener.log] 

Производитель регистратора:

@Produces 
Logger createLogger(InjectionPoint injectionPoint) { 
    return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass().getName()); 
} 

Обратите внимание, что у меня есть beans.xml в моем проекте ejb и war.

Мой beans.xml файл:

<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/beans_1_0.xsd"></beans> 

ответ

0

Хм мой плохой, похоже, коррумпированной строить, после того, как я проектирую чистый и Maven чистый и изменить содержание beans.xml на:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="urn:java:ee" xmlns:security="urn:java:org.jboss.seam.security" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"></beans> 

инъекций в настоящее время работает. Также как и инъекция логгера.

Смежные вопросы