Hi David,
I can't think of any reason why RIFE should be the cause of this
behavior since it totally relies on the underlying servlet
functionality to actually communicate over HTTP. I suggested that you
look at the other components in your architecture, like the servlet
container, the Squid proxy itself, ...
Hope you can figure it out.
Best regards,
Geert
On 22 Sep 2006, at 12:02, David Herbert wrote:
Hello,
I have come across a strange bug which one of our customers who
runs a local Squid proxy cache (which I gather for historical
reasons still speaks HTTP/1.0) reported. Basically our RIFE
application output a blank page (after hanging for a couple of
minutes) for a particular request of the form:
http://data.itoworld.com/mysite/mypage?status=1
where "status" is declared as an input with flowlinks and datalinks
in the usual way. Perhaps the input is unwisely named (though I can
find no documentation whatever on reserved words which shouldn't be
used in query strings in HTTP). If I changed the input name from
"status" to something else e.g. "wst" everything works.
I have created a small RIFE web app with only two pages in it at:
http://data.itoworld.com/status_test/home
which can reliably reproduce the bug (files below). Old browser
clients such as Netscape 4.79 also have a problem and put up a
dialog box:
"unknown status reply from server: 1"
or some such. The number at the end is the same as the input's
value. It looks like "status" is being treated as a reserved word
at some point, though in Netscape 4.79 the request works once the
dialog box is dismissed.
Is this a RIFE problem, or just something about HTTP/1.0 that I'm
missing? It would be good to be pointed at some relevant
documentation if it's the latter, as this could come back to bite
us again.
Thanks for any help,
David Herbert
Itoworld
Cambridge UK.
----------------------------
StatusTest.java---------------------------------------
/*
* Test for use of input "status" and possible confusion with HTTP
status in HTTP/1.0
*
* David Herbert
* Itoworld Ltd 22/09/06
*/
import com.uwyn.rife.engine.Element;
import com.uwyn.rife.template.Template;
public class StatusTest extends Element {
public void processElement() {
Template template = getHtmlTemplate( "status_test" );
setExitQuery( template, "statuslink", new String[]
{ "status", "1" } );
print(template);
}
}
-----------------------------
LinkPage.java-----------------------------------------
/*
* Test for use of input "status" and possible confusion with HTTP
status in HTTP/1.0
*
* David Herbert
* Itoworld Ltd 22/09/06
*/
import com.uwyn.rife.engine.Element;
import com.uwyn.rife.template.Template;
public class LinkPage extends Element {
public void processElement() {
Template template = getHtmlTemplate( "link_page" );
int statusVar = getInputInt( "status" );
template.setValue( "status_value", statusVar );
print( template );
}
}
------------------------------------
participants.xml------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!--
-->
<!DOCTYPE rep SYSTEM "/dtd/rep.dtd">
<rep>
<participant param="status_test.xml">ParticipantSite</participant>
</rep>
----------------------------------
status_test.xml------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!--
-->
<!DOCTYPE site SYSTEM "/dtd/site.dtd">
<site>
<element id="StatusTest" implementation="StatusTest" url="home">
<exit name="statuslink"/>
<output name="status"/>
<datalink srcoutput="status" destid="LinkPage"
destinput="status"/>
<flowlink srcexit="statuslink" destid="LinkPage"/>
</element>
<element id="LinkPage" implementation="LinkPage" url="linkpage">
<input name="status"/>
</element>
</site>
-----------------------------------------
status_test.html------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://
www.w3.org/TR/html4/strict.dtd">
<!--
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Test for using an input called status</title>
</head>
<body>
<a href="[!V 'EXIT:QUERY:statuslink'/]">Click here to test</a>
</body>
</html>
---------------------------------------
link_page.html----------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://
www.w3.org/TR/html4/strict.dtd">
<!--
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Test for using an input called status link page</title>
</head>
<body>
Status value is <!--V 'status_value'/-->
</body>
</html>
_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users
--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com
_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users