Heroku上的NullPointerException但是在Glassfish中一切都好吗?

时间:2017-08-21 15:34:40

标签: java tomcat heroku glassfish entitymanager

我正在使用JSF,JPA和Maven在JAVA EE上开发一个简单的应用程序。 问题是:为什么Heroku上的tomcat servlet在注入ManagedBean时返回null,而在Glassfish服务器中一切正常?

有我的代码:

@ManagedBean(name = "homeBean")
@SessionScoped
public class HomeBean {

//simple properties

@ManagedProperty(value="#{emFactoryBean}")
private EntityManagerFactoryBean factoryBean;

@PostConstruct
public void init(){     
    sitioService = new SitioService(factoryBean);
    sitios = sitioService.getSitios();
}

//Getters and setters
}

当创建新的SitioService实例时,会发生异常,换句话说。这是factorBean类:

@ApplicationScoped
public class EntityManagerFactoryBean {

private EntityManagerFactory entityManagerFactory;

public EntityManagerFactoryBean() {
    this.entityManagerFactory = Persistence.
            createEntityManagerFactory("prueba");
}

//getter and setter
}

我的persistence.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="prueba" transaction-type="RESOURCE_LOCAL">
    <class>com.sertracen.sivt.modelo.Imagen</class>
    <class>com.sertracen.sivt.modelo.Review</class>
    <class>com.sertracen.sivt.modelo.Sitio</class>
    <properties>
        <property name="javax.persistence.jdbc.url" value="{url}"/>
        <property name="javax.persistence.jdbc.user" value="{usuario}"/>
        <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
        <property name="javax.persistence.jdbc.password" value="{contraseña}"/>
        <property name="javax.persistence.schema-generation.database.action" value="create"/>
        <property name="javax.persistence.schema-generation.scripts.action" value="create"/>
        <property name="eclipselink.ddl-generation" value="create-tables"/>
        <property name="eclipselink.ddl-generation.output-mode" value="both"/>
    </properties>
</persistence-unit>

显然我的参数连接正常。

希望得到你的答案! 干杯!

---- STACK TRACE:

om.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean homeBean
....
Caused by: java.lang.NullPointerException
at com.sertracen.sivt.negocio.SitioService.<init>(SitioService.java:26)
at com.sertracen.sivt.web.HomeBean.init(HomeBean.java:75)

0 个答案:

没有答案