CDI Servlet java.lang.NullPointerException

CDI Servlet java.lang.NullPointerException,java,servlets,servlet-3.0,Java,Servlets,Servlet 3.0,大家,请帮帮我!!!我开车真是疯了。我的代码在今天之前一直在工作,现在它坏了 这是我的servlet: @Stateless class TempSession { void createFile( String fileName ) { try { FileWriter writer = new FileWriter( fileName ); writer.close(); } catch

大家,请帮帮我!!!我开车真是疯了。我的代码在今天之前一直在工作,现在它坏了

这是我的servlet:

@Stateless
class TempSession {
    void createFile( String fileName ) {
        try {
            FileWriter writer = new FileWriter( fileName );
            writer.close();
        }
        catch ( IOException e ) {
            e.printStackTrace();
        }
    }
}

@WebServlet( name = "CreteFileServlet", urlPatterns = "/createCSV" )
public class CreateCSVConfigurationServlet extends javax.servlet.http.HttpServlet {
    @Inject
    TempSession session;

    protected void doPost( javax.servlet.http.HttpServletRequest request,
            javax.servlet.http.HttpServletResponse response ) throws javax.servlet.ServletException, IOException {}

    protected void doGet( javax.servlet.http.HttpServletRequest request,
            javax.servlet.http.HttpServletResponse response ) throws javax.servlet.ServletException, IOException {
        session.createFile( "d:/session.txt" );
    }
}
以下是web.xml:

<servlet>
    <servlet-name>CreateFileServlet</servlet-name>
    <servlet-class>com.bs.amg.test.servlets.CreateCSVConfigurationServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>CreateFileServlet</servlet-name>
    <url-pattern>/createCSV</url-pattern>
</servlet-mapping>

求你了,我真的需要你的帮助

我认为注入没有发生,因为CDI没有启用。确保您拥有CDI文档中所述的beans.xml:。下面是一个示例beans.xml文件,可用于启用CDI:

<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>

我认为注入没有发生,因为CDI没有启用。确保您拥有CDI文档中所述的beans.xml:。下面是一个示例beans.xml文件,可用于启用CDI:

<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>

我认为注入没有发生,因为CDI没有启用。确保您拥有CDI文档中所述的beans.xml:。下面是一个示例beans.xml文件,可用于启用CDI:

<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>

我认为注入没有发生,因为CDI没有启用。确保您拥有CDI文档中所述的beans.xml:。下面是一个示例beans.xml文件,可用于启用CDI:

<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>



您正在使用webservlet注释和web.xml映射声明servlet。您应该只有一个使用注释的声明,如示例所示。

您正在使用webservlet注释和web.xml映射声明servlet。您应该只有一个使用注释的声明,如示例所示。

您正在使用webservlet注释和web.xml映射声明servlet。您应该只有一个使用注释的声明,如示例所示。

您正在使用webservlet注释和web.xml映射声明servlet。您应该只有一个使用注释的声明,如示例所示。

使用您的VCS来了解从“工作”到“不工作”所做的更改。检查CreateCSVConfiguration Servlet.java ligne中的操作:136@GuyBouallet我99%确定在第一个代码片段中引用了doGet…我知道错误,这是因为“会话”不是初始化的!我知道,我想让你们告诉我,为什么CDI容器没有初始化我的“session”变量???!!!它一定在工作!!!您不需要TempSession的制作人吗?使用您的VCS了解从“正常”到“不正常”所做的更改。检查CreateCSVConfiguration Servlet.java ligne中的操作:136@GuyBouallet我99%确定在第一个代码段中引用了doGet…我知道错误,因为“session”没有初始化!我知道,我想让你们告诉我,为什么CDI容器没有初始化我的“session”变量???!!!它一定在工作!!!您不需要TempSession的制作人吗?使用您的VCS了解从“正常”到“不正常”所做的更改。检查CreateCSVConfiguration Servlet.java ligne中的操作:136@GuyBouallet我99%确定在第一个代码段中引用了doGet…我知道错误,因为“session”没有初始化!我知道,我想让你们告诉我,为什么CDI容器没有初始化我的“session”变量???!!!它一定在工作!!!您不需要TempSession的制作人吗?使用您的VCS了解从“正常”到“不正常”所做的更改。检查CreateCSVConfiguration Servlet.java ligne中的操作:136@GuyBouallet我99%确定在第一个代码段中引用了doGet…我知道错误,因为“session”没有初始化!我知道,我想让你们告诉我,为什么CDI容器没有初始化我的“session”变量???!!!它一定在工作!!!您不需要TempSession的生产者吗?是的,我的参考资料/META-INF中有这个文件。但是现在部署Jboss给了我:“原因:java.lang.RuntimeException:JBAS016060:无法解析用于注入点的CDIBean com.test.servlets.TempSession com.test.servlets.CreateCSVConfigurationServlet.session,带限定符[]”天哪…该死的。。。男人们,我很抱歉,我真的很抱歉并感谢你们的关注和帮助。我真是个愚蠢的程序员。我的错误是因为我在与servlet相同的文件中定义了TempSession。。。。这是一个很大的错误。。。。谢谢大家!!!是的,我的参考资料/META-INF中有这个文件。但是现在部署Jboss给了我:“原因:java.lang.RuntimeException:JBAS016060:无法解析注入点的CDIBean com.test.servlets.TempSession com.test.servlets.CreateCsvConfiguration Servlet.session with qualifiers[]”omg…该死的。。。男人们,我很抱歉,我真的很抱歉并感谢你们的关注和帮助。我真是个愚蠢的程序员。我的错误是因为我在与servlet相同的文件中定义了TempSession。。。。这是一个很大的错误。。。。谢谢大家!!!是的,我的参考资料/META-INF中有这个文件。但是现在部署Jboss给了我:“原因:java.lang.RuntimeException:JBAS016060:无法解析注入点的CDIBean com.test.servlets.TempSession com.test.servlets.CreateCsvConfiguration Servlet.session with qualifiers[]”omg…该死的。。。男人们,我很抱歉,我真的很抱歉并感谢你们的关注和帮助。我真是个愚蠢的程序员。我的错误是因为我在与servlet相同的文件中定义了TempSession。。。。这是一个很大的错误。。。。谢谢大家!!!是的,我的参考资料/META-INF中有这个文件。但是现在部署Jboss给了我:“原因:java.lang.RuntimeException:JBAS016060:无法解析注入点的CDIBean com.test.servlets.TempSession com.test.servlets.CreateCsvConfiguration Servlet.session with qualifiers[]”omg…该死的。。。男人们,我很抱歉,我真的很抱歉并感谢你们的关注和帮助。我真是个愚蠢的程序员。我的错误是因为我在与servlet相同的文件中定义了TempSession。。。。这是一个很大的错误。。。。谢谢大家!!!