Closed mikke-alekstra closed 2 years ago
Thanks for the effort of extensive testing. This is a good starting point.
Did you observe any notable errors or warnings logged in server log?
Sorry, forgot to mention this in the original post.
I think the 404 error was the only one I got. Such as:
liferay-dev_1 | 2022-01-05 12:18:45.751 WARN [http-nio-8080-exec-4][code_jsp:173] {code="404", msg="ProxyServlet: /vaadin-8.12.4/VAADIN/vaadinBootstrap.js", uri=/o/vaadin-8.12.4/VAADIN/vaadinBootstrap.js}
In addition, with Vaadin 8.14.3 using jsoup-1.14.3 there was a bit strange behaviour when deploying jar-files:
I expected the order of deployment to be:
After deploying jsoup:
liferay-dev_1 | 2022-01-05 12:46:22.118 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:271] Processing jsoup-1.14.3.jar
liferay-dev_1 | 2022-01-05 12:46:28.387 INFO [fileinstall-directory-watcher][BundleStartStopLogger:46] STARTED org.jsoup_1.14.3 [1433]
However after deploying vaadin-server:
liferay-dev_1 | 2022-01-05 12:48:22.147 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:271] Processing vaadin-server-8.14.3.jar
liferay-dev_1 | 2022-01-05 12:48:29.177 ERROR [fileinstall-directory-watcher][DirectoryWatcher:1160] Unable to start bundle: file:/opt/liferay/osgi/modules/vaadin-server-8.14.3.jar
liferay-dev_1 | com.liferay.portal.kernel.log.LogSanitizerException: org.osgi.framework.BundleException: Could not resolve module: com.vaadin.server [1437]_ Unresolved requirement: Import-Package: com.vaadin.sass.internal; resolution:="optional"_ Unresolved requirement: Import-Package: org.atmosphere.cache; version="2.4.30.vaadin4"; resolution:="optional"_ Unresolved requirement: Import-Package: org.atmosphere.client; version="2.4.30.vaadin4"; resolution:="optional"_ Unresolved requirement: Import-Package: org.atmosphere.cpr; version="2.4.30.vaadin4"; resolution:="optional"_ Unresolved requirement: Import-Package: org.atmosphere.handler; version="2.4.30.vaadin4"; resolution:="optional"_ Unresolved requirement: Import-Package: org.atmosphere.util; version="2.4.30.vaadin4"; resolution:="optional"_ Unresolved requirement: Import-Package: org.jsoup; version="[1.14.0,2.0.0)"_ [Sanitized]
liferay-dev_1 | at org.eclipse.osgi.container.Module.start(Module.java:444) ~[org.eclipse.osgi.jar:?]
liferay-dev_1 | at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:428) ~[org.eclipse.osgi.jar:?]
liferay-dev_1 | at com.liferay.portal.file.install.internal.DirectoryWatcher._startBundle(DirectoryWatcher.java:1143) [bundleFile:?]
liferay-dev_1 | at com.liferay.portal.file.install.internal.DirectoryWatcher._startBundles(DirectoryWatcher.java:1176) [bundleFile:?]
liferay-dev_1 | at com.liferay.portal.file.install.internal.DirectoryWatcher._process(DirectoryWatcher.java:1038) [bundleFile:?]
liferay-dev_1 | at com.liferay.portal.file.install.internal.DirectoryWatcher.run(DirectoryWatcher.java:272) [bundleFile:?]
So I removed jsoup:
liferay-dev_1 | 2022-01-05 12:50:09.414 INFO [fileinstall-directory-watcher][BundleStartStopLogger:49] STOPPED org.jsoup_1.14.3 [1433]
(+ the vaadin-server dependency error)
And re-deployed jsoup:
liferay-dev_1 | 2022-01-05 12:50:43.169 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:271] Processing jsoup-1.14.3.jar
liferay-dev_1 | 2022-01-05 12:50:49.702 INFO [Refresh Thread: Equinox Container: 4f33cc77-951f-4bc1-855f-faab822c7f7a][BundleStartStopLogger:46] STARTED com.vaadin.server_8.14.3 [1437]
liferay-dev_1 | 2022-01-05 12:50:49.718 INFO [fileinstall-directory-watcher][BundleStartStopLogger:46] STARTED org.jsoup_1.14.3 [1438]
This did not happen with Vaadin-releases using jsoup-1.11.2.
We tried to investigate commit history of Liferay (which is by the way hard) to find anything that would fit, but so-far we did not find anything yet.
FYI, attached bundle information for vaadin-shared and vaadin-server. LR7.3.5 (works), LR7.3.6 (does not work).
For LR7.3.6 vaadin-server (does not work)
{org.osgi.service.http.context.ServletContextHelper}={service.id=21949, osgi.http.whiteboard.context.name=com.vaadin, service.bundleid=1359, service.scope=bundle, osgi.http.whiteboard.context.path=/vaadin-8.13.3}
is missing from the Services in use -list.
I was now able to replicate the issue with Liferay Docker (liferay/portal:7.3.6-ga7) and vaadin-archetype-liferay-portlet. I got the similar error as you: Failed to load the bootstrap javascript: /o/vaadin-8.14.3/VAADIN/vaadinBootstrap.js?v=8.14.3 This took a while since our documentation was already outdated regarding blade client etc. My steps to reproduce:
docker pull liferay/portal:7.3.6-ga7
docker run -it -p 8080:8080 -p 11311:11311 -v /mnt/c/dev/lr:/mnt/liferay liferay/portal:7.3.6-ga7
<liferay.kernel.version>9.30.0</liferay.kernel.version>
, osgi.core\8.0.0
, osgi.annotation\8.0.1
, osgi.cmpn\7.0.0
blade sh install [url]
and then blade sh start [bundle id]
target/liferay-portlet-v8-1.0.jar
to local Liferay deploy folder (e.g. C:\dev\lr\deploy
)Tested this out now with liferay/portal:7.3.6-ga7 and locally built Vaadin 8.16.0. I had some troubles with jsoup-1.14.3.jar bundle: it was importing 1.10.2 version of itself. Got that resolved by modifying its MANIFEST_MF locally: removed all jsoup related Import-Packages. In addition I had to install following additional bundles: shi-core-6.1.4.jar, jna-5.10.0.jar, and jna-platform-5.10.0.jar. Before vaadin-server bundle was able to start. Unfortunately Vaadin portlet still fails when added to a page: same Failed to load the bootstrap alert. I'll try next few newer Liferay images
I was able to get this working with Portal 7.3.7 CE GA8. It still shows the alert right after adding the portlet to page, but portlet works after publish.
Used docker.io/liferay/portal 7.3.7-ga8 image with Podman.
In portlet project:
I did some testing with OSGi Portlets on Liferay 7.
For some reason Liferay CE 7.3.6 GA7 or later failed with error
Failed to load the bootstrap javascript: /o/vaadin-x.y.z/VAADIN/vaadinBootstrap.js?v=x.y.z
where x.y.z was the Vaadin version in use.The test portlet was the basic Hello World portlet using Maven vaadin-archetype-liferay-portlet archetype.
Browser cache/history was cleared between each test.
Passed tests: Liferay CE 7.3.3 GA4, Vaadin 8.10-8.14 Liferay CE 7.3.4 GA5, Vaadin 8.10-8.14 Liferay CE 7.3.5 GA6, Vaadin 8.10-8.14
Failed tests: Liferay CE 7.3.6 GA7, Vaadin 8.10-8.14 Liferay CE 7.3.7 GA8, Vaadin 8.10-8.14 Liferay CE 7.4.0 GA1, Vaadin 8.13, 8.14 Liferay CE 7.4.1 GA2, Vaadin 8.13, 8.14 Liferay CE 7.4.2 GA3, Vaadin 8.14 Liferay CE 7.4.3.4 GA4, Vaadin 8.14
Setup: Debian GNU/Linux 10 (buster) OpenJDK 11 Firefox 78.15.0esr Standard Liferay Docker images