[
https://issues.apache.org/jira/browse/KARAF-7774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17776767#comment-17776767
]
Grzegorz Grzybek commented on KARAF-7774:
-----------------------------------------
Mind that in [Whiteboard
Specification|https://docs.osgi.org/specification/osgi.cmpn/8.0.0/service.http.whiteboard.html#d0e88397]
we have:
{quote}
140.2.6 Behavior of the Servlet Context
getServletContextName() - The name of the {{ServletContextHelper}} provided via
the {{osgi.http.whiteboard.context.name}} service property.
{quote}
So Pax Web [implements it
with|https://github.com/ops4j/org.ops4j.pax.web/blob/web-8.0.22/pax-web-spi/src/main/java/org/ops4j/pax/web/service/spi/servlet/OsgiServletContext.java#L801]:
{code:java}
@Override
public String getServletContextName() {
return osgiContextModel.getName();
}
{code}
But you are right - it should be {{<display-name>}} when in WAB. And now I [set
it to
contextpath|https://github.com/ops4j/org.ops4j.pax.web/blob/web-8.0.22/pax-web-spi/src/main/java/org/ops4j/pax/web/service/spi/model/ServerModel.java#L1341-L1343]:
{code:java}
// do NOT use "default" as the name of the context, so it's NOT matched by
//
osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name=default)
ocm.setName(contextPath);
{code}
I should simply (one of these - I'll check tomorrow):
{noformat}
---
a/pax-web-extender-war/src/main/java/org/ops4j/pax/web/extender/war/internal/model/BundleWebApplication.java
+++
b/pax-web-extender-war/src/main/java/org/ops4j/pax/web/extender/war/internal/model/BundleWebApplication.java
@@ -1296,6 +1296,9 @@ public class BundleWebApplication {
// we simply take the allocated (and associated with our bundle
and our bundle's Web-ContextPath) context
final OsgiContextModel ocm = allocatedOsgiContextModel;
+ ocm.setName(mainWebXml.getName());
+ ocm.setName(mainWebXml.getDisplayName());
+
ocm.setWab(true);
ocm.setServiceId(0);
ocm.setServiceRank(Integer.MAX_VALUE);
{noformat}
> ServletContext.getServletContextName() returns wrong value
> ----------------------------------------------------------
>
> Key: KARAF-7774
> URL: https://issues.apache.org/jira/browse/KARAF-7774
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.4.3
> Reporter: Amichai Rothman
> Priority: Major
>
> The ServletContext.getServletContextName() interface javadoc says:
> {noformat}
> Returns the name of this web application corresponding to this ServletContext
> as specified in the deployment descriptor for this web application by the
> display-name element.
> {noformat}
> In my app, I drop into karaf's deploy folder a WAB bundle with a web.xml
> containing only display-name (human-readable string) and listener-class with
> a ServletContextListener implementation class name. The listener's
> contextInitialized method is invoked, but
> event.getServletContext().getServletContextName() returns what appears to be
> the context path (e.g. "/") instead of the display name.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)