Details
Description
Basically we have one EAR file, the structure is like below:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4">
<description>BNNP ear</description>
<display-name>bnnp-ear</display-name>
<module>
<web>
<web-uri>url-filter-1.0-SNAPSHOT.war</web-uri>
<context-root>/BNNP-QA</context-root>
</web>
</module>
<module>
<web>
<web-uri>bnnp-ui-1.0-SNAPSHOT.war</web-uri>
<context-root>/BNNP-QA/DESKTOP</context-root>
</web>
</module>
<module>
<web>
<web-uri>bnnp-mobile-ui-1.0-SNAPSHOT.war</web-uri>
<context-root>/BNNP-QA/MOBILE</context-root>
</web>
</module>
</application>
The url-filter application will decide where to redirect the incoming http request based on the user-agent http header. If it is from a handheld device, it will redirect to /BNNP-QA/MOBILE, otherwise to /BNNP-QA/DESKTOP. Of these, only the desktop application is using the ICEFaces framework. Now the problem is that for some reason, when the iced2d.js javascript posts the request to the ICEFaces block servlet when the page is loaded, it removes the "/" between BNNP-QA and DESKTOP, so that the context root becomes /BNNP-QADESKTOP which is obviously wrong and subsequently causes a "Network Connection Interrupted" every 3 minutes.
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4">
<description>BNNP ear</description>
<display-name>bnnp-ear</display-name>
<module>
<web>
<web-uri>url-filter-1.0-SNAPSHOT.war</web-uri>
<context-root>/BNNP-QA</context-root>
</web>
</module>
<module>
<web>
<web-uri>bnnp-ui-1.0-SNAPSHOT.war</web-uri>
<context-root>/BNNP-QA/DESKTOP</context-root>
</web>
</module>
<module>
<web>
<web-uri>bnnp-mobile-ui-1.0-SNAPSHOT.war</web-uri>
<context-root>/BNNP-QA/MOBILE</context-root>
</web>
</module>
</application>
The url-filter application will decide where to redirect the incoming http request based on the user-agent http header. If it is from a handheld device, it will redirect to /BNNP-QA/MOBILE, otherwise to /BNNP-QA/DESKTOP. Of these, only the desktop application is using the ICEFaces framework. Now the problem is that for some reason, when the iced2d.js javascript posts the request to the ICEFaces block servlet when the page is loaded, it removes the "/" between BNNP-QA and DESKTOP, so that the context root becomes /BNNP-QADESKTOP which is obviously wrong and subsequently causes a "Network Connection Interrupted" every 3 minutes.
Activity
Tyler Johnson
created issue -
Tyler Johnson
made changes -
Field | Original Value | New Value |
---|---|---|
Workaround Description |
The workaround is to reduce 3 apps into two: merge the first two, like below: <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4"> <description>BNNP ear</description> <display-name>bnnp-ear</display-name> <!?Move the filter into the second app, I guess ICEFaces does not support sub context redirect <module> <web> <web-uri>url-filter-1.0-SNAPSHOT.war</web-uri> <context-root>/BNNP-QA</context-root> </web> </module> ? <module> <web> <web-uri>bnnp-ui-1.0-SNAPSHOT.war</web-uri> <context-root>/BNNP-QA</context-root> </web> </module> <module> <web> <web-uri>bnnp-mobile-ui-1.0-SNAPSHOT.war</web-uri> <context-root>/BNNP-QA/MOBILE</context-root> </web> </module> </application> |
|
Workaround Exists | [Yes] |
Tyler Johnson
made changes -
Salesforce Case | [50070000007BSDQ] |
Tyler Johnson
made changes -
Salesforce Case | [50070000007BSDQ] | [50070000007BSDQ, 500700000081rXp] |
Mircea Toma
made changes -
Assignee | Mircea Toma [ mircea.toma ] |
Mircea Toma
made changes -
Fix Version/s | 1.8 [ 10161 ] |
Ken Fyten
made changes -
Assignee Priority | P3 | |
Affects Version/s | 1.8 [ 10161 ] | |
Affects Version/s | 1.7.2 [ 10130 ] |
Ken Fyten
made changes -
Assignee Priority | P3 | P2 |
Assignee | Mircea Toma [ mircea.toma ] | Deryk Sinotte [ deryk.sinotte ] |
Deryk Sinotte
made changes -
Status | Open [ 1 ] | In Progress [ 3 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #18674 | Thu Mar 26 16:47:00 MDT 2009 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/DOMResponseWriter.java
|
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #18675 | Thu Mar 26 17:24:54 MDT 2009 | deryk.sinotte | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/core/src/com/icesoft/faces/context/DOMResponseWriter.java
|
Deryk Sinotte
made changes -
Status | In Progress [ 3 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Assignee Priority | P2 |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #20925 | Wed Mar 10 15:51:20 MST 2010 | mark.collette | Support 8080 : Backport |
Files Changed | ||||
MODIFY
/icefaces/scratchpads/patches/SF8080/icefaces/core/src/com/icesoft/faces/context/DOMResponseWriter.java
|
Another customer is facing this same issue.
If they deploy their ICEFaces application with a sub context root, the second slash is removed and they receive "Network Connection Interrupted" warnings in the browser as well as server push failing to work. For example, if their context root is myApp/SubContext, they see the following in firebug:
POST
http://locahost:8080/myAppSubContext/block/receive-updated-views 404 Not Found 28ms
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /myAppSubContext/block/receive-updated-views was not found on this server.<P> <HR> <ADDRESS>Oracle-Application-Server-10g/10.1.3.4.0 Oracle-HTTP-Server Server at .........</ADDRESS> </BODY></HTML>