0

I use Java 8, glassfish 5 build 25, Eclipse. I'm trying to upgrade from Java EE 7 to Java EE 8. So I started with this simple example.

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    id="WebApp_ID" version="4.0">
    <display-name>Play ID</display-name>
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
</web-app>

CDI Bean:

@Named
@ViewScoped
public class CommentFront implements Serializable {
    private static final long serialVersionUID = 1L;

    public void addComment() {
        System.out.println("I don’t work: ");   
    } 
}

Simple JSF page comment.xhtml

<!DOCTYPE html >
<html lang="en" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
    >
<h:head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <title>Derbyware</title>

<h:body>
    <h:form id="form">
        <h:commandButton id="OneBtn" value="1 Comment" action="#{commentFront.addComment()}" >  
        </h:commandButton>

    </h:form>
</h:body>
</h:head>
</html>

The error:

javax.el.PropertyNotFoundException: /comment.xhtml @17,89 action="#{commentFront.addComment()}": Target Unreachable, identifier 'commentFront' resolved to null

When I first start glassfish it prints:

    2018-10-31T14:26:57.985+0000|Info: WELD-000411: Observer method [BackedAnnotatedMethod] public org.glassfish.jms.injection.JMSCDIExtension.processAnnotatedType(@Observes ProcessAnnotatedType<T>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.

    2018-10-31T14:26:58.032+0000|WARN: WELD-000146: BeforeBeanDiscovery.addAnnotatedType(AnnotatedType<?>) used for class org.glassfish.cdi.transaction.TransactionalInterceptorMandatory is deprecated from CDI 1.1!
    ...
    2018-10-31T14:26:58.048+0000|WARN: WELD-000146: BeforeBeanDiscovery.addAnnotatedType(AnnotatedType<?>) used for class org.glassfish.jersey.ext.cdi1x.transaction.internal.TransactionalExceptionMapper is deprecated from CDI 1.1!
    2018-10-31T14:26:58.282+0000|Info: Initializing Soteria 1.0 for context '/Play_ID'
    2018-10-31T14:26:58.282+0000|Info: Initializing Mojarra 2.3.2 ( 20170627-2139 e63598abf2ed2bb1a24674f308a734e0dce18a72) for context '/Play_ID'
    2018-10-31T14:26:58.829+0000|Info: Loading application [Play_ID] at [/Play_ID]
    2018-10-31T14:26:58.938+0000|Info: Play_ID was successfully deployed in 1,932 milliseconds.

Why does something as simple as this does not work on glassfish 5 ????

Kukeltje
  • 12,223
  • 4
  • 24
  • 47
usertest
  • 2,140
  • 4
  • 32
  • 51
  • 1
    @Mike it's a CDI bean (javax.faces.view.ViewScoped) NOT a JSF bean((javax.faces.bean.ViewScoped)), so stop editing my question. – usertest Nov 06 '18 at 10:16
  • What was your previous CDI version? Did you check what (possible) changes need to be made to beans.xml regarding discovery of beans? See the answer in https://stackoverflow.com/questions/45682309/changing-faces-config-xml-from-2-2-to-2-3-causes-javax-el-propertynotfoundexcept – Kukeltje Nov 06 '18 at 10:38
  • 1
    Possible duplicate of [Changing faces-config.xml from 2.2 to 2.3 causes javax.el.PropertyNotFoundException: Target Unreachable, identifier 'bean' resolved to null](https://stackoverflow.com/questions/45682309/changing-faces-config-xml-from-2-2-to-2-3-causes-javax-el-propertynotfoundexcept) – Kukeltje Nov 06 '18 at 10:41
  • @Kukeltje thanks that fix it – usertest Nov 07 '18 at 09:32

1 Answers1

0

Solution 1:

I used this from the answer at Changing faces-config.xml from 2.2 to 2.3 causes javax.el.PropertyNotFoundException: Target Unreachable, identifier 'bean' resolved to null

import javax.enterprise.context.ApplicationScoped;
import javax.faces.annotation.FacesConfig;

@ApplicationScoped
@FacesConfig(version = FacesConfig.Version.JSF_2_3)
public class JSFActivator {

}

now everyting works as it should.

Solution 2:

switch to Payara 5.183, it works out of the box. No need for solution 1

Opinion: Why the hell is glassfish this broken. it's pathetic how the reference implementation application server for Java EE 8 fails at such a simple job. I hope this chane now that it chaned home from Oracle to Eclipse.

I think I will switch to Payara until glassfish is fixed.

usertest
  • 2,140
  • 4
  • 32
  • 51
  • Please remove this answer and add your 'solution 2' to the other duplicate question as an additional answer (or even propose an edit to the existing answer there). Prevents fragmentation in Stackoverflow – Kukeltje Nov 07 '18 at 10:14