h kang by the way, Tomcat 9 requires you to add some JVM arg magic when running on Java 9, have you done that? Namely it requires you to open two of Java's internal modules to unnamed module. You can do that by setting env. variable like this: export CATALINA_OPTS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" That's what Tomcat itself requires and with this I was able to start up Tomcat 9 on JDK 9 (build 152) with latest version of weld-numberguess JSF sample. However, if that's not enough, you might also try to add one more arg to CATALINA_OPTS which is --add-opens java.base/java.lang=ALL-UNNAMED. This is because lately (around JDK 9 build 148?), the rules for usage of reflections have been tightened and Weld sometimes needs to use just that (recently I had to add this for some tests on JDK 9). This allows reflection to leverage some of Java's internal modules. That being said, I did not need it, to make Weld app run on Tomcat 9. |