I feel so stupid right now.. Thanks Mike, you're the best!
-----Original Message----- From: Michael Jumper <[email protected]> Sent: Thursday, May 4, 2023 5:41 PM To: [email protected] Subject: Re: Resource 404 error after packaging with Maven The path used to retrieve "logo.png" should be: .../app/ext/ndaw-crdp/images/logo.png Not: .../app/ext/ndaw-crdp/resources/images/logo.png See the description of the "resources" part of guac-manifest.json: https://guacamole.apache.org/doc/gug/guacamole-ext.html#extension-manifest - Mike On 5/4/23 03:28, Willem van de Mheen wrote: > Some introduction: When I started this project Guacamole 1.4.0 was still the > latest version so I'm still using that to develop my extension. Once I have > it working properly I want to test it with Guacamole 1.5.1. Also, the company > I work for is branding Guacamole as "Clientless RDP" or CRDP so you'll see > that name at several places. > > I have the following files in place: > - guacamole-1.4.0.war file saved as > /var/lib/tomcat9/webapps/clientlessrdp.war > - auth-jdbc extension saved as > /etc/guacamole/extensions/guacamole-auth-jdbc-mysql-ndaw-1.4.0.jar > - my branding extension saved as > /etc/guacamole/extensions/ndaw-crdp-1.4.0.jar > > When I start Tomcat the logs show: > May 04 09:17:53 guacamole140 tomcat9[14304]: Deploying web application > archive [/var/lib/tomcat9/webapps/clientlessrdp.war] > May 04 09:17:56 guacamole140 tomcat9[14304]: At least one JAR was scanned for > TLDs yet contained no TLDs. Enable debug logging for this logger for a > complete list of JARs that were scanned but no TLDs were found in them. > Skipping unneeded JARs during scanning can improve startup time and JSP > compilation time. > May 04 09:17:56 guacamole140 tomcat9[14304]: 09:17:56.967 [main] INFO > o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/etc/guacamole". > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.173 [main] INFO > o.a.g.GuacamoleServletContextListener - Read configuration parameters from > "/etc/guacamole/guacamole.properties". > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.175 [main] INFO > o.a.g.rest.auth.HashTokenSessionMap - Sessions will expire after 60 minutes > of inactivity. > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.587 [main] INFO > o.a.g.extension.ExtensionModule - Multiple extensions are installed and will > be loaded in order of decreasing priority: > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.588 [main] INFO > o.a.g.extension.ExtensionModule - - [mysql] "MySQL Authentication" > (/etc/guacamole/extensions/guacamole-auth-jdbc-mysql-ndaw-1.4.0.jar) > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.590 [main] INFO > o.a.g.extension.ExtensionModule - - [ndaw-crdp] "New Day At Work > Clientless RDP Guacamole extension" > (/etc/guacamole/extensions/ndaw-crdp-1.4.0.jar) > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.591 [main] INFO > o.a.g.extension.ExtensionModule - To change this order, set the > "extension-priority" property or rename the extension files. The default > priority of extensions is dictated by the sort order of their filenames. > May 04 09:17:57 guacamole140 tomcat9[14304]: 09:17:57.629 [main] INFO > o.a.g.a.mysql.conf.MySQLEnvironment - Installed JDBC driver for MySQL/MariaDB > detected as "MySQL Connector/J". > May 04 09:17:59 guacamole140 tomcat9[14304]: 09:17:59.455 [main] INFO > o.a.g.extension.ExtensionModule - Extension "MySQL Authentication" (mysql) > loaded. > May 04 09:17:59 guacamole140 tomcat9[14304]: 09:17:59.594 [main] INFO > o.a.g.extension.ExtensionModule - Extension "New Day At Work Clientless RDP > Guacamole extension" (ndaw-crdp) loaded. > May 04 09:17:59 guacamole140 tomcat9[14304]: 09:17:59.790 [main] INFO > o.a.g.t.w.WebSocketTunnelModule - Loading JSR-356 WebSocket support... > May 04 09:18:00 guacamole140 tomcat9[14304]: 09:18:00.879 [main] WARN > o.g.jersey.server.wadl.WadlFeature - JAXBContext implementation could not be > found. WADL feature is disabled. > May 04 09:18:01 guacamole140 tomcat9[14304]: Deployment of web > application archive [/var/lib/tomcat9/webapps/clientlessrdp.war] has > finished in [8,116] ms May 04 09:18:01 guacamole140 tomcat9[14304]: Deploying > web application directory [/var/lib/tomcat9/webapps/ROOT] May 04 09:18:02 > guacamole140 tomcat9[14304]: At least one JAR was scanned for TLDs yet > contained no TLDs. Enable debug logging for this logger for a complete list > of JARs that were scanned but no TLDs were found in them. Skipping unneeded > JARs during scanning can improve startup time and JSP compilation time. > May 04 09:18:02 guacamole140 tomcat9[14304]: Deployment of web > application directory [/var/lib/tomcat9/webapps/ROOT] has finished in > [973] ms > > So that seems fine. There are no other errors being logged. The missing logo > is only shown in the access logs: > > [04/May/2023:09:20:23 +0000] "GET > /clientlessrdp/app/ext/ndaw-crdp/resources/images/logo.png HTTP/1.1" > 404 799 > > The layout of the branding jar is: > > │ guac-manifest.json > │ license.txt > │ ndaw-crdp.css > │ ndaw-crdp.js > │ ndaw-crdp.min.css > │ ndaw-crdp.min.js > │ > ├───controllers > │ fonts.js > │ switchAppKey.js > │ templates-main-ndaw.js > │ ws365Draggable.js > │ > ├───generated > │ └───templates-main > │ templates.js > │ > ├───images > │ logo-144.png > │ logo-64.png > │ logo.png > │ Symbol.svg > │ WS365-AppSwitcher.png > │ > ├───META-INF > │ │ MANIFEST.MF > │ │ > │ └───maven > │ └───org.apache.guacamole > │ └───ndaw-crdp > │ pom.properties > │ pom.xml > │ > ├───styles > │ ndaw.css > │ > ├───templates > │ guacTextInput.html > │ switchAppKey.html > │ ws365Draggable.html > │ > └───translations > ca.json > cs.json > de.json > en.json > es.json > fr.json > it.json > ja.json > ko.json > nl.json > no.json > pt.json > ru.json > zh.json > > > The contents of the guac-manifest.json is: > > { > "guacamoleVersion" : "*", > "name" : "New Day At Work Clientless RDP Guacamole > extension", > "namespace" : "ndaw-crdp", > "smallIcon" : "images/logo-64.png", > "largeIcon" : "images/logo-144.png", > > "css" : [ > "ndaw-crdp.min.css" > ], > > "js" : [ > "ndaw-crdp.min.js" > ], > > "resources" : { > "images/Symbol.svg" : "image/svg+xml", > "images/logo.png" : "image/png", > "images/WS365-AppSwitcher.png" : "image/png", > "templates/switchAppKey.html" : "text/html", > "templates/ws365Draggable.html" : "text/html" > }, > > "translations" : [ > "translations/ca.json", > "translations/cs.json", > "translations/de.json", > "translations/en.json", > "translations/es.json", > "translations/fr.json", > "translations/it.json", > "translations/ja.json", > "translations/ko.json", > "translations/nl.json", > "translations/no.json", > "translations/pt.json", > "translations/ru.json", > "translations/zh.json" > ] > } > > I based my pom.xml in the pom.xml of the TOTP extension. I only changed the > artifactId, name and url and in the configurations for the > angular-maven-plugin and minify-maven-plugin, I replaced "totp" with > "ndaw-crdp". > > Best regards, > Willem van de Mheen > > > > > -----Original Message----- > From: Michael Jumper <[email protected]> > Sent: Thursday, May 4, 2023 2:02 AM > To: [email protected] > Subject: Re: Resource 404 error after packaging with Maven > > On 5/3/23 08:39, Nick Couchman wrote: >> On Wed, May 3, 2023 at 11:29 AM Willem van de Mheen >> <[email protected]> wrote: >>> >>> I’m working on a Guacamole branding extension and when I create a jar file >>> by zipping the directory, I can load the extension and images load just >>> fine. The strange thing is that when I package the files with Maven, the >>> extension still loads perfectly and while for instance the custom font is >>> still working, the paths to images that worked before no longer work. >>> Tomcat returns a 404 error when trying to open the image. When I open the >>> jar file from Maven in 7-zip, everything seems the same. I can see the >>> images are there. It almost seems like the path is blocked in Tomcat >>> somewhere, but I can’t find where. Do you have any pointers on where to >>> look? If you need more information, please let me know. >>> >> >> You'll need to provide some more detail - maybe some logs from >> Tomcat, and a rough idea of the configuration - what folder you're >> putting the WAR file in, where you're putting the JARs, etc., so that >> we can better help identify the problem. >> > > A listing of the contents of each .jar and the contents of their > guac-manifest.json files would also be helpful. > > - Mike > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
