2012-08-28 19 views
5

Netbeans 7.2'de yeni ve yeni bir Java EE 6 Enterprise Uygulaması oluşturdum. Bu yüzden üç Projeler vardır: WAR olarakJava EE 6 Kurumsal Uygulama: Uyarı "Tatminsiz bağımlılık: bakla, enjeksiyon noktasıyla eşleşmiyor" bir fasulye enjekte ederken

package de.aidaorga.test; 

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

@Stateless 
@LocalBean 
public class NewSessionBean2343 { 
} 

:

  • KULAK
  • EJB EJB projesinde
  • SAVAŞ

, basit Bean oluşturduk -Proje, "Web Sayfaları \ WEB-INF" klasöründe boş bir beans.xml oluşturduk:

<?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" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> 
</beans> 

Ve ayrıca basit bir Servlet oluşturduk: Artık

import de.aidaorga.test.NewSessionBean2343; 
import java.io.IOException; 
import javax.ejb.EJB; 
import javax.inject.Inject; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet(name = "NewServlet2343", urlPatterns = {"/NewServlet2343"}) 
public class NewServlet2343 extends HttpServlet { 
    @Inject 
    NewSessionBean2343 newSessionBean2343_1; 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    } 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    } 
} 

, NetBeans bana bir uyarı "Unsatisfied bağımlılığı: hayır fasulye enjeksiyon noktasını maçları" gösterir @ Enjekte "ile açıklamalı alanı "newSessionBean2343_1" için ".

dağıtma zamanda, aşağıdaki Excpetion olsun:

Schwerwiegend: Exception while loading the app 
Schwerwiegend: Exception while loading the app : WELD-001408 Unsatisfied dependencies for type [NewSessionBean2343] with qualifiers [@Default] at injection point [[field] @Inject NewServlet2343.newSessionBean2343_1] 
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [NewSessionBean2343] with qualifiers [@Default] at injection point [[field] @Inject NewServlet2343.newSessionBean2343_1] 
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:311) 
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:280) 
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:143) 
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:163) 
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:382) 
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:367) 
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:380) 
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:199) 
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:128) 
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:313) 
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461) 
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240) 
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389) 
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348) 
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363) 
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085) 
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95) 
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291) 
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259) 
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461) 
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) 
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179) 
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117) 
at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354) 
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) 
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) 
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) 
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) 
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
at java.lang.Thread.run(Thread.java:722) 

Neden bu uyarıyı almak ve nasıl ondan kurtulmak do?

Yardımlarınız için teşekkür ederiz.

Tüm bunların Markus

cevap

6

Sorunu çözdüm: EJB-Project'te beans.xml'yi unuttum. Bir EAR-Project'deki bir beans.xml yeterli değil ...

0

İlk sadece IDE uyarıdır - önemli olan kod derler olup olmadığıdır.

Kod iki kez bir tane enjekte ettiğimi hatırlamıyorum bile, yanlış görünmüyor. Ama IMHO çalışması gereken.

Netbeans'in @Inject'u ancak @EJB'u doğrulayabildiğini düşünüyorum, bu uyarıyı açıklar.

Bir sunucuya dağıtmayı ve nelerin çıktığını görmeyi deneyin.

+0

Cevabınız için teşekkürler, sorumu değiştirdim. @EJB şimdi kaldırılmıştır ve dağıtım zamanında istisna eklenmiştir. – user1631581

İlgili konular