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]> 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]>
> 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]>
>> *Sent:* Thursday, November 3, 2022 12:33 PM
>> *To:* [email protected]; Martin Zukal <[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]>
>> 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]>
>> *Sent:* Thursday, November 3, 2022 11:04 AM
>> *To:* [email protected]; Martin Zukal <[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]>
>> 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]>
>> *Sent:* Thursday, November 3, 2022 9:56 AM
>> *To:* [email protected]; Martin Zukal <[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]>
>> 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 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
>> .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(Unknown Source)
>> at java.base/sun.nio.ch.Invoker$2.run(Unknown Source)
>> at java.base/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
>>
>>