Hi All,

I am "playing" with Weld Servlet 2.0.0.Beta2, deploying a JSF application to 
Tomcat 7.0.32 and I believe I've found 2 issues.

1) If use weld-servlet as artifact in Maven, i.e.

...
        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet</artifactId>
            <version>2.0.0.Beta2</version>
...

the presence of the el-api classes in the jar prevents the application from 
deploying, as the classes are already present in Tomcat. The exception is as 
follows:

01-Jan-2013 13:44:53 org.apache.catalina.loader.WebappClassLoader 
validateJarFile
INFO: 
validateJarFile(E:\devel\java\tomcat\apache-tomcat-7.0.32\webapps\palindrome-weld2-jsf\WEB-INF\lib\weld-servlet-2.0.0.Beta2.jar)
 - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: 
javax/el/Expression.class
01-Jan-2013 13:44:54 org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
01-Jan-2013 13:44:54 org.apache.catalina.core.StandardContext startInternal



2) If I use weld-servlet-core, so that I can exclude the el-api jar like this:

...

        <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-core</artifactId>
            <version>2.0.0.Beta2</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.el</groupId>
                    <artifactId>el-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet-core</artifactId>
            <version>2.0.0.Beta2</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.el</groupId>
                    <artifactId>el-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

...

I get the following error at application deployment:

SEVERE: Exception sending context initialized event to listener instance of 
class com.sun.faces.config.ConfigureListener

java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: 
  Source Document: 
jar:file:/E:/devel/java/tomcat/apache-tomcat-7.0.32/webapps/palindrome-weld2-jsf/WEB-INF/lib/weld-servlet-core-2.0.0.Beta2.jar!/META-INF/faces-config.xml
  Cause: Unable to find class 'org.jboss.weld.jsf.WeldPhaseListener'
    at 
com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292)
    at 
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
...


The JSF phase listener existed in weld 1.x but has been removed from weld 2.x. 
If I edit the faces-config.xml file and remove the phase listener reference 
everything works as expected. I checked github and the latest version of 
faces-config.xml has still got a reference to the missing class.


I hope this makes sense. Apologies if this is not the right mailing list for 
this message, or if it's a duplicate (I searched but I could not find anything 
similar).

Cheers,
Luigi
_______________________________________________
weld-dev mailing list
weld-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-dev

Reply via email to