问题
I am trying to switch Jetty from 7.6 to 9.2.
I read and understood that "OPTION" will no more work. So I changed my command from
java -jar start.jar --ini **OPTIONS**=server,jmx,resources,websocket,ext,plus,jsp,annotations /u/khandela/project/base//etc/config/cometd/cometd_jetty_config.xml
to
start.jar --ini **--module**=server,jmx,resources,websocket,ext,plus,jsp,annotations /u/khandela/project/base//etc/config/cometd/cometd_jetty_config.xml
But I got below warning:
WARNING: ** Unable to continue, required dependency missing. [jsp-impl/${jsp-impl}-jsp] WARNING: ** As configured, Jetty is unable to start due to a missing enabled module dependency. WARNING: ** This may be due to a transitive dependency akin to spdy on npn, which resolves based
How to resolve it ?
回答1:
The error you are seeing about [jsp-impl/${jsp-impl}-jsp] is because a default jsp implementation was not defined when you requested startup of Jetty.
Jetty 9.2.x has 2 different core JSP engines available.
apache- the Apache Jasper JSP engine (the new Jetty default)glassfish- the Glassfish Jasper JSP engine (original version in use by Jetty. Now obsolete / buggy and deprecated)
The behavior in Jetty 9.2 was to force users to decide which implementation they want to use.
This was a mistake and just confuses users that want to start jetty in their own way (ie: not using the start.ini or ${jetty.base} documented mechanisms)
A feature request was filed, and the next release of Jetty after 9.2.1 will apply defaults for this value. With autoselection for apache.
In the meantime, while you wait for Jetty 9.2.2 (or 9.3.0), add a property defining which jsp-impl you want to use.
$ start.jar --module=server,jmx,resources,websocket,ext,plus,jsp,annotations
jsp-impl=apache
/u/khandela/project/base/etc/config/cometd/cometd_jetty_config.xml
Note: get rid of --ini as that is not used by start.jar
回答2:
I had similar problem in Netbeans 8.0 to start Jetty 9.2.1. After creating JettyServer Jetty started, when I added into actual Jetty Base Locationin to start.ini jsp-impl=apache clause.
There is complete listing start.ini:
#===========================================================
# Jetty start.jar arguments
#
# The contents of this file, together with the *.ini
# files found in start.d directory are used to build
# the classpath and command line on a call to
# java -jar start.jar [arg...]
#
# Use the following command to see more options
# java -jar start.jar --help
#
# Each line in these files is prepended to the command line
# as arguments and may be either:
# + A property like: name=value
# + A module to enable like: --module=jmx
# + An XML configuration file like: etc/jetty-feature.xml
# + A start.jar option like: --dry-run
#
# If --exec or --dry-run are used, then this file may also
# contain lines with:
# + A JVM option like: -Xmx2000m
# + A System Property like: -Dcom.sun.management.jmxremote
#
# The --add-to-start=module option can be used to append
# a configuration template for a module to start.ini
# The --add-to-startd=module option can be used to create
# a configuration template for a module in start.d/module.ini
# For example configure and run with SPDY use
#
# java -jar start.jar --add-to-startd=spdy
# $EDITOR start.d/spdy.ini
# java -jar start.jar
#
#===========================================================
#
# Initialize module server
#
#--module=server
--module=server,websocket,jsp,ext,jmx,resources,plus,annotations,commandmanager
# removes bug
jsp-impl=apache
## Server Threading Configuration
# minimum number of threads
threads.min=10
# maximum number of threads
threads.max=200
# thread idle timeout in milliseconds
threads.timeout=60000
# What host to listen on (leave commented to listen on all interfaces)
#jetty.host=myhost.com
# Dump the state of the Jetty server, components, and webapps after startup
jetty.dump.start=false
# Dump the state of the Jetty server, before stop
jetty.dump.stop=false
#
# Initialize module deploy
#
--module=deploy
#
# Initialize module websocket
#
#--module=websocket
#
# Initialize module jsp
#
#--module=jsp
# JSP Configuration
# To use an non-jdk compiler for JSP compilation uncomment next line
# -Dorg.apache.jasper.compiler.disablejsr199=true
#
# Initialize module ext
#
#--module=ext
#
# Initialize module resources
#
#--module=resources
#--module=commandmanager
By comparing original start.ini file, you cas see differences.
来源:https://stackoverflow.com/questions/24524527/jetty-9-module-instead-of-options