jetty / jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
https://eclipse.dev/jetty
Other
3.83k stars 1.91k forks source link

Config error java.lang.IllegalStateException: No object for refid=DeploymentManager at <Ref refid="DeploymentManager"> #12103

Closed fgolzari closed 1 month ago

fgolzari commented 1 month ago

Jetty Version 12 Jetty Environment ee10 Java Version 21 Question I have upgraded my project from jetty 9 to 12, In the Jetty 12 server, jetty-ee10-deploy.xml is as below:,

<Configure id="Server" class="org.eclipse.jetty.server.Server">
    <Call id="DeploymentManager" name="getBean">
        <Arg>
            <Call class="java.lang.Class" name="forName">
                <Arg>org.eclipse.jetty.deploy.DeploymentManager</Arg>
            </Call>
        </Arg>
    </Call>
    <Ref refid="Environment">
        <Call name="setAttribute">
            <Arg>contextHandlerClass</Arg>
            <Arg>
                <Property name="contextHandlerClass"/>
            </Arg>
        </Call>
    </Ref>
    <Ref refid="DeploymentManager">
        <Call name="addAppProvider">
            <Arg>
                <New id="WebAppProvider-ee10" class="org.eclipse.jetty.deploy.providers.ContextProvider">
                    <Set name="environmentName">ee10</Set>
                    <Set name="monitoredDirName">
                        <Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
                            <Arg>
                                <Property name="jetty.base"/>
                            </Arg>
                            <Arg>
                                <Property name="jetty.deploy.monitoredDir" default="webapps"/>
                            </Arg>
                        </Call>
                    </Set>
                    <Set name="defaultsDescriptor">
                        <Property>
                            <Name>jetty.deploy.defaultsDescriptorPath</Name>
                            <Deprecated>jetty.deploy.defaultsDescriptor</Deprecated>
                            <Default>
                                <Property name="jetty.home" default="." />/etc/webdefault-ee10.xml
                            </Default>
                        </Property>
                    </Set>
                    <Set name="deferInitialScan" property="jetty.deploy.deferInitialScan"/>
                    <Set name="scanInterval" property="jetty.deploy.scanInterval"/>
                    <Set name="extractWars" property="jetty.deploy.extractWars"/>
                    <Set name="parentLoaderPriority" property="jetty.deploy.parentLoaderPriority"/>
                    <Set name="configurationClasses" property="jetty.deploy.configurationClasses"/>
                    <Get name="properties">
                        <Put name="jetty.deploy.containerScanJarPattern">
                            <Property name="jetty.deploy.containerScanJarPattern">
                                <Default>.*/jakarta.servlet-api-[^/]*\.jar$|.*jakarta.servlet.jsp.jstl-.*\.jar$</Default>
                            </Property>
                        </Put>
                        <Put name="jetty.deploy.webInfScanJarPattern">
                            <Property name="jetty.deploy.webInfScanJarPattern"/>
                        </Put>
                        <Put name="jetty.deploy.servletContainerInitializerExclusionPattern">
                            <Property name="jetty.deploy.servletContainerInitializerExclusionPattern"/>
                        </Put>
                        <Put name="jetty.deploy.servletContainerInitializerOrder">
                            <Property name="jetty.deploy.servletContainerInitializerOrder"/>
                        </Put>
                    </Get>
                </New>
            </Arg>
        </Call>
    </Ref>
</Configure>

I get this error when deploying the project : oejx.XmlConfiguration:main: Config error java.lang.IllegalStateException: No object for refid=DeploymentManager at <Ref refid="DeploymentManager">

joakime commented 1 month ago

We need a reproduction case for this, or far more detail about how you are configuring / running your jetty instance. As this does not happen for us, the jetty-home tests, the jetty-home demos, the docker images and their tests, or countless other deployment scenarios with the DeploymentManager in use.

Please copy/paste the output of these commands into here (please do not use images or screenshots).

cd /path/to/my-jetty-base
java -jar /path/to/jetty-home/start.jar --list-config
fgolzari commented 1 month ago

@joakime output with your command:

Enabled Modules:
JVM Version & Properties:
java.home = /opt/chmail/common/lib/jvm/openjdk-21.0.3-chmail  
java.vm.vendor = Oracle Corporation  
java.vm.version = 21.0.3+7-LTS-152  
java.vm.name = Java HotSpot(TM) 64-Bit Server VM  
java.vm.info = mixed mode, sharing  
java.runtime.name = Java(TM) SE Runtime Environment  
java.runtime.version = 21.0.3+7-LTS-152  
java.io.tmpdir = /tmp  
user.dir = /opt/chmail  
user.language = en  
user.country = US  

Jetty Version & Properties:
jetty.version = 12.0.11  
jetty.tag.version = jetty-12.0.11  
jetty.build = 9f90cedce372142f30c744a16a38d2c6bf634ab6  
jetty.home = /opt/chmail/common/jetty_home  
jetty.base = /opt/chmail  

Config Search Order:
<command-line>  
${jetty.base} -> /opt/chmail  
${jetty.home} -> /opt/chmail/common/jetty_home  

System Properties:
(no system properties specified)  

Properties: Jetty
java.version = 21.0.3  
java.version.major = 21  
java.version.micro = 3  
java.version.minor = 0  
java.version.platform = 21  
jetty.base = /opt/chmail  
jetty.base.uri = file:///opt/chmail  
jetty.home = /opt/chmail/common/jetty_home  
jetty.home.uri = file:///opt/chmail/common/jetty_home  
runtime.feature.alpn = true  

Classpath: Jetty
No classpath entries and/or version information available show.  

Active XMLS: Jetty
(no xml files specified)  

output with my command:

/opt/chmail/common/bin/java_mailboxd -Djavax.net.debug=all -Dfile.encoding=UTF-8 -server
-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2, TLSv1.3 -Djdk.tls.client.protocols=TLSv1, TLSv1.1, TLSv1.2, TLSv1.3
-Djava.awt.headless=true -Dsun.net.inetaddr.ttl=60 -Dorg.apache.jasper.compiler.disablejsr199=true -XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=45
-XX:-OmitStackTraceInFastThrow -verbose:gc
-Xlog:gc*=info,safepoint=info:file=/opt/chmail/log/gc.log:time:filecount=20,filesize=10m
-Djava.security.egd=file:/dev/./urandom --add-opens java.base/java.lang-ALL-UNNAMED
-Djava.net.preferIPv4Stack=true -Xss256k -Xms2048m -Xmx2048m -Djava.io.tmpdir=/opt/chmail/mailboxd/work
-Djava.library.path=/opt/chmail/lib -Dchmail.config=/opt/chmail/conf/localconfig.xml --module-path
/opt/chmail/mailboxd/common/endorsed -Djetty.base=/opt/chmail/mailboxd -Djetty.home=/opt/chmail/common/jetty_home
-DSTART=/opt/chmail/mailboxd/etc/start.config -jar /opt/chmail/common/jetty_home/start.jar
--module=chmail,server,ee10-servlet,ee10-servlets,ee10-jsp,ee10-jstl,jmx,ee10-websocket-jakarta,ee10-websocket-jetty
,ee10-websocket-jetty-client-webapp,resources,ext,plus,rewrite,ee-webapp,ee10-webapp,setuid,http,ee10-deploy,ee10-
apache-jsp jetty.home=/opt/chmail/common/jetty_home jetty.base=/opt/chmail/mailboxd
/opt/chmail/mailboxd/etc/jetty.xml --list-config
Enabled Modules:
0) resources
1) logging/slf4j
2) logging-jetty
3) bytebufferpool
4) client
5) ext
6) threadpool
7) server
8) sessions
9) ee10-servlet
10) security
11) ee10-security
12) plus
13) jndi
14) ee-webapp
15) ee10-webapp
16) ee10-plus
17) ee10-annotations
18) ee10-apache-jsp
19) deploy
20) ee10-deploy
21) ee10-glassfish-jstl
22) ee10-jsp
23) ee10-jstl
24) ee10-servlets
25) ee10-websocket-jakarta
26) websocket-jetty
27) ee10-websocket-jetty
28) websocket-jetty-client
29) ee10-websocket-jetty-client-webapp
30) http
31) jmx
32) chmail
33) rewrite
34) setuid

${jetty.base}/start.d/resources.ini  
transitive provider of logging/slf4j for logging-jetty  
dynamic dependency of logging-jetty  
transitive provider of logging for threadpool  
transitive provider of logging for bytebufferpool  
transitive provider of logging for server  
transitive provider of bytebufferpool for server  
ini template available with --add-modules bytebufferpool  
transitive provider of client for ee10-websocket-jetty-client-webapp  
transitive provider of client for ee10-websocket-jakarta  
transitive provider of client for websocket-jetty-client  

${jetty.base}/start.d/ext.ini  
transitive provider of threadpool for server  
ini template available with --add-modules=threadpool  

${jetty.base}/start.d/server.ini  
transitive provider of sessions for ee10-servlet  
ini template available with --add-modules sessions  

${jetty.base}/start.d/ee10-servlet.ini  
transitive provider of security for ee10-security  
transitive provider of ee10-security for ee10-webapp  
transitive provider of ee10-security for ee10-plus  

${jetty.base}/start.d/plus.ini  
transitive provider of jndi for ee10-plus  
<command-line>  

${jetty.base}/start.d/ee10-webapp.ini  
transitive provider of ee10-plus for ee10-annotations  
transitive provider of ee10-annotations for ee10-websocket-jetty  
transitive provider of ee10-annotations for ee10-jsp  
transitive provider of ee10-annotations for ee10-websocket-jakarta  
transitive provider of ee10-annotations for ee10-apache-jsp  
transitive provider of ee10-annotations for ee10-websocket-jetty-client-webapp  

${jetty.base}/start.d/ee10-apache-jsp.ini  
transitive provider of deploy for ee10-deploy  

${jetty.base}/start.d/ee10-deploy.ini  
transitive provider of ee10-glassfish-jstl for ee10-jstl  

${jetty.base}/start.d/ee10-jsp.ini  
${jetty.base}/start.d/ee10-jstl.ini  
${jetty.base}/start.d/ee10-servlets.ini  
${jetty.base}/start.d/ee10-websocket-jakarta.ini  
transitive provider of websocket-jetty for ee10-websocket-jetty  

${jetty.base}/start.d/ee10-websocket-jetty.ini  
transitive provider of websocket-jetty-client for ee10-websocket-jetty-client-webapp  

${jetty.base}/start.d/http.ini  
${jetty.base}/start.d/jmx.ini  
${jetty.base}/start.d/chmail.ini  
${jetty.base}/start.d/rewrite.ini  
${jetty.base}/start.d/setuid.ini  
webapp ${jetty.base}/start.d/ee10-websocket-jetty-client-webapp.ini

JVM Version & Properties:
  java.home: /opt/chmail/common/lib/jvm/openjdk-21.0.3-chmail
  java.vm.vendor: Oracle Corporation
  java.vm.version: 21.0.3+7-LTS-152
  java.vm.name: Java HotSpot(TM) 64-Bit Server VM
  java.vm.info: mixed mode, sharing
  java.runtime.name: Java(TM) SE Runtime Environment
  java.runtime.version: 21.0.3+7-LTS-152
  java.io.tmpdir: /opt/chmail/mailboxd/work
  user.dir: /opt/chmail
  user.language: en
  user.country: US

Jetty Version & Properties:
  jetty.version: 12.0.11
  jetty.tag.version: jetty-12.0.11
  jetty.build: 9f90cedce372142f30c744a16a38d2c6bf634ab6
  jetty.home: /opt/chmail/common/jetty_home
  jetty.base: /opt/chmail/mailboxd

Config Search Order:
  - <command-line>
  - ${jetty.base}$ -> /opt/chmail/mailboxd
  - ${jetty.home}$ -> /opt/chmail/common/jetty_home

System Properties:
  (no system properties specified)

Properties: Jetty
  chmailImapBindAddress: 
  chmailImapBindPort: 7150
  chmailImapSSLBindAddress: 
  chmailImapSSLBindPort: 7901
  chmailImapSSLServerEnabled: true
  chmailImapServerEnabled: true
  chmailLmtpBindAddress: 
  chmailLmtpBindPort: 7000
  chmailLmtpServerEnabled: true
  chmailMailboxdSSLProtocols: SSLv2Hello TLSv1 TLSv1.1 TLSv1.2
  chmailPop3BindAddress: 
  chmailPop3BindPort: 7100
  chmailPop3SSLBindAddress: 
  chmailPop3SSLBindPort: 7901
  chmailPop3SSLServerEnabled: true
  chmailPop3ServerEnabled: true
  chmailSSLExcludeCipherSuites: .*_RC4_.*
  chmailSSLIncludeCipherSuites: 
  chmail_gid: 998
  chmail_uid: 998
  java.version: 21.0.3
  java.version.major: 21
  java.version.micro: 3

java.version.minor = 0
java.version.platform = 21
jetty.base = /opt/chmail/mailboxd
jetty.base.uri = file:///opt/chmail/mailboxd
jetty.home = /opt/chmail/common/jetty_home
jetty.home.uri = file:///opt/chmail/common/jetty_home
jetty.webapp.addHiddenClasses = org.eclipse.jetty.logging., ${jetty.home.uri}/lib/logging/,org.slf4j.
mailboxd_keystore = /opt/chmail/mailboxd/etc/keystore
mailboxd_keystore_password = 5
mailboxd.truststore_password = ch
nio_imap_enabled = true
runtime.feature.alpn = true
slf4j.version = 2.0.12
Classpath: Jetty
Version Information on 99 entries in the classpath.
Note: order presented here is how they would appear on the classpath.
changes to the -module=name command line options will be reflected here.
0:
(dir) | ${jetty.home}/resources
1:
2.0.12 ${jetty.home}/lib/logging/slf4j-api-2.0.12.jar
2:
12.0.11 ${jetty.home}/lib/jetty-client-12.0.11.jar
3:
12.0.11 ${jetty.home}/lib/logging/jetty-slf4j-impl-12.0.11.jar
4:
12.0.11 ${jetty.home}/lib/jetty-alpn-client-12.0.11.jar
5:
12.0.11 ${jetty.home}/lib/jetty-http-12.0.11.jar
6:
12.0.11 ${jetty.home}/lib/jetty-server-12.0.11.jar
7:
12.0.11 ${jetty.home}/lib/jetty-xml-12.0.11.jar
8:
12.0.11 ${jetty.home}/lib/jetty-util-12.0.11.jar
9:
12.0.11 ${jetty.home}/lib/jetty-io-12.0.11.jar
10:
12.0.11 ${jetty.home}/lib/jetty-session-12.0.11.jar
11:
12.0.11 ${jetty.home}/lib/jetty-plus-12.0.11.jar
12:
12.0.11 ${jetty.home}/lib/jetty-security-12.0.11.jar
13:
12.0.11 ${jetty.home}/lib/jetty-jndi-12.0.11.jar
14:
12.0.11 ${jetty.home}/lib/jetty-ee-12.0.11.jar
15:
12.0.11 ${jetty.home}/lib/jetty-deploy-12.0.11.jar
16:
12.0.11 ${jetty.home}/lib/jetty-websocket-core-common-12.0.11.jar
17:
12.0.11 ${jetty.home}/lib/jetty-websocket-core-server-12.0.11.jar
18:
12.0.11 ${jetty.home}/lib/jetty-websocket-jetty-api-12.0.11.jar
19:
12.0.11 ${jetty.home}/lib/jetty-websocket-jetty-common-12.0.11.jar
20:
12.0.11 ${jetty.home}/lib/jetty-websocket-jetty-client-12.0.11.jar
21:
12.0.11 ${jetty.home}/lib/jetty-jmx-12.0.11.jar
22:
12.0.11 ${jetty.home}/lib/jetty-websocket-core-client-12.0.11.jar
23:
1.0 /opt/chmail/jetty_base/common/lib/apache-log4j-extras-1.0.jar
24:
1.73.0 ${jetty.home}/lib/jetty-websocket-core-client-12.0.11.jar
25:
1.73.0 /opt/chmail/jetty_base/common/lib/bcpkix-jdk18on-1.73.jar
26:
1403.04.31 /opt/chmail/jetty_base/common/lib/chmail-common-1403.04.31.jar
27:
1403.04.31 /opt/chmail/jetty_base/common/lib/chmail-native-1403.04.31.jar
28:
3.21.12 /opt/chmail/jetty_base/common/lib/closure-compiler-v20230206.jar
29:
1.5.0 /opt/chmail/jetty_base/common/lib/commons-cli-1.5.0.jar
30:
1.15 /opt/chmail/jetty_base/common/lib/commons-codec-1.15.jar
31:
4.4 /opt/chmail/jetty_base/common/lib/commons-collections4-4.4.jar
32:
1.23.0 /opt/chmail/jetty_base/common/lib/commons-compress-1.23.0.jar
33:
2.9.0 /opt/chmail/jetty_base/common/lib/commons-dbcp2-2.9.0.jar
34:
2.0.0-M1 /opt/chmail/jetty_base/common/lib/commons-fileupload2-jakarta-2.0.0-M1.jar
35:
2.16.1 /opt/chmail/jetty_base/common/lib/commons-io-2.16.1.jar
36:
3.14.0 /opt/chmail/jetty_base/common/lib/commons-lang3-3.14.0.jar
37:
1.2
/opt/chmail/jetty_base/common/lib/commons-logging-1.2.jar
38:
3.9.0
/opt/chmail/jetty_base/common/lib/commons-net-3.9.0.jar
39:
2.11.1
/opt/chmail/jetty_base/common/lib/commons-pool2-2.11.1.jar
40:
1.5
/opt/chmail/jetty_base/common/lib/commons-rng-client-api-1.5.jar
41:
1.5
/opt/chmail/jetty_base/common/lib/commons-rng-core-1.5.jar
42:
1.5
/opt/chmail/jetty_base/common/lib/commons-rng-simple-1.5.jar
43:
1.12.0
/opt/chmail/jetty_base/common/lib/commons-text-1.12.0.jar
44:
1.4.2
/opt/chmail/jetty_base/common/lib/concurrentlinkedhashmap-lru-1.4.2.jar
45:
(none specified)
/opt/chmail/jetty_base/common/lib/dom4j-2.1.4.jar
46:
0.3.0
/opt/chmail/jetty_base/common/lib/eddsa-0.3.0.jar
47:
1.0.1
/opt/chmail/jetty_base/common/lib/failureaccess-1.0.1.jar
48:
31.1.0.jre
/opt/chmail/jetty_base/common/lib/guava-31.1-jre.jar
49:
3.3.1
/opt/chmail/jetty_base/common/lib/HikariCP-3.3.1.jar
50:
4.1.2
/opt/chmail/jetty_base/common/lib/httpasyncclient-4.1.2.jar
51:
4.5.2
/opt/chmail/jetty_base/common/lib/httpclient-4.5.2.jar
52:
4.4.4
/opt/chmail/jetty_base/common/lib/httpcore-4.4.4.jar
53:
4.4.5
/opt/chmail/jetty_base/common/lib/httpcore-nio-4.4.5.jar
54:
4.5.14
/opt/chmail/jetty_base/common/lib/httpmime-4.5.14.jar
55:
(none specified)
/opt/chmail/jetty_base/common/lib/ical4j-0.9.16-chmail.jar
56:
73.1
/opt/chmail/jetty_base/common/lib/icu4j-73.1.jar
57:
3.0.12
/opt/chmail/jetty_base/common/lib/istack-commons-runtime-3.0.12.jar
58:
2.1.3
/opt/chmail/jetty_base/common/lib/jakarta.activation-api-2.1.3.jar
59:
2.1.3
/opt/chmail/jetty_base/common/lib/jakarta.mail-api-2.1.3.jar
60:
4.0.2
/opt/chmail/jetty_base/common/lib/jakarta.xml.bind-api-4.0.2.jar
61:
2.0.0-RC3
/opt/chmail/jetty_base/common/lib/jakarta.xml.soap-api-2.0.0-RC3.jar
62:
4.0.2
/opt/chmail/jetty_base/common/lib/jakarta.xml.ws-api-4.0.2.jar
63:
0.9.0
/opt/chmail/jetty_base/common/lib/java-semver-0.9.0.jar
64:
4.0.5
cb19596
/opt/chmail/jetty_base/common/lib/jaxb-runtime-4.0.5.jar
65:
2.0.0
/opt/chmail/jetty_base/common/lib/jaxen-2.0.0.jar
66:
1.0.23
/opt/chmail/jetty_base/common/lib/jcommon-1.0.23.jar
67:
1.1
/opt/chmail/jetty_base/common/lib/jdom-1.1.jar
68:
1.5.4
/opt/chmail/jetty_base/common/lib/jfreechart-1.5.4.jar
69:
0.11.5
/opt/chmail/jetty_base/common/lib/jjwt-api-0.11.5.jar
70:
20230227.0.0
/opt/chmail/jetty_base/common/lib/json-20230227.jar
71:
1.15.4
/opt/chmail/jetty_base/common/lib/jsoup-1.15.4.jar
72:
2.0.0
/opt/chmail/jetty_base/common/lib/jtnef-2.0.0.jar
73:
(none specified)
/opt/chmail/jetty_base/common/lib/junit-4.8.2.jar
74:
2.6.2
/opt/chmail/jetty_base/common/lib/junixsocket-common-2.6.2.jar
75:
2.6.2
/opt/chmail/jetty_base/common/lib/junixsocket-demo-2.6.2.jar
76:
2.6.2
/opt/chmail/jetty_base/common/lib/junixsocket-mysql-2.6.2.jar
77:
2.6.2
/opt/chmail/jetty_base/common/lib/junixsocket-rmi-2.6.2.jar
78:
1.0.7
/opt/chmail/jetty_base/common/lib/jzlib-1.0.7.jar
79:
(none specified)
/opt/chmail/jetty_base/common/lib/libidn-1.24.jar
80:
2.19.0
/opt/chmail/jetty_base/common/lib/log4j-api-2.19.0.jar
81:
2.19.0
/opt/chmail/jetty_base/common/lib/log4j-core-2.19.0.jar
82:
2.19.0
/opt/chmail/jetty_base/common/lib/log4j-slf4j2-impl-2.19.0.jar
83:
2.4.1
/opt/chmail/jetty_base/common/lib/mariadb-java-client-2.4.1.jar
84:
1.11.2
/opt/chmail/jetty_base/common/lib/micrometer-commons-1.11.2.jar
85:
1.11.2
/opt/chmail/jetty_base/common/lib/micrometer-observation-1.11.2.jar
86:
1.9.13
/opt/chmail/jetty_base/common/lib/nekohtml-1.9.13.1-chmail.jar
87:
(none specified)
/opt/chmail/jetty_base/common/lib/oauth-1.4.jar
88:
2.0.6
/opt/chmail/jetty_base/common/lib/slf4j-api-2.0.6.jar
89:
2.12.1
/opt/chmail/jetty_base/common/lib/spymemcached-2.12.1.jar
90:
2.9.2
/opt/chmail/jetty_base/common/lib/sshd-common-2.9.2.jar
91:
2.9.2
/opt/chmail/jetty_base/common/lib/sshd-core-2.9.2.jar
92:
6.0.8
/opt/chmail/jetty_base/common/lib/unboundid-ldapsdk-6.0.8.jar
93:
1.0
/opt/chmail/jetty_base/common/lib/xercesImpl-2.9.1-chmail.jar
94: (none specified) | /opt/chmail/jetty_base/common/lib/yuicompressor-2.4.2-chmail.jar
95: 8.8.0 | /opt/chmail/jetty_base/common/lib/ziputil-1.7.0-chmail.jar
96: 12.0.11 | ${jetty.home}/lib/jetty-rewrite-12.0.11.jar
97: 2.0.2 | ${jetty.home}/lib/setuid/jetty-setuid-jna-2.0.2.jar
98: 5.14.0 (bo) | ${jetty.home}/lib/setuid/jna-5.14.0.jar

Active XMLs: Jetty
- /opt/chmail/jetty_base/etc/jetty-bytebufferpool.xml
- /opt/chmail/jetty_base/etc/jetty-threadpool.xml
- /opt/chmail/jetty_base/etc/jetty.xml
- /opt/chmail/jetty_base/etc/sessions/id-manager.xml
- /opt/chmail/jetty_base/etc/jetty-ee-webapp.xml
- /opt/chmail/jetty_base/etc/jetty-http.xml
- /opt/chmail/jetty_base/etc/jetty-jmx.xml
- /opt/chmail/jetty_base/etc/jetty-setuid.xml

Properties: ee10
--------------------------------------------------
contextHandlerClass = org.eclipse.jetty.ee10.webapp.WebAppContext
eclipse.jdt.ecj.version = 3.37.0
ee10.asm.version = 9.7
ee10.jakarta.annotation.api.version = 2.1.1
ee10.jakarta.el.api.version = 5.0.1
ee10.jakarta.servlet.jsp.api.version = 3.1.1
ee10.jakarta.servlet.jsp.jstl.api.version = 3.0.0
ee10.jakarta.servlet.jsp.jstl.impl.version = 3.0.1
ee10.jsp.impl.version = 10.1.25
jetty.base = /opt/chmail/mailboxd
jetty.home = /opt/chmail/common/jetty_home

Classpath: ee10
Version Information on 35 entries in the classpath.
Note: order presented here is how they would appear on the classpath.
changes to the **module** name command line options will be reflected here.
0: 6.0.0 | ${jetty.home}/lib/jakarta.servlet-api-6.0.0.jar
1: 12.0.11 | ${jetty.home}/lib/jetty-ee10-servlet-12.0.11.jar
2: 12.0.11 | ${jetty.home}/lib/jetty-ee10-webapp-12.0.11.jar
3: 12.0.11 | ${jetty.home}/lib/jetty-ee10-plus-12.0.11.jar
4: 2.0.1 | ${jetty.home}/lib/jakarta.transaction-api-2.0.1.jar
5: 2.1.0 | ${jetty.home}/lib/jakarta.interceptor-api-2.1.0.jar
6: 4.0.1 | ${jetty.home}/lib/jakarta.enterprise.cdi-api-4.0.1.jar
7: 2.0 | ${jetty.home}/lib/jakarta.inject-api-2.0.1.MR.jar
8: 4.0.1 | ${jetty.home}/lib/jakarta.enterprise.lang-model-4.0.1.jar
9: 12.0.11 | ${jetty.home}/lib/jetty-ee10-annotations-12.0.11.jar
10: 9.7 | ${jetty.home}/lib/ee10-annotations/asm-9.7.jar
11: 9.7 | ${jetty.home}/lib/ee10-annotations/asm-analysis-9.7.jar
12: 9.7 | ${jetty.home}/lib/ee10-annotations/asm-commons-9.7.jar
13: 9.7 | ${jetty.home}/lib/ee10-annotations/asm-tree-9.7.jar
14: 2.1.1 | ${jetty.home}/lib/ee10-annotations/jakarta.annotation-api-2.1.1.jar
15: 5.0.1 | ${jetty.home}/lib/ee10-apache-jsp/jakarta.el.jakarta.el-api-5.0.1.jar
16: 3.1.1 | ${jetty.home}/lib/ee10-apache-jsp/jakarta.servlet.jsp.jakarta.servlet.jsp-api-3.1.1.jar
17: 3.37.0.v20240215-1558 | ${jetty.home}/lib/ee10-apache-jsp/org.eclipse.jdt.ecj-3.37.0.jar
18: 10.1.25 | ${jetty.home}/lib/ee10-apache-jsp/org.mortbay.jasper.apache-el-10.1.25.jar
19: 10.1.25 | ${jetty.home}/lib/ee10-apache-jsp/org.mortbay.jasper.apache-jsp-10.1.25.jar
20: 12.0.11 | ${jetty.home}/lib/jetty-ee10-apache-jsp-12.0.11.jar
21: 3.0.0 | ${jetty.home}/lib/ee10-glassfish-jstl/jakarta.servlet.jsp.jstl.jakarta.servlet.jsp.jstl-api-3.0.0.jar
22: 3.0.1 | ${jetty.home}/lib/ee10-glassfish-jstl/org.glassfish.web.jakarta.servlet.jsp.jstl-3.0.1.jar
23: 12.0.11 | ${jetty.home}/lib/jetty-ee10-servlets-12.0.11.jar
24: 12.0.11 | ${jetty.home}/lib/jetty-websocket-core-common-12.0.11.jar
25: 12.0.11 | ${jetty.home}/lib/jetty-websocket-core-client-12.0.11.jar
26: 12.0.11 | ${jetty.home}/lib/jetty-websocket-core-server-12.0.11.jar
27: 12.0.11 | ${jetty.home}/lib/ee10-websocket/jetty-ee10-websocket-servlet-12.0.11.jar
28: 2.1.1 | ${jetty.home}/lib/ee10-websocket/jakarta.websocket-client-api-2.1.1.jar
29: 2.1.1 | ${jetty.home}/lib/ee10-websocket/jakarta.websocket-api-2.1.1.jar
30: 12.0.11 | ${jetty.home}/lib/ee10-websocket/jetty-ee10-websocket-jakarta-client-12.0.11.jar
31: 12.0.11 | ${jetty.home}/lib/ee10-websocket/jetty-ee10-websocket-jakarta-common-12.0.11.jar
32: 12.0.11 | ${jetty.home}/lib/ee10-websocket/jetty-ee10-websocket-jakarta-server-12.0.11.jar
33: 12.0.11 | ${jetty.home}/lib/ee10-websocket/jetty-ee10-websocket-jetty-server-12.0.11.jar
34: 12.0.11 | ${jetty.home}/lib/ee10-websocket/jetty-ee10-websocket-jetty-client-webapp-12.0.11.jar
Active XMLS: ee10
/opt/chmail/jetty_base/etc/jetty-ee10-deploy.xml
/opt/chmail/iettv base/etc/jetty.xml
joakime commented 1 month ago

Enabled Modules: JVM Version & Properties:

You have no modules enabled. That's the biggest issue by far.

/opt/chmail/common/bin/java_mailboxd -Djavax.net.debug=all -Dfile.encoding=UTF-8 -server -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2, TLSv1.3 -Djdk.tls.client.protocols=TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 -Djava.awt.headless=true -Dsun.net.inetaddr.ttl=60 -Dorg.apache.jasper.compiler.disablejsr199=true -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=45 -XX:-OmitStackTraceInFastThrow -verbose:gc -Xlog:gc*=info,safepoint=info:file=/opt/chmail/log/gc.log:time:filecount=20,filesize=10m -Djava.security.egd=file:/dev/./urandom --add-opens java.base/java.lang-ALL-UNNAMED -Djava.net.preferIPv4Stack=true -Xss256k -Xms2048m -Xmx2048m -Djava.io.tmpdir=/opt/chmail/mailboxd/work -Djava.library.path=/opt/chmail/lib -Dchmail.config=/opt/chmail/conf/localconfig.xml --module-path /opt/chmail/mailboxd/common/endorsed -Djetty.base=/opt/chmail/mailboxd -Djetty.home=/opt/chmail/common/jetty_home -DSTART=/opt/chmail/mailboxd/etc/start.config -jar /opt/chmail/common/jetty_home/start.jar --module=chmail,server,ee10-servlet,ee10-servlets,ee10-jsp,ee10-jstl,jmx,ee10-websocket-jakarta,ee10-websocket-jetty ,ee10-websocket-jetty-client-webapp,resources,ext,plus,rewrite,ee-webapp,ee10-webapp,setuid,http,ee10-deploy,ee10- apache-jsp jetty.home=/opt/chmail/common/jetty_home jetty.base=/opt/chmail/mailboxd /opt/chmail/mailboxd/etc/jetty.xml --list-config

This is the wrong way to use jetty-home.

Lets break down this command line ...

/opt/chmail/common/bin/java_mailboxd

No clue what JVM you are using, is this one based on OpenJDK at least?

-Djavax.net.debug=all -Dfile.encoding=UTF-8 -server

These are fine, but not a requirement for Jetty. This can exist in a Jetty start.d/*.ini file. Note: -server likely does nothing in your JVM. Just run java --version and look at the output. It is likely is always Server. I'm not aware of any JVM (JDK or JRE) that still supports the -client option, all of the JVMs nowadays run in server jvm mode always. (part of along effort to remove the various jvm modes. eg: if you use one of the other past jvm modes like -hotspot, -native, -classic, or -green you'll get an error. The -client and -server modes are next on the chopping block) Heck even the modern JVMs that ship embedded with java client applications report that they are "Server" JVMs now.

-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2, TLSv1.3 -Djdk.tls.client.protocols=TLSv1, TLSv1.1, TLSv1.2, TLSv1.3

This is pointless, has a bad syntax (notice the spaces in front of various TLS entries?), and Jetty will not use these. The https.protocols was a way to specify what TLS protocols the HttpURLConnection would use. But that's been superceded by the $JAVA_HOME/conf/security/java.security file. On Java 17, TLSv1, and TLSv1.1 are disabled by java.security and cannot be enabled via command line. These options, as you have written them, basically do nothing on Java 9 onwards, especially so if your plan is to enable TLSv1 or TLSv1.1, as that can only be done with a custom java.security file now. The best you can hope for with these command line options is to not allow TLSv1.3 (if that's what you are going for)

-Djava.awt.headless=true

No problem here either. This can exist in a Jetty start.d/*.ini file.

-Dsun.net.inetaddr.ttl=60

Internal Sun specific DNS inet address cache control. This is a deprecated property. Perhaps you meant to use networkaddress.cache.ttl instead? This can exist in a Jetty start.d/*.ini file.

-Dorg.apache.jasper.compiler.disablejsr199=true

Means absolutely nothing to Jetty or the Jasper compiler. This was a brief configuration back in the Glassfish JSP era that Apache Jasper did not adopt it. This is most likely an ancient configuration from back the Jetty 6 or Jetty 7 days. Remove it.

-XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:G1MaxNewSizePercent=45 -XX:-OmitStackTraceInFastThrow -verbose:gc -Xlog:gc*=info,safepoint=info:file=/opt/chmail/log/gc.log:time:filecount=20,filesize=10m

Custom GC configuration, ok. But why are you declaring G1GC on Java 17? That should be default. These can exist in a Jetty start.d/*.ini file. See the exec Jetty module configuration.

-Djava.security.egd=file:/dev/./urandom

Two things. This has been replaced with securerandom.source and the default is already file:/dev/urandom Remove this, it changes nothing.

--add-opens java.base/java.lang-ALL-UNNAMED

This is handled by the Jetty start module system. You shouldn't need to declare this if you configure your jetty-base properly. The Jetty module system can configure this for anything Jetty itself uses. If you need to expose more things, then use the start.d/*.ini configuration for this instead.

-Djava.net.preferIPv4Stack=true

Fine, prefer IPv4 over IPv6 is completely reasonable. This can exist in a Jetty start.d/*.ini file.

-Xss256k -Xms2048m -Xmx2048m

Memory settings. ok. These can exist in a Jetty start.d/*.ini file too.

-Djava.io.tmpdir=/opt/chmail/mailboxd/work

Temp directory. ok. These can exist in a Jetty start.d/*.ini file too. Alternatively you can configure Server.setTempDirectory() too (via XML).

-Djava.library.path=/opt/chmail/lib

This can be in a Jetty start.d/*.ini file. Look into the exec Jetty module.

-Dchmail.config=/opt/chmail/conf/localconfig.xml

This can exist in a Jetty start.d/*.ini file.

--module-path /opt/chmail/mailboxd/common/endorsed

The Jetty start and Jetty module system does this. This can be in the same start.d/*.ini configuration that you have for --add-opens above. Or you can declare a module specifically for common-endorsed behaviors and let Jetty add the appropriate module-path and add-opens depending on use of --jpms or not.

-Djetty.base=/opt/chmail/mailboxd -Djetty.home=/opt/chmail/common/jetty_home

If you use your jetty-base properly, then neither of these need to be declared on your command line. But having them there is harmless.

-DSTART=/opt/chmail/mailboxd/etc/start.config

This property is not used by Jetty. But it can exist in a Jetty start.d/*.ini file.

-jar /opt/chmail/common/jetty_home/start.jar

Pretty much the only required command line option.

--module=chmail,server,ee10-servlet,ee10-servlets,ee10-jsp,ee10-jstl,jmx,ee10-websocket-jakarta,ee10-websocket-jetty ,ee10-websocket-jetty-client-webapp,resources,ext,plus,rewrite,ee-webapp,ee10-webapp,setuid,http,ee10-deploy,ee10- apache-jsp

All of these should be properly declared in your jetty-base. Use --add-module=<name>,<name> once on the command line manually and those will be enabled. Check your start.d/.ini for the various configurations. Easy to disable, either remove the start.d/.ini file, or comment out the internal --module=<name> found in the start.d/*.ini file.

jetty.home=/opt/chmail/common/jetty_home jetty.base=/opt/chmail/mailboxd

Both of these are ignored by Jetty start.jar arguments. These come from a discovery process in the Jetty start.jar, not from the command line arguments. Internally, after the discovery, these properties are set by Jetty start.jar for use by various Jetty XML <property> references.

/opt/chmail/mailboxd/etc/jetty.xml

Vastly incomplete XML list. This is most definitely one of the causes of your issues. Based on your other config, I would expect about a dozen XML files listed here (in the proper order). Remove this entirely. Use the jetty-base properly, add the modules, and don't specify this XML, or any other XML files on this command line.

--list-config

If you did this correctly, the ENTIRE command line is java -jar /path/to/jetty-home/start.jar --list-config You can verify the resulting command line with java -jar /path/to/jetty-home/start.jar --dry-run too. Note that if you really want Java JPMS features you can enable the start.jar --jpms option for that.

If you need a raw command line for something like a service file, use the features of --dry-run to accomplish that. Check the start.jar --help for the details of those features. You can also check the ${jetty.home}/bin/jetty.sh for an example of the --dry-run=<parts> usage too.

janbartel commented 1 month ago

I think the question has been answered pretty comprehensively, so I'm closing this issue.