Expand my Community achievements bar.

Viewing Workflow Pages through Dispatcher Fails - No component node found at /bin/wcmcommand.servlet

Avatar

Level 3

AEM 6.1 SP1 is installed with a Dispatcher in front of the Author instance.  The instance is running on JDK 1.8... I saw some similar errors through some searching which indicated a possible connection to JDK version.

When a author clicks "Request Publish" a workitem is assigned to the administrator.  If the Administrator tries to click on the page to view the changes the page fails to load.  This behavior is only observed through the Dispatcher.  If accessing the Workitem through the Author directly the page loads as expected.

The error in the browser is as follows:

Cannot serve request to /bin/wcmcommand in com.day.cq.wcm.core.impl.commands.WCMCommandServlet

In the server logs it shows:

Access.log (Dispatcher):

69.46.96.183 - - [12/Apr/2016:16:24:39 -0400] "GET /bin/wcmcommand?cmd=open&path=%2Fcontent%2Fcountry-sites%2Fu%2Fen&_charset_=utf-8 HTTP/1.1" 301 348 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"

Dispatcher.log

[Tue Apr 12 16:35:33 2016] [D] [9847] Found farm authorfarm for server.com [Tue Apr 12 16:35:33 2016] [D] [9847] Connected to backend 0 (10.43.32.187:4502) [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: Referer [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: referer [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: user-agent [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: accept-encoding [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: accept-language [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: accept [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: host [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: cookie [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: Via [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: X-Forwarded-For [Tue Apr 12 16:35:33 2016] [D] [9847] Adding request header: Server-Agent [Tue Apr 12 16:35:33 2016] [D] [9847] response.status = 302 [Tue Apr 12 16:35:33 2016] [D] [9847] response.headers[Date] = "Tue, 12 Apr 2016 20:35:33 GMT" [Tue Apr 12 16:35:33 2016] [D] [9847] response.headers[X-Content-Type-Options] = "nosniff" [Tue Apr 12 16:35:33 2016] [D] [9847] response.headers[Content-Type] = "text/html" [Tue Apr 12 16:35:33 2016] [D] [9847] response.headers[Location] = "http://server.com/bin/wcmcommand?cmd=open&path=%2Fcontent%2Fcountry-sites%2Fu%2Fen&_charset_=utf-8" [Tue Apr 12 16:35:33 2016] [D] [9847] response.headers[Content-Length] = "0" [Tue Apr 12 16:35:33 2016] [D] [9847] response.headers[X-Powered-By] = "Jetty(9.2.9.v20150224)" [Tue Apr 12 16:35:33 2016] [I] [9847] "GET /etc/workflow/instances/server0/2016-04-05_6/request_for_activation_842/workItems/node1_etc_workflow_instances_server0_2016-04-05_6_request_for_activation_842.loadPayloadUrl" 302 - 11ms [Tue Apr 12 16:35:34 2016] [D] [9847] Found farm authorfarm for server.com [Tue Apr 12 16:35:34 2016] [D] [9847] Connected to backend 0 (10.43.32.187:4502) [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: user-agent [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: accept-encoding [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: accept-language [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: accept [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: host [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: cookie [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: Via [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: X-Forwarded-For [Tue Apr 12 16:35:34 2016] [D] [9847] Adding request header: Server-Agent [Tue Apr 12 16:35:34 2016] [D] [9847] response.status = 404 [Tue Apr 12 16:35:34 2016] [D] [9847] response.headers[Date] = "Tue, 12 Apr 2016 20:35:34 GMT" [Tue Apr 12 16:35:34 2016] [D] [9847] response.headers[X-Content-Type-Options] = "nosniff" [Tue Apr 12 16:35:34 2016] [D] [9847] response.headers[Content-Type] = "text/html; charset=UTF-8" [Tue Apr 12 16:35:34 2016] [D] [9847] response.headers[X-Powered-By] = "Jetty(9.2.9.v20150224)" [Tue Apr 12 16:35:34 2016] [I] [9847] "GET /bin/wcmcommand?cmd=open&path=%252Fcontent%252Fcountry-sites%252Fu%252Fen&_charset_=utf-8" 404 5336 9ms

error.log (Author AEM):

12.04.2016 15:37:38.218 *WARN* [10.43.32.248 [1460489858218] GET /bin/wcmcommand HTTP/1.1] com.day.cq.wcm.core.impl.components.ComponentCacheImpl No component node found at /bin/wcmcommand.servlet

Any help would be appreciated.

Thanks!

8 Replies

Avatar

Level 10

Check if you have allowed the filters for /bin/* in your dispatcher

Thanks for the reply.

The setup is a standard Author Dispatcher /filter with allow all then deny filters.  I believe /bin is permitted with this filter.  Additionally, the fact that the error mentioned is showing in the AEM log would suggest it is getting through the Dispatcher.

/filter { # allow everything /0001 { /type "allow"  /glob "*" } # block admin tools /0010 { /type "deny" /glob "* /admin/*" } /0011 { /type "deny" /glob "* /admin *" } /0012 { /type "deny" /glob "* /system/*" } /0013 { /type "deny" /glob "* /_jcr_system/*" } /0014 { /type "deny" /glob "* /jcr:system/*" } # block crx tools # /0015 { /type "deny" /glob "* /crx/*" } # /0016 { /type "deny" /glob "* /crx *" } # /0017 { /type "deny" /glob "* /bin/crxde*" } # allow some requests /0052 { /type "allow" /glob "GET /system/sling/logout.html*" } # allow logout }

Avatar

Level 3

Additional Background:

The offending environment:

  • RedHat
  • Dispatcher 4.1.12
  • Apache 2.2.15
  • JDK 1.8_31 

Attempted to reproduce on:

  • Windows
  • Dispatcher 4.1.12
  • Apache 2.2.25
  • JDK 1.8_71

After copying the exact dispatcher configuration to a Windows platform and pointing to the same AEM Author Instance (6.1 SP1 on Redhat) I was unable to reproduce.

Is the issue perhaps with the Dispatcher 4.1.12 on RedHat specifically?

I think, its the problem with UTF-8 charset with the URL. May be in RedHat, it is not encoding the URL with UTF-8 and hence it is not able to resolve the URL.

To quickly check, you can check the log in the windows system and see what is the URL that is printed for this

  1. [Tue Apr 12 16:35:34 2016] [I] [9847] "GET /bin/wcmcommand?cmd=open&path=%252Fcontent%252Fcountry-sites%252Fu%252Fen&_charset_=utf-8" 404 5336 9ms

On working Windows Dispatcher that line looks like this:

10.11.19.54 - - [12/Apr/2016:22:42:03 -0400] "GET /bin/wcmcommand?cmd=open&path=%2Fcontent%2Fcountry-sites%2Fu%2Fen&_charset_=utf-8 HTTP/1.1" 302 -

I can see the difference....  %2F vs %252F... but what is the cause / resolution?

Avatar

Level 3

More thoughts...

I'm thinking this is actually related to the old version of Apache (2.2.15) which is installed.

I'm basing this on a thread here:  http://stackoverflow.com/questions/4390436/need-to-allow-encoded-slashes-on-apache

Not sure if I need to just get Apache updated (I don't completely control environment) or if I can just add some flavor of the following directive...

AllowEncodedSlashes NoDecode

Again, input is welcome.  Thanks.

Avatar

Level 4

Hey Rob,

We are facing the same issue. Can you please let me know how was this issue solved? It will be greatly helpful for us if you could share the solution with which this issue was fixed.

Hoping for a positive reply.

Thanks