2016-06-07 2 views
0

뭔가 놓쳤음에 틀림 없으나 용접 작업을 할 수 없습니다! 그것은 간단한 웹 애플리케이션, (내가 서블릿에 주입하고 싶은 것을) 하나의 서블릿, 하나 개의 서비스 여기콩 스캔 용접을 할 수 없습니다

가있는 파일입니다 :

의 pom.xml

<dependency> 
     <groupId>org.jboss.weld.servlet</groupId> 
     <artifactId>weld-servlet-core</artifactId> 
     <version>2.3.4.Final</version> 
    </dependency> 

의 context.xml

<Context> 
     <Resource name="BeanManager" 
      auth="Container" 
      type="javax.enterprise.inject.spi.BeanManager" 
      factory="org.jboss.weld.resources.ManagerObjectFactory"/> 
    </Context> 

내 서비스

import javax.enterprise.context.SessionScoped; 
import javax.inject.Inject; 
import javax.inject.Named; 

@Named 
@SessionScoped 
public class ServiceTest { 


    public String test(){ 
     return "hello world"; 
    } 


} 

내 서블릿은 :

public class Hello extends HttpServlet { 

    @Inject 
    private ServiceTest service; 

    @Override 
     public void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws IOException, ServletException { 
      // Set the response message's MIME type. 
      response.setContentType("text/html;charset=UTF-8"); 
      // Allocate a output writer to write the response message into the network socket. 
      PrintWriter out = response.getWriter(); 

      try { 
      out.println("<!DOCTYPE html>"); // HTML 5 
      out.println("<html><head>"); 
      out.println("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>"); 
      String title = service.test(); 
      out.println("<title>" + title + "</title></head>"); 
      out.println("<body>"); 
      out.println("<h1>" + title + "</h1>"); // Prints "Hello, world!" 
      out.println("</body></html>"); 
      } finally { 
      out.close(); // Always close the output writer 
      } 
     } 
} 

난 그냥 그 밖에 NPE ... 아무것도 점점하지거야. 여기

내 톰캣 7

2016-06-07 22:49:27 DEBUG logging:37 - Logging Provider: org.jboss.logging.Log4jLoggerProvider 
2016-06-07 22:49:27 INFO servletWeldServlet:57 - WELD-ENV-001008: Initialize Weld using ServletContainerInitializer 
2016-06-07 22:49:27 INFO Version:153 - WELD-000900: 2.3.4 (Final) 
2016-06-07 22:49:27 DEBUG Bootstrap:121 - WELD-ENV-000030: Cannot load class using the ResourceLoader: org.jboss.jandex.Index 
2016-06-07 22:49:27 DEBUG Bootstrap:121 - WELD-ENV-000030: Cannot load class using the ResourceLoader: org.jboss.jandex.Index 
2016-06-07 22:49:27 DEBUG Bootstrap:316 - WELD-ENV-000024: Archive isolation enabled - creating multiple isolated bean archives if needed 
2016-06-07 22:49:27 INFO Bootstrap:166 - WELD-ENV-000028: Weld initialization skipped - no bean archive found 
juin 07, 2016 10:49:27 PM org.apache.coyote.AbstractProtocol start 
INFOS: Starting ProtocolHandler ["http-bio-8080"] 
juin 07, 2016 10:49:27 PM org.apache.coyote.AbstractProtocol start 
INFOS: Starting ProtocolHandler ["ajp-bio-8009"] 
juin 07, 2016 10:49:27 PM org.apache.catalina.startup.Catalina start 
INFOS: Server startup in 1127 ms 

beans.xml 환경의 시작 흔적이다 (아래 META-INF)

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"> 
    <scan> 

    </scan> 
</beans> 
+0

NPE를 사용하여 스택 추적을 게시하십시오. –

+0

beans.xml을 어딘가에 가지고 있습니까? – temaleva

+0

NPE는 아무런 정보도 제공하지 않고, 주입 된 객체에 대한 호출 만 null입니다. – Seb

답변

2

2016년 6월 7일 22시 49분 27초 정보 부트 스트랩 - : 용접 ENV-000028 166 : 용접 초기화가 생략 - 어떤 콩 아카이브는이 용접은 아무것도 발견하지 않았 음을 의미합니다

발견 WAR의 빈 (bean) 아카이브. WAR에서 beans.xml의 이름은 WEB-INF/beans.xml 또는 WEB-INF/classes/META-INF/beans.xml이어야합니다 (자세한 내용은 12.1. Bean archives 참조). 나는 META-INF/beans.xml이 있다고 생각합니다.

관련 문제