Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat @在Glassfish中未调用后期构造_Tomcat_Jsf 2_Glassfish 4_Java Ee 7 - Fatal编程技术网

Tomcat @在Glassfish中未调用后期构造

Tomcat @在Glassfish中未调用后期构造,tomcat,jsf-2,glassfish-4,java-ee-7,Tomcat,Jsf 2,Glassfish 4,Java Ee 7,我有这样的依赖性: <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <dependency> <groupId>com.su

我有这样的依赖性:

<dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
    </dependency>

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.10</version>
    </dependency>

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.10</version>
    </dependency>

爪哇
JavaEEAPI
7
com.sun.faces
jsf impl
2.2.10
com.sun.faces
JSFAPI
2.2.10
和托管bean:

@ManagedBean(eager = true)
@ApplicationScoped
public class AppBean implements Serializable{
    private List<SelectItem> someEntitySI = null;

    @PostConstruct
    public void init(){
       try {
            someEntitySI = new ArrayList<SelectItem>();
            List<SomeEntity> types = Factory.getInstance().getSomeEntityDAO().getAllSomeEntities();
            for(SomeEntity type : types) {
                someEntitySI .add(new SelectItem(someEntity.getId(), someEntity.getName()));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } 
    }
@ManagedBean(eager=true)
@适用范围
公共类AppBean实现了可序列化{
私有列表sometentitysi=null;
@施工后
公共void init(){
试一试{
someEntitySI=新的ArrayList();
列表类型=Factory.getInstance().getSomeEntityDAO().getAllSomeEntities();
for(SomeEntity类型:类型){
添加(新的SelectItem(someEntity.getId(),someEntity.getName());
}
}捕获(SQLE异常){
e、 printStackTrace();
} 
}

当我在Tomcat@PostConstruct上部署这个时调用了,但当我在Glassfish(v4.1)上部署相同的代码时,@PostConstruct不起作用。为什么呢?

如果你和我一样笨,你的web.xml开始时是这样的:

<web-app>
 ....
</web-app>

....
然后您需要编辑它:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">
     ....
     </web-app>

....
在@PostConstrcut之后,注释将用于Glassfish。
另外,我仍然不能完全确定为什么两个Wariant都在Tomcat上工作。

人们不是读心术的人。你需要详细说明“它工作”的含义,并描述导致你得出“不工作”结论的结果。