A couple of our customers have reported spurious errors
involving cookies. Here's an example of the sort of error stack
trace that they're seeing (names have been xxxxxx'ed for
privacy)
Message: The request
jetty://zzzzzzzz.xxxxxxx.com:8888/yyyyyyy/provider/+cookie@literal%3Acookie
in module urn:org:ten60:netkernel:tpt:http failed because no module could
be located to handle it. See Exception trace for details of resolution process.
Request:
jetty://zzzzzzzz.xxxxxxx.com:8888/yyyyyyy/provider/+cookie@literal%3Acookie
Trace:
Searching for
jetty://zzzzzzzz.xxxxxxx.com:8888/yyyyyyyy/provider/+cookie@literal%3Acookie
Starting Module urn:org:ten60:netkernel:tpt:http
Matched on Mapping jetty:.* skipping next 17 mappings
Matched on Mapping .* SUPER
Entering Parent Module urn:org:ten60:netkernel:fulcrum:frontend
Rewriting Request to ffcpl:/yyyyyyy/provider/+cookie@literal%3Acookie
Checked Unmatched Mapping (many) rewrite
Checked Unmatched Mapping (many) rewrite
Checked Unmatched Mapping ffcpl:/(etc|pub)/.* THIS
Checked Unmatched Mapping ffcpl:/entrypoints.xml THIS
Checked Unmatched Mapping (many) to import urn:org:ten60:netkernel:tpt:http
Checked Unmatched Mapping (many) to import
urn:org:ten60:netkernel:cache:standard
Checked Unmatched Mapping (many) to import
urn:org:ten60:netkernel:mod:ws:test
Checked Unmatched Mapping (many) to import
urn:org:ten60:netkernel:ext:layer1
Matched on Mapping (many) to import urn:com:xxxxxxx:mod:yyyyyyyyyy
Entering Import Module urn:com:xxxxxxx:mod:yyyyyyyyy
Checked Unmatched Mapping ffcpl:/(app/|entrypoints.xml).* THIS
Checked Unmatched Mapping (many) to import
urn:org:ten60:netkernel:ext:xml:core
Ignoring pre-checked Mapping (many) to import
urn:org:ten60:netkernel:ext:layer1
Checked Unmatched Mapping (many) to import urn:org:ten60:netkernel:ext:dpml
Checked Unmatched Mapping (many) to import urn:org:ten60:netkernel:ext:sys
Matched on Mapping .* SUPER
No Match Found for
jetty://zzzzzzzz.xxxxxxx.com:8888/yyyyyyy/provider/+cookie@literal%3Acookie
The problem is that some other app-server has set a permanent
cookie in your browser on the root path / for host
zzzzz.xxxxxxx.com. This is getting processed by the HTTPBridge and
added as an argument on the active URI. The active URI with cookie
is then failing resolution against the the internal module address
space.
The quick fix is simply to delete the cookie.
A better solution is to modify your HTTPBridgeConfig.xml in the
Fulcrum which is hosting HTTP transport. The HTTPBridge lets you
set arbitrary filters on the HTTP request - including specifying if
cookie processing should occur or not.
This highlights a possibly unwise choice we took - the default
bridge zone performs cookie processing! Which means you can get
cookie errors in your application's URI address space resolution if
your not anticipating +cookie@[...] arguments on the active URI
request on your module's public interface.
It's your choice how you want to expressly deal with cookies: at
the fulcrum or application level - we generally specify URL zones
at the fulcrum-level where we expect to use cookies and everywhere
else they're filtered off. [Though actually we screwed this up on
the backend fulcrum we put out with 2.0.0 - we've posted an update,
see system health check, which does what I said we do!]