box start cfengine=adobe@2016 throws an error

Hi all –

I’m on CommandBox 3.6.0+00647 (on Mac OSX 10.11.6).

Trying to use Adobe ColdFusion 2016 via:

box start cfengine=adobe@2016

CommandBox goes off to ForgeBox, grabs the artifact, starts to spin it up and then I get this:

The server for /ProjectStuff/CommandBoxTraining/pathtest is starting on 127.0.0.1:53942…
Starting in background -
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585)
at java.lang.Class.getConstructor0(Class.java:2885)
at java.lang.Class.getDeclaredConstructor(Class.java:2058)
at io.undertow.servlet.api.ListenerInfo.(ListenerInfo.java:49)
at runwar.undertow.WebXMLParser.parseWebXml(WebXMLParser.java:108)
at runwar.Server.startServer(Server.java:448)

Weird, what if you just do cfengine=adobe

Hi Luis,

That does the same thing. For clarity, here’s what happens just before I get that error:

Contacting ForgeBox to determine the latest & greatest version of [adobe]… Use an exact ‘cfengine’ version to skip this check.
OK, [adobe 2016.0.04+302561] it is!
WAR/zip archive already installed.

-nolan

Hmm, I would clear my artifacts just in case

box artifacts clean

Hi Luis,

I did box artifacts clean and tried again, I get a slightly different error now. The entire message is below. Note the “at java.security.AccessController.doPrivileged(Native Method)” which was not part of the message I received yesterday.

-nolan

OK, [adobe 2016.0.04+302561] it is!
WAR/zip archive already installed.
The server for /ProjectStuff/CommandBoxTraining/pathtest is starting on 127.0.0.1:53942…
Starting in background -
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585)
at java.lang.Class.getConstructor0(Class.java:2885)
at java.lang.Class.getDeclaredConstructor(Class.java:2058)
at io.undertow.servlet.api.ListenerInfo.(ListenerInfo.java:49)
at runwar.undertow.WebXMLParser.parseWebXml(WebXMLParser.java:108)
at runwar.Server.startServer(Server.java:448)

What if you remove your .CommandBox folder and start it up again.

Removed my .CommandBox folder and tried again. First time, I got this:

Configuring CommandBox home: /Users/nolanerck/.CommandBox (change with -CommandBox_home=/path/to/dir)
Library path: /Users/nolanerck/.CommandBox/lib
Initializing libraries – this will only happen once, and takes a few seconds…

Libraries initialized
Contacting ForgeBox to determine the latest & greatest version of [adobe]… Use an exact ‘cfengine’ version to skip this check.
OK, [adobe 2016.0.04+302561] it is!

Installing package [forgebox:adobe@]
Verifying package ‘adobe’ in ForgeBox, please wait…
Installing version [2016.0.04+302561].
Verified entry in ForgeBox: ‘adobe’
Deferring to [http] endpoint for ForgeBox entry [adobe]…
Downloading [HTTP://downloads.ortussolutions.com/adobe/coldfusion/2016.0.04/cf-engine-2016.0.04.zip]
6% [=========> ] 88.7MB / 341.1MB ( 2.4MBps)Operation timed out
ERROR (3.6.0+00647)

Server not installed.

Tried a second time and I got this:

Contacting ForgeBox to determine the latest & greatest version of [adobe]… Use an exact ‘cfengine’ version to skip this check.
OK, [adobe 2016.0.04+302561] it is!

Installing package [forgebox:adobe@]
Verifying package ‘adobe’ in ForgeBox, please wait…
Installing version [2016.0.04+302561].
Verified entry in ForgeBox: ‘adobe’
Deferring to [http] endpoint for ForgeBox entry [adobe]…
Downloading [HTTP://downloads.ortussolutions.com/adobe/coldfusion/2016.0.04/cf-engine-2016.0.04.zip]
100% [=====================================>] 341.1MB / 341.1MB ( 2.4MBps)
Uncompressing…
Storing download in artifact cache…
Done.
Installing to: /Users/nolanerck/.CommandBox/temp/6F4EE199-36D1-414B-BE309E79D3F6DDCE
-> 2 File(s) Installed
-> 0 File(s) ignored
Eureka, ‘adobe@’ has been installed!
Exploding WAR/zip archive…
The server for /ProjectStuff/CommandBoxTraining/pathtest is starting on 127.0.0.1:51742…
Starting in background -
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585)
at java.lang.Class.getConstructor0(Class.java:2885)
at java.lang.Class.getDeclaredConstructor(Class.java:2058)
at io.undertow.servlet.api.ListenerInfo.(ListenerInfo.java:49)
at runwar.undertow.WebXMLParser.parseWebXml(WebXMLParser.java:108)
at runwar.Server.startServer(Server.java:448)

Kicking around ideas…is there a particular flavor of Java or anything along those lines that I need installed for this to work?

-n

Hi Nolan, sorry I’m just now getting to this thread. I was out all weekend camping and didn’t have a PC (or cell coverage).

So, I’m not sure what’s going on with your server and I can’t say I’ve seen that issue before. What’s extra interesting is that you’re saying it only affects Adobe CF 2016. What’s also kind of confusing is the stack trace that’s showing up doesn’t show the actual error message!

Can you show the full console output that you get when you start with “start cfengine=adobe --debug --console”. Also, please ensure you’re on the latest version of CommandBox which is 3.6.0. Note, the command above will live-stream the standard out log to your console and the server will stay running until you hit Ctrl+C. I think there’s some additional error information in there that we’re just not seeing.

In regards to your question about Java, CommandBox requires at least Java 7, and I think Adobe CF 2016 will work on it as well. I’ve personally had Java 8 on my local PC for a long time so all my servers start on Java 8.

Thanks!

~Brad

Oh, another idea- can you try starting with a previous update level of 2016? That will help narrow down what’s happening.

To view the versions of Adobe CF that are available, run “forgebox show adobe”.

Here’s all the 2016 versions that are available:

start cfengine=adobe@2016.0.04
start cfengine=adobe@2016.0.03
start cfengine=adobe@2016.0.02
start cfengine=adobe@2016.0.01
start cfengine=adobe@2016.0.0

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Hi Brad,

No worries. It’s a holiday weekend. Just because I’m up at 1am starting at a laptop, I don’t assume everyone else is. :slight_smile:

I’m on CommandBox 3.6.0. OSX System Preferences says I’m on Java 1.8, but the console output seems to think it’s Java 1.7 – weird. I just tried “server start cfengine=adobe --debug --console” and the output I get is below.

Thanks for the help.

-nolan

CommandBox:pathtest> server start cfengine=adobe --debug --console
Looking for server JSON file by convention: /ProjectStuff/CommandBoxTraining/pathtest/server.json
webroot defaulted to location of server’s JSON file: /ProjectStuff/CommandBoxTraining/pathtest
start server in - /ProjectStuff/CommandBoxTraining/pathtest
server name - pathtest
server config file - /ProjectStuff/CommandBoxTraining/pathtest/server.json
Contacting ForgeBox to determine the latest & greatest version of [adobe]… Use an exact ‘cfengine’ version to skip this check.
OK, [adobe 2016.0.04+302561] it is!
WAR/zip archive already installed.
Server start command: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/bin/java
-Xms512m
-Xmx512m
-jar /Users/nolanerck/.CommandBox/lib/runwar-3.6.0.jar
–background=false
–port 51742
–host 127.0.0.1
–debug true
–stop-port 49405
–processname pathtest [adobe 2016.0.04+302561]
–log-dir /Users/nolanerck/.CommandBox/server/FA21B42245EA3D0951D0AE0933546D62-pathtest/adobe-2016.0.04.302561/logs
–open-browser true
–open-url http://127.0.0.1:51742
–server-name pathtest
–tray-icon /Users/nolanerck/.CommandBox/cfml/system/config/server-icons/trayicon-cf2016.png
–tray-config /Users/nolanerck/.CommandBox/server/FA21B42245EA3D0951D0AE0933546D62-pathtest/trayOptions.json
–servlet-rest-mappings /rest/,/api/
–directoryindex true
–timeout 240
–cfengine-name adobe
-war /ProjectStuff/CommandBoxTraining/pathtest
–web-xml-path /Users/nolanerck/.CommandBox/server/FA21B42245EA3D0951D0AE0933546D62-pathtest/adobe-2016.0.04.302561/WEB-INF/web.xml
–urlrewrite-enable false
The server for /ProjectStuff/CommandBoxTraining/pathtest is starting on 127.0.0.1:51742…
Runwar: RunwarLogger JDK loggers detected, org.jboss.logging set to level DEBUG
Runwar: RunwarLogger JDK loggers detected, RunwarLogger set to level DEBUG
Runwar: RunwarLoggerNo log4j loggers detected
Runwar: Logging to /Users/nolanerck/.CommandBox/server/FA21B42245EA3D0951D0AE0933546D62-pathtest/adobe-2016.0.04.302561/logs/server.out.txt
Runwar: trying to load icon: /Users/nolanerck/.CommandBox/cfml/system/config/server-icons/trayicon-cf2016.png

Ahh, there we go. Should have done the debug start in the first place :slight_smile:

Exception in thread “main” java.lang.UnsupportedClassVersionError: coldfusion/bootstrap/BootstrapClassLoader : Unsupported major.minor version 52.0

That means that you’re using Java 7 and a class file that’s being loaded (coldfusion/bootstrap/BootstrapClassLoader) is compiled for Java 8. Now, I’m surprised since I didn’t think Adobe had any requirements for Java 8 in their latest version. What happened when you tried starting Adobe 2016 update 3?

The quickest fix however, is to figure out why CommandBox is trying to use Java 7. Assuming you don’t have a folder named JRE in the same directory as the box binary, CommandBox should be using the $JAVA_HOME environment variable on your Mac to decide what java version to use.

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

I double checked the requirements for 2016 and it does require Java 8! I didn’t realize 2016 had dropped support for Java 7.
https://helpx.adobe.com/pdf/coldfusion2016-support-matrix.pdf

So that confirms that no version of ACF2016 will run until you get your env vars set up to be correctly using Java 8. I’ll put in a ticket to add a better error check for this just since it’s not an obvious error message and CommandBox still runs on Java 7 (which is required for ACF 9!)

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Nolan, on this note I went ahead and finally implemented this ticket on the CommandBox bleeding edge:

https://ortussolutions.atlassian.net/browse/COMMANDBOX-548

This allow you to override the default Java version for a specific server which can be really handy if you’re running stuff like CF9 servers that require Java 7 or 2016 servers that require Java 8. Or just for any testing purposes you might have where you want to spin up multiple servers on different JVM versions.

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Oh, and I put in this ticket as well:

https://ortussolutions.atlassian.net/browse/COMMANDBOX-641

Thanks!

~Brad

ColdBox/CommandBox Developer Advocate
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com