Hi,
Thanks for your hint to use mvn:io.hawt/hawtio-osgi/2.15.0/war web application
for testing. It would be really cumbersome to get something meaningful from the
log file when running with my application.
So I created a feature.xml file with the following content:
<?xml version="1.0" encoding="UTF-8"?>
<features name="application-40.0.1-SNAPSHOT"
xmlns=http://karaf.apache.org/xmlns/features/v1.4.0
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://karaf.apache.org/xmlns/features/v1.4.0>
<feature name="application" install="auto"
version="40.0.1-SNAPSHOT">
<feature prerequisite="true">jpa</feature>
<feature prerequisite="true">hibernate</feature>
<feature prerequisite="true">spring</feature>
<feature
prerequisite="true">spring-jdbc</feature>
<feature prerequisite="true">spring-orm</feature>
<feature
prerequisite="true">spring-aspects</feature>
<feature
prerequisite="true">spring-instrument</feature>
<feature
prerequisite="true">spring-security</feature>
<feature prerequisite="true">spring-web</feature>
<feature prerequisite="true">spifly</feature>
<feature
prerequisite="true">pax-web-war</feature>
<bundle>mvn:io.hawt/hawtio-osgi/2.15.0/war</bundle>
</feature>
</features>
The feature.xml file is placed in the deploy directory. When I start Karaf it
loads successfully but when I try to access /system/console page I get the
already mentioned error in the log file.
To complete the information I have the following features listed in
featuresBoot:
featuresBoot = \
instance/4.4.1, \
package/4.4.1, \
log/4.4.1, \
ssh/4.4.1, \
pax-web-http-tomcat/8.0.6, \
webconsole/4.4.1, \
framework-logback/4.4.1, \
system/4.4.1, \
feature/4.4.1, \
shell/4.4.1, \
management/4.4.1, \
service/4.4.1, \
jaas/4.4.1, \
deployer/4.4.1, \
diagnostic/4.4.1, \
wrap/2.6.11, \
bundle/4.4.1, \
config/4.4.1
I believe you should be able to reproduce it as well and possibly debug it if
necessary.
My humbe guess would be that the problem might be caused by the spring-web
feature.
Regards
Martin Zukal
From: Grzegorz Grzybek <[email protected]>
Sent: Thursday, November 3, 2022 3:41 PM
To: [email protected]; Martin Zukal <[email protected]>
Subject: Re: webconsole and pax-web-http-tomcat
Hi
OK, I checked the scenario (Karaf 4.4.1, Pax Web 8.0.6, pax-web-http-tomcat and
mvn:io.hawt/hawtio-osgi/2.15.0/war web application).
The missing RESOURCES_ATTR attribute in your case is available in my case and
is added with this code (in
org.apache.catalina.core.StandardContext#startInternal()):
if (ok) {
getServletContext().setAttribute
(Globals.RESOURCES_ATTR, getResources());
so looks like "ok" is false ;) please increase logging for
"org.ops4j.pax.web.extender.war" logger to see what may be wrong.
regards
Grzegorz Grzybek
czw., 3 lis 2022 o 14:47 Grzegorz Grzybek <[email protected]
<mailto:[email protected]> > napisał(a):
Let me check this, because there's obvious check in Tomcat code:
// Load the web resources
resources = (WebResourceRoot)
getServletContext().getAttribute(Globals.RESOURCES_ATTR);
if (resources == null) {
throw new UnavailableException(sm.getString("defaultServlet.noResources"));
}
I'm sure I've added enough customization, but maybe something's wrong with
Tomcat upgrade? Give me few hours (I have urgent tasks to do..)
regards
Grzegorz Grzybek
czw., 3 lis 2022 o 14:34 Martin Zukal via user <[email protected]
<mailto:[email protected]> > napisał(a):
Hi,
Thanks a lot! I finally got rid off the jetty feature when using the
pax-web-war.
Unfortunately, I still see the following errors in the log file:
[2022-11-03 14:21:03.337] INFO ttp-nio2-0.0.0.0-8080-exec-4
o.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/] Marking
servlet [default-e4573fbf-222b-4d8d-a8b6-3509f9ba89f9] as unavailable
[2022-11-03 14:21:03.341] ERROR ttp-nio2-0.0.0.0-8080-exec-4
o.a.c.c.C.[.[.[/].[default-e4573fbf-222b-4d8d-a8b6-3509f9ba89f9] Allocate
exception for servlet [default-e4573fbf-222b-4d8d-a8b6-3509f9ba89f9]
javax.servlet.UnavailableException: No static resources were found
at
org.apache.catalina.servlets.DefaultServlet.init(DefaultServlet.java:384)
at
org.ops4j.pax.web.service.tomcat.internal.web.TomcatResourceServlet.init(TomcatResourceServlet.java:87)
at javax.servlet.GenericServlet.init(GenericServlet.java:180)
at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1164)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:804)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:128)
at
org.ops4j.pax.web.service.tomcat.internal.PaxWebStandardWrapperValve.invoke(PaxWebStandardWrapperValve.java:50)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at
org.ops4j.pax.web.service.tomcat.internal.PaxWebStandardContextValve.invoke(PaxWebStandardContextValve.java:98)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at
org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1701)
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at
org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1190)
at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:633)
at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:611)
at
java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:219)
at
java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
The weird thing is that when I run Karaf locally (where it is configured to
resolve the dependencies from my local maven repository) the console works. I
can see the bundles, services, features etc. However, the menu item http under
Main is not displayed.
When I run Karaf in test environment (based on docker) where it is configured
to resolve the dependencies from system or repository directories I see the
alsmost empty page which I sent in attachment in my first email.
The above mentioned errors are in the log file In both cases.´
Best regards
Martin Zukal
From: Grzegorz Grzybek <[email protected] <mailto:[email protected]> >
Sent: Thursday, November 3, 2022 12:33 PM
To: [email protected] <mailto:[email protected]> ; Martin Zukal
<[email protected] <mailto:[email protected]> >
Subject: Re: webconsole and pax-web-http-tomcat
Ah - I forgot about "war"...
It's defined as:
<feature name="war" description="Transition feature for backward
compatibility" version="4.4.1">
<feature>pax-web-http-war</feature>
</feature>
which again leads to Jetty. You need "pax-web-war" feature, which doesn't
enforce any particular runtime, so you have to use one explicitly - like
pax-web-http-tomcat.
regards
Grzegorz Grzybek
czw., 3 lis 2022 o 12:28 Martin Zukal via user <[email protected]
<mailto:[email protected]> > napisał(a):
Hi,
Again thanks for a quick response. I tried to remove the http feature from
startupFeatures but then Karaf does not start and I can see the following error
in the log file:
Error resolving artifact
org.ops4j.pax.web:pax-web-features:xml:config-jetty:8.0.6: [Could not find
artifact org.ops4j.pax.web:pax-web-features:xml:config-jetty:8.0.6 in
defaultlocal (file:/opt/apache-karaf-STABILIT-4.4.1/repository/), Could not
find artifact org.ops4j.pax.web:pax-web-features:xml:config-jetty:8.0.6 in
local.repository (file:/opt/apache-karaf-STABILIT-4.4.1/repository/)]
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.configureIOException(AetherBasedResolver.java:803)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:774)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:657)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:598)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:565)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:555)
at
org.ops4j.pax.url.mvn.internal.Connection.getInputStream(Connection.java:123)
at java.base/java.net.URL.openStream(Unknown Source)
at
org.apache.karaf.features.internal.service.FeatureConfigInstaller.installConfigurationFile(FeatureConfigInstaller.java:304)
at
org.apache.karaf.features.internal.service.FeatureConfigInstaller.installFeatureConfigs(FeatureConfigInstaller.java:173)
at
org.apache.karaf.features.internal.service.BundleInstallSupportImpl.installConfigs(BundleInstallSupportImpl.java:301)
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.installConfigs(FeaturesServiceImpl.java:1185)
at
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:961)
at
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
at
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Suppressed:
shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find
artifact org.ops4j.pax.web:pax-web-features:xml:config-jetty:8.0.6 in
defaultlocal (file:/opt/apache-karaf-STABILIT-4.4.1/repository/)
at
shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
at
shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:368)
at
shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75)
at
shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:642)
at
shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:262)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:489)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:390)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192)
at
shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
... 19 more
Suppressed:
shaded.org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find
artifact org.ops4j.pax.web:pax-web-features:xml:config-jetty:8.0.6 in
local.repository (file:/opt/apache-karaf-STABILIT-4.4.1/repository/)
at
shaded.org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed(ArtifactTransportListener.java:48)
at
shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:368)
at
shaded.org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:75)
at
shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:642)
at
shaded.org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:262)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:489)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:390)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192)
at
shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
... 19 more
Caused by: shaded.org.eclipse.aether.resolution.ArtifactResolutionException:
Error resolving artifact
org.ops4j.pax.web:pax-web-features:xml:config-jetty:8.0.6
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:413)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:215)
at
shaded.org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:192)
at
shaded.org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:247)
at
org.ops4j.pax.url.mvn.internal.AetherBasedResolver.resolve(AetherBasedResolver.java:767)
I guess that there is still some other feature which requires jetty. Looking at
the standard features I believe it is the war feature. War feature is specified
in my feature.xml file as follows: <feature prerequisite="true">war</feature>.
Is there a way how to deploy WAB file and use tomcat as the container?
Best Regards
Martin Zukal
P.S.: I am going to send another email regarding the startup and boot features.
From: Grzegorz Grzybek <[email protected] <mailto:[email protected]> >
Sent: Thursday, November 3, 2022 11:04 AM
To: [email protected] <mailto:[email protected]> ; Martin Zukal
<[email protected] <mailto:[email protected]> >
Subject: Re: webconsole and pax-web-http-tomcat
Hi
about "pax-web-http-jetty", just get rid of
"<startupFeature>http</startupFeature>" because it's quite legacy/convenient
feature defined like this:
<feature name="http" description="Transition feature for backward
compatibility" version="8.0.6">
<feature>pax-web-http</feature>
</feature>
and "pax-web-http" (notice that the feature name doesn't specify the runtime to
choose: jetty, tomcat or undertow) is:
<feature name="pax-web-http" description="Pax Web OSGi HTTP Service"
version="8.0.6">
<feature>pax-web-http-jetty</feature>
<bundle
start-level="30">mvn:org.apache.karaf.http/org.apache.karaf.http.core/4.4.1</bundle>
<capability>http-service;provider:=pax-http</capability>
<conditional>
<condition>webconsole</condition>
<bundle
start-level="30">mvn:org.apache.karaf.webconsole/org.apache.karaf.webconsole.http/4.4.1</bundle>
</conditional>
</feature>
So you just need "pax-web-http-tomcat" (or "pax-web-http-jetty" or
"pax-web-http-undertow") specified explicitly.
Webconsole is listed in the bootFeatures (see above). […]
Actually, it's specified in <startupFeatures> :) that's big difference - you're
effectively doing (karaf-maven-plugin is doing) the resolution at build time,
so you simply get a big list of bundles inside etc/startup.properties. This
makes uninstalling the features a bit harder.
In other words - "<startupFeatures>" vs. "<bootFeatures>" is like bundle vs
feature. With "startup features" you're "flattening" the features into a list
of bundles. It may speed things up, but generally I'm not recommending it.
And finally, to see what's the problem, you can increase logging level of
"org.ops4j.pax.web.extender.war" (to DEBUG or even TRACE) to get a lot of
information about ServletContainerInitializers and annotated classes being
discovered.
I still hope that removing pax-web-http-jetty (by not including "http" feature)
will solve your problem.
regards
Grzegorz Grzybek
czw., 3 lis 2022 o 10:36 Martin Zukal via user <[email protected]
<mailto:[email protected]> > napisał(a):
Hello and thank you for a quick response!
Sorry, I forgot to include the versions. I am running Apache Karaf 4.4.1 which
comes with Pax Web 8.0.6.
I looked at the samples and they already helped me a lot but I will look at
them once again, maybe I missed something. Basically, I followed:
https://github.com/ops4j/org.ops4j.pax.web/blob/web-8.0.11/samples/samples-jsf/war-primefaces-wired/pom.xml
You actually don't uninstall features using karaf-maven-plugin - you declare
features you want, and karaf-maven-plugin will put the features into boot
features (etc/org.apache.karaf.features.cfg - when in runtime scope) or into
startup bundles (etc/startup.properties - when in compile scope). So definitely
you have to fix your <configuration> for karaf-maven-plugin.
I have the following dependencies in my pom.xml (used to build custom Karaf
distribution)
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>framework</artifactId>
<version>${karaf.version}</version>
<type>kar</type>
</dependency>
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>framework</artifactId>
<version>${karaf.version}</version>
<classifier>features</classifier>
<type>xml</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>standard</artifactId>
<version>${karaf.version}</version>
<classifier>features</classifier>
<type>xml</type>
<scope>runtime</scope>
</dependency>
And I listed the following features in startupFeatures:
<startupFeatures>
<startupFeature>framework-logback</startupFeature>
<startupFeature>instance</startupFeature>
<startupFeature>package</startupFeature>
<startupFeature>log</startupFeature>
<startupFeature>ssh</startupFeature>
<startupFeature>system</startupFeature>
<startupFeature>feature</startupFeature>
<startupFeature>shell</startupFeature>
<startupFeature>management</startupFeature>
<startupFeature>service</startupFeature>
<startupFeature>jaas</startupFeature>
<startupFeature>deployer</startupFeature>
<startupFeature>diagnostic</startupFeature>
<startupFeature>wrap</startupFeature>
<startupFeature>bundle</startupFeature>
<startupFeature>config</startupFeature>
<startupFeature>http</startupFeature>
<startupFeature>webconsole</startupFeature>
<startupFeature>pax-web-http-tomcat</startupFeature>
</startupFeatures>
This results in the above declared features listed in bootFeatures in
etc/org.apache.karaf.features.cfg.
When I start Karaf with this set up without my application the webconsole works
fine and I can see the following on the features page:
pax-web-http-jetty 8.0.6 org.ops4j.pax.web-8.0.6
Installed
pax-web-http-tomcat 8.0.6 org.ops4j.pax.web-8.0.6 Installed
Therefore I asked whether it i possible to uninstall pax-web-http-jetty.
2nd - how do you install the webconsole and/or your JSF bundle? Are then
installed as WAR (WAB) files? May I see them? I don't claim that the problem is
only at your side - maybe Pax Web didn't anticpate some setup and I'd be happy
to help solving this problem.
Webconsole is listed in the bootFeatures (see above). My application consists
of a lot of bundles but the one with the UI is a WAB (war packaging with
manifest which includes: Web-ContextPath: /main). Primefaces and JSF are wired
using the Require-Bundle header in manifest:
<Require-Bundle>
javax.faces-api,
org.primefaces
</Require-Bundle>
All the bundles and their dependencies (JSF, primefaces etc.) are listed in a
feature.xml file which I place in the deploy directory in Karaf. The
application loads and works fine. I am just having problem with the webconsole.
I unfortunately cannot share the code of the bundles. But I am happy to provide
more information if necessary.
Let me know if you need more information.
Best regards
Martin Zukal
From: Grzegorz Grzybek <[email protected] <mailto:[email protected]> >
Sent: Thursday, November 3, 2022 9:56 AM
To: [email protected] <mailto:[email protected]> ; Martin Zukal
<[email protected] <mailto:[email protected]> >
Subject: Re: webconsole and pax-web-http-tomcat
Hello
First - which Karaf version are you using?
Assuming it's Karaf 4.4.x with Pax Web 8.0.x I can try helping.
Pax Web 8 is highly refactored major version of the project where we've tried
to make sure that things like JSF (which rely heavily on
ServletContainerInitializers) work smoothly.
There are dedicated tests both for webconsole and for JSF (MyFaces, Primefaces)
and even for techs like Vaadin.
Check the JSF samples at
https://github.com/ops4j/org.ops4j.pax.web/tree/web-8.0.11/samples/samples-jsf
Is it possible that the behavior is caused by conflict between
pax-web-http-jetty and pax-web-http-tomcat? Is there a way how to uninstall
pax-web-http-jetty using karaf-maven-plugin?
You actually don't uninstall features using karaf-maven-plugin - you declare
features you want, and karaf-maven-plugin will put the features into boot
features (etc/org.apache.karaf.features.cfg - when in runtime scope) or into
startup bundles (etc/startup.properties - when in compile scope). So definitely
you have to fix your <configuration> for karaf-maven-plugin.
2nd - how do you install the webconsole and/or your JSF bundle? Are then
installed as WAR (WAB) files? May I see them? I don't claim that the problem is
only at your side - maybe Pax Web didn't anticpate some setup and I'd be happy
to help solving this problem.
kind regards
Grzegorz Grzybek
czw., 3 lis 2022 o 09:46 Martin Zukal via user <[email protected]
<mailto:[email protected]> > napisał(a):
Hello everyone,
I am experiencing strange behavior with webconsole of Apache Karaf. I have an
application deployed using a custom feature file in Apache Karaf. The
application is based on Spring and is using Primefaces (and Mojarra JSF
implementation version 2.2.15). When I run it with standard war feature (which
by default installs pax-web-http-jetty) I am getting the following error
messages in the log file:
Unable to obtain InjectionProvider from init time FacesContext. Does this
container implement the Mojarra Injection SPI?
Unable to inject com.sun.faces.application.ApplicationFactoryImpl@5005965f
<mailto:com.sun.faces.application.ApplicationFactoryImpl@5005965f> because no
InjectionProvider can be found. Does this container implement the Mojarra
Injection SPI?
However, the webconsole works perfectly in this case.
When I install the pax-web-http-tomcat feature the above mentioned error
messages are gone but the webconsole is not working properly (the resources
from res and lib are not loaded so I see allmost an empty page - see
attachment).
I can see the following errors in the log file:
[2022-11-03 09:29:26.358] INFO tp-nio2-0.0.0.0-8080-exec-10
o.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/] Marking
servlet [default-56ee4de3-f9f8-44c8-96ea-4580393e6469] as unavailable
[2022-11-03 09:29:26.360] ERROR tp-nio2-0.0.0.0-8080-exec-10
o.a.c.c.C.[.[.[/].[default-56ee4de3-f9f8-44c8-96ea-4580393e6469] Allocate
exception for servlet [default-56ee4de3-f9f8-44c8-96ea-4580393e6469]
javax.servlet.UnavailableException: No static resources were found
at
org.apache.catalina.servlets.DefaultServlet.init(DefaultServlet.java:384)
at
org.ops4j.pax.web.service.tomcat.internal.web.TomcatResourceServlet.init(TomcatResourceServlet.java:87)
at javax.servlet.GenericServlet.init(GenericServlet.java:180)
at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1164)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:804)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:128)
at
org.ops4j.pax.web.service.tomcat.internal.PaxWebStandardWrapperValve.invoke(PaxWebStandardWrapperValve.java:50)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at
org.ops4j.pax.web.service.tomcat.internal.PaxWebStandardContextValve.invoke(PaxWebStandardContextValve.java:98)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net <http://org.apache.tomcat.util.net>
.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1701)
at org.apache.tomcat.util.net <http://org.apache.tomcat.util.net>
.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.net <http://org.apache.tomcat.util.net>
.AbstractEndpoint.processSocket(AbstractEndpoint.java:1190)
at org.apache.tomcat.util.net <http://org.apache.tomcat.util.net>
.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:633)
at org.apache.tomcat.util.net <http://org.apache.tomcat.util.net>
.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:611)
at java.base/sun.nio.ch.Invoker.invokeUnchecked(Unknown Source)
at java.base/sun.nio.ch.Invoker$2.run(Unknown Source)
at java.base/sun.nio.ch <http://sun.nio.ch>
.AsynchronousChannelGroupImpl$1.run(Unknown Source)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
Does it mean that the webconsole works only with pax-web-http-jetty?
I can also see that both pax-web-http-jetty and pax-web-http-tomcat features
are installed. Is it possible that the behavior is caused by conflict between
pax-web-http-jetty and pax-web-http-tomcat? Is there a way how to uninstall
pax-web-http-jetty using karaf-maven-plugin?
Any help with this issue will be appreciated.
Best regards
Martin Zukal