Lucee 5.3.3.62 - Jetty 9.4.21 on Arch Linux

I am trying to get Lucee 5.3.3.62 running on Jetty 9.4.21 ( latest as of Oct 2019 ) on an Arch Linux VM from Linode.com. I am getting this error:

2019-10-21 10:44:20.827:INFO:oejs.Server:main: jetty-9.4.21.v20190926; built: 2019-09-26T16:41:09.154Z; git: 72970db61a2904371e1218a95a3bef5d79788c33; jvm 13+33
2019-10-21 10:44:20.893:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///web/jetty.base/webapps/] at interval 5
2019-10-21 10:44:21.496:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=156ms
2019-10-21 10:44:21.876:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2019-10-21 10:44:21.876:INFO:oejs.session:main: No SessionScavenger set, using defaults
2019-10-21 10:44:21.876:INFO:oejs.session:main: node0 Scavenging every 660000ms
2019-10-21 10:44:21.964:WARN:oejs.BaseHolder:main:
java.lang.ClassNotFoundException: lucee.loader.servlet.CFMLServlet
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)

The lucee-5.3.3.62.jar file never expands to a Lucee-Server folder. I have Jetty.home & Jetty.base set these values are getting set according to the systemctl status jetty command.

[root@doolittle logs]# systemctl status jetty
â—Ź jetty.service - Jetty Web Application Server
Loaded: loaded (/usr/lib/systemd/system/jetty.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-10-21 10:44:22 EDT; 6s ago
Process: 804 ExecStart=/usr/bin/jetty start (code=exited, status=0/SUCCESS)
Main PID: 826 (java)
Tasks: 25
Memory: 63.6M
CGroup: /system.slice/jetty.service
└─826 /usr/bin/java -verbose -Djetty.home=/opt/jetty -Djetty.base=/web/jetty.base -Djava.io.tmpdir=/tmp -jar /opt/jetty/start.jar jetty.state=/web/jetty.base/jetty.state jetty-started.xml

Oct 21 10:44:18 doolittle jetty[804]: JETTY_RUN = /run/jetty
Oct 21 10:44:18 doolittle jetty[804]: JETTY_PID = /run/jetty/jetty.pid
Oct 21 10:44:18 doolittle jetty[804]: JETTY_START_LOG = /run/jetty/jetty-start.log
Oct 21 10:44:18 doolittle jetty[804]: JETTY_STATE = /web/jetty.base/jetty.state
Oct 21 10:44:18 doolittle jetty[804]: JETTY_START_TIMEOUT = 60
Oct 21 10:44:18 doolittle jetty[804]: RUN_CMD = /usr/bin/java -verbose -Djetty.home=/opt/jetty -Djetty.base=/web/jetty.base -Djava.io.tmpdir=/tmp -jar /opt/jetty/start.jar jetty.state=/web/j>
Oct 21 10:44:19 doolittle jetty[804]: Starting Jetty: 2019-10-21 10:44:19.841:INFO::main: Logging initialized @1337ms to org.eclipse.jetty.util.log.StdErrLog
Oct 21 10:44:20 doolittle jetty[804]: 2019-10-21 10:44:20.615:INFO::main: Console stderr/stdout captured to /web/jetty.base/logs/2019_10_21.jetty.log
Oct 21 10:44:22 doolittle jetty[804]: OK Mon 21 Oct 2019 10:44:22 AM EDT
Oct 21 10:44:22 doolittle systemd[1]: Started Jetty Web Application Server.

This same configuration ( start.ini ) runs on a Windows 10 box without issue.

Versions:
OpenJDK 13.0.1
Lucee: 5.3.3.62
Jetty: 9.4.21
Arch Linux: latest patches via pacman -Syu

Any ideas to try would be helpful. It have been stuck here for 3 days now.

Andrew Penhorwood

Bleeding edge distro, bleeding edge bugs.

Try installing Tomcat 8 and configuring lucee as a jar

OR

make sure you have all the underlying libraries to run every binary on your list.
JDK, zlib, xmllib expact2… just to name a few…
check permissions.
try again.

I reviewed the manifest files in noticed that things were built with Java 1.8.
I installed Java 1.8.0_222 on Arch Linux and things started working.

Jetty version 9.4.21
Lucee version 5.3.3.62

1 Like

@apenhorwood Lucee 5.3 should run find on Java 11 so downgrading your Java version here shouldn’t be the correct fix. Unless Jetty itself isn’t compat with new versions of Java.

@Brad - If I get time I will see if that works also. The java 1.8.0_222 works. The OpenJDK Java 1.13.0.1 does not work.

@apenhorwood There is no such version of Java as 1.13. Do you by chance mean Java 13? (note the version naming scheme was updated in Java 9 to change the major number. I’m not actually sure if Lucee has been tested against java 13 yet, so that could be an issue.

Sorry, yes OpenJDK 13.0.1.

I have verified that OpenJDK 11 works but only with Lucee-5.3.2.77.jar. Lucee-5.3.3.62.jar never deployed with OpenJDK 1.8, 11 or 13 on Arch Linux. I was able to upgrade from Lucee 5.3.2.77 to Lucee 5.3.3.62 via Lucee’s Server Admin feature without issue.

@apenhorwood To be clear, when you say “never deployed”, do you mean that you never tried those versions, or you tried those versions and received errors? If the latter, did you lodge tickets in the bug tracker for the issues you encountered?

On jetty you put the jar file in jetty.base/lib/ext. From there something expands the jar to a folder called lucee-server under jetty.home. That is the part that never happens. I assume that is a lucee function.

The whole thing is really frustrating me. I am building a PGKBUILD for installing jetty and Lucee on Arch Linux. But so far I can’t get this part to work consistently. Today even lucee version 5.3.2.77 failed to expand into the lucee-server folder. That is what I meant when I used the word deploy.

The error is just that the class is not found. Nothing else to go at least as far as I can tell. I have stack traces and debug logs but nothing really stands out as to why this is happening. I have got it to work twice by manually tweaking setting. I tweak my PKGBUILD and rebuild the whole server just to have it fail again.

At this point I think the two times it worked had nothing to do with my tweaks.

A new day and I discovered the issue. When downloading from the download.lucee.org with wget on the jar file the file name is only the version number. It works differently if you use a web browser to download the file.

The Lucee-5.3.2.77.jar file was not a jar but an errror message from the server.

can you post the error message and wget command?

On jetty you put the jar file in jetty.base/lib/ext. From there something expands the jar to a folder called lucee-server under jetty.home.

Hmm, I’ve never heard of such a deployment mechanism where a servlet container simply picked up a jar. Did you perhaps mean a war file? That would make a great deal more sense.

That is the part that never happens. I assume that is a lucee function.

When Lucee is bootstrapped inside a servlet, there is a server context that is created, usually in the same location as the Lucee jar. There is also a web context folder that is created too. I’ve never seen these happen outside of a war however.

The whole thing is really frustrating me.

I’m sure it is, but to be honest, I have no earthly idea what it is you’re trying to do here! Is there some guide or set of installation instructions you’re following? I don’t know how to help you.

Today even lucee version 5.3.2.77 failed to expand into the lucee-server folder. That is what I meant when I used the word deploy.

Got it, I understand what you meant by deploy not happening. Have you checked the servlet’s “out” logs. This would be the first place to look for clues. But again, if you’re not using a war deployment, I’m not sure what you’re trying to set up. It’s possible the Lucee jar unpacks itself simply by being class loaded, but I didn’t think that was ever the case.

The error is just that the class is not found.

What error? What class? Where was the error? I’m not sure if you were sharing that information for us to help you or not, but without a great deal more information there’s not much we can do on our end to assist.

jar file the file name is only the version number

In Java, the name of a jar carries no meaning. You could rename lucee.jar to foobar.jar and it would work all the same. Like Zac mentioned, if you’re asking for us to help you, then please start including much much more detail in your posts! :slight_smile: For starters the URL you hit, the size of the download, etc, etc.

1 Like

Sorry for the delay but I finally got it to work. When doing a wget via a script I used this command

wget https://release.lucee.org/rest/update/provider/loader/5.3.3.62

Which produced a file call 5.3.3.62 which was an error message and not a real jar file. My script did not notice because it renamed the file. I never looked at the file size which was my real issue since it was never a real jar file. I will go test the whole thing again to verify the real issue. Maybe it was always a bad jar file.

I did test the wget command today ( 2019-10-25 ) and was not able to reproduce the issue of an error message. Maybe something changes since I worked on this on Monday.

As for deployment. The Lucee file is placed in Jetty.base/lib/ext/lucee-{version}. That jar gets picked up and expanded into lucee-server under Jetty.home/lucee-server. This seems to be a standard Lucee or Jetty practice because it happens that way on Windows too and on my Gentoo server.