2016-06-27 3 views
0

У меня есть простое приложение Java EE с помощью следующих зависимостей в pom.xml@Inject, @ApplicationScoped - нулевой указатель исключение

<dependencies> 
<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-web-api</artifactId> 
    <version>7.0</version> 
    <scope>provided</scope> 
</dependency> 
</dependencies> 

Я Тринг впрыснуть боб в мой сервлет, но всегда получаю нулевой указатель исключение при запуске этого приложения в tomcat8

package di; 

import javax.enterprise.context.ApplicationScoped; 

@ApplicationScoped 
public class Apple { 

    public Apple(){} 

    public String getNewApple(){ 
     return "apple"; 
    } 
} 


package main; 

import di.Apple; 

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; 
import java.io.IOException; 
import java.io.PrintWriter; 

@WebServlet(name = "hello", urlPatterns = {"/hello"}) 
public class Main extends HttpServlet { 

    @Inject 
    Apple apple; 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      out.println("hello"); 
      out.println(apple.getNewApple()); 

     } finally { 
      out.close(); 
     } 
    } 
} 

, когда я раскрываю это к tomEE плюс 7.0.1 моих запусков приложений, но страница пуста. Ниже приведены журналы развертывания:

C:\apache-tomee-plus-7.0.1\bin\catalina.bat run 
[2016-06-28 02:02:25,349] Artifact TOMEE PLUS:Web exploded: Server is not connected. Deploy is not available. 
Using CATALINA_BASE: "C:\Users\User\.IntelliJIdea14\system\tomcat\Unnamed_TOMEE_PLUS" 
Using CATALINA_HOME: "C:\apache-tomee-plus-7.0.1" 
Using CATALINA_TMPDIR: "C:\apache-tomee-plus-7.0.1\temp" 
Using JRE_HOME:  "C:\Program Files\Java\jdk1.8.0_60" 
Using CLASSPATH:  "C:\apache-tomee-plus-7.0.1\bin\bootstrap.jar;C:\apache-tomee-plus-7.0.1\bin\tomcat-juli.jar" 
INFO - Server version:  Apache Tomcat (TomEE)/8.5.3 (7.0.1) 
INFO - Server built:   Jun 9 2016 11:16:29 UTC 
INFO - Server number:   8.5.3.0 
INFO - OS Name:    Windows 7 
INFO - OS Version:   6.1 
INFO - Architecture:   x86 
INFO - Java Home:    C:\Program Files\Java\jdk1.8.0_60\jre 
INFO - JVM Version:   1.8.0_60-b27 
INFO - JVM Vendor:   Oracle Corporation 
INFO - CATALINA_BASE:   C:\Users\User\.IntelliJIdea14\system\tomcat\Unnamed_TOMEE_PLUS 
INFO - CATALINA_HOME:   C:\apache-tomee-plus-7.0.1 
INFO - Command line argument: -javaagent:C:\apache-tomee-plus-7.0.1\lib\openejb-javaagent.jar 
INFO - Command line argument: -Dcom.sun.management.jmxremote= 
INFO - Command line argument: -Dcom.sun.management.jmxremote.port=1099 
INFO - Command line argument: -Dcom.sun.management.jmxremote.ssl=false 
INFO - Command line argument: -Dcom.sun.management.jmxremote.authenticate=false 
INFO - Command line argument: -Djava.rmi.server.hostname=127.0.0.1 
INFO - Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 
INFO - Command line argument: -Djava.util.logging.config.file=C:\Users\User\.IntelliJIdea14\system\tomcat\Unnamed_TOMEE_PLUS\conf\logging.properties 
INFO - Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
INFO - Command line argument: -Dcatalina.base=C:\Users\User\.IntelliJIdea14\system\tomcat\Unnamed_TOMEE_PLUS 
INFO - Command line argument: -Dcatalina.home=C:\apache-tomee-plus-7.0.1 
INFO - Command line argument: -Djava.io.tmpdir=C:\apache-tomee-plus-7.0.1\temp 
INFO - 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\Java\jdk1.8.0_60\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.7.0_80\bin\;C:\Program Files\Skype\Phone\;C://MAVEN/BIN;C:\Users\User\AppData\Local\atom\bin;C:\Program Files\Microsoft VS Code\bin;C:\gradle-2.13\bin;. 
INFO - Initializing ProtocolHandler ["http-nio-8080"] 
INFO - Using a shared selector for servlet write/read 
INFO - Initializing ProtocolHandler ["ajp-nio-8009"] 
INFO - Using a shared selector for servlet write/read 
INFO - Using 'openejb.jdbc.datasource-creator=org.apache.tomee.jdbc.TomEEDataSourceCreator' 
INFO - ******************************************************************************** 
INFO - OpenEJB http://tomee.apache.org/ 
INFO - Startup: Tue Jun 28 02:02:33 EEST 2016 
INFO - Copyright 1999-2016 (C) Apache OpenEJB Project, All Rights Reserved. 
INFO - Version: 7.0.1 
INFO - Build date: 20160623 
INFO - Build time: 12:04 
INFO - ******************************************************************************** 
INFO - openejb.home = C:\apache-tomee-plus-7.0.1 
INFO - openejb.base = C:\Users\User\.IntelliJIdea14\system\tomcat\Unnamed_TOMEE_PLUS 
INFO - Created new singletonService [email protected] 
INFO - Succeeded in installing singleton service 
INFO - TomEE configuration file is 'C:\Users\User\.IntelliJIdea14\system\tomcat\Unnamed_TOMEE_PLUS\conf\tomee.xml' 
INFO - Configuring Service(id=Tomcat Security Service, type=SecurityService, provider-id=Tomcat Security Service) 
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) 
INFO - Using 'openejb.deployments.classpath=false' 
INFO - Creating TransactionManager(id=Default Transaction Manager) 
INFO - Creating SecurityService(id=Tomcat Security Service) 
INFO - Creating ServerService(id=cxf) 
INFO - Creating ServerService(id=cxf-rs) 
INFO - ** Bound Services ** 
INFO - NAME     IP    PORT 
INFO - ------- 
INFO - Ready! 
INFO - Initialization processed in 6345 ms 
INFO - Importing a Tomcat Resource with id 'UserDatabase' of type 'org.apache.catalina.UserDatabase'. 
INFO - Creating Resource(id=UserDatabase) 
INFO - Starting service Catalina 
INFO - Starting Servlet Engine: Apache Tomcat (TomEE)/8.5.3 (7.0.1) 
INFO - Starting ProtocolHandler [http-nio-8080] 
INFO - Starting ProtocolHandler [ajp-nio-8009] 
INFO - Server startup in 268 ms 
INFO - Deploying web application directory C:\apache-tomee-plus-7.0.1\webapps\manager 
INFO - ------------------------- localhost -> /manager 
INFO - Configuring enterprise application: C:\apache-tomee-plus-7.0.1\webapps\manager 
INFO - Enterprise application "C:\apache-tomee-plus-7.0.1\webapps\manager" loaded. 
INFO - Assembling app: C:\apache-tomee-plus-7.0.1\webapps\manager 
INFO - using context file C:\apache-tomee-plus-7.0.1\webapps\manager\META-INF\context.xml 
INFO - Deployed Application(path=C:\apache-tomee-plus-7.0.1\webapps\manager) 
INFO - 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. 
INFO - Deployment of web application directory C:\apache-tomee-plus-7.0.1\webapps\manager has finished in 1,391 ms 

может кто-нибудь посоветует, как это решить. чем вы

+1

CDI уже поставляется в Java EE. У вас не должно быть необходимости явно включать что-либо в pom, только набор javax: javaee-web-api' для 'provided' уже достаточен. Это говорит о том, что вы не развертываете WAR на реальном сервере Java EE. Возможно, вы на самом деле развертываетесь в barebones servletcontainer, таком как Tomcat? Если да, то это полезно? http://stackoverflow.com/q/18995951. И наконец, чтобы узнать, что такое Java EE, внимательно прочитайте http://stackoverflow.com/q/7295096 – BalusC

+0

спасибо за ответ. Я изменил свой сервер с tomcat на tomee plus 7.0.1. к сожалению, это не решило проблему. ссылка на файлы проекта: https://github.com/VadOs1/TOMEE_PLUS – VadOs

+0

tomee log: C: \ apache-tomee-plus-7.0.1 \ bin \ catalina.bat run [2016-06-28 01:41 : 33,194] Artifact TOMEE PLUS: Взорван веб-сайт: сервер не подключен. Развертывание недоступно. – VadOs

ответ

0

tomee плюс +

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-web-api</artifactId> 
    <version>7.0</version> 
    <scope>provided</scope> 
</dependency> 
Смежные вопросы