Hi,
I am attempting to deploy a web page where the page uses an
AjaxFlexibleFileUpload component. This works in the development setup. However,
once the page with the AjaxFlexibleFileUpload loads on the server the two XHRs
that run come back with 200 responses but they are completely empty of content.
This results in no file dialog appearing when a user attempts to select an
image for upload.
The errors that show in the browser JS console are "JSONRpcClientException:
error parsing result”, ReferenceError: Can't find variable: jsonrpc_0 and
ReferenceError: Can't find variable: jsonrpc_1.
My local development setup is a (reverse) proxy through NGINX. The deployment
is to a AWS Elastic Beanstalk, in Tomcat 7, Java 7 which uses Apache as a
reverse proxy.
I’ll admit I know very little about WebObjects and Ajax. It is not clear to me
that I have all the correct steps for using Ajax components. One thing I did
was to override pageWithName in the Application class.
@Override
public WOComponent pageWithName(String name, WOContext context)
{
log.error("application pageWithName " + name + " " + context);
WOComponent page = super.pageWithName(name, context);
log.error("got page " + page);
return page;
}
I noticed that when run locally there is nothing in the logs for the XHR
requests because they load fine. However, when deployed to a Beanstalk instance
I get the following.
ERROR 20:32:35 (com.adnero.finance.web.Application:?) -application
pageWithName null <er.extensions.appserver.ERXWOServletContext contextID=0
requestSenderID=0.17.1.1.1.0.1 elementID=null sessionID=GpMB9KKAiBu1Rdv4MqVNu0
request=<er.extensions.appserver.ERXRequest
(<er.extensions.appserver.ERXRequest httpVersion=HTTP/1.0
headers={accept=[*/*], accept-encoding=[gzip, deflate],
accept-language=[en-us], connection=[Keep-Alive], content-length=[50],
content-type=[text/plain],
cookie=[JSESSIONID=727EEEFD467421EFD51BB2A65A0707BF], dnt=[1],
host=[replaced.host.url], origin=[http://replaced.host.url],
referer=[http://replaced.host.url/WebObjects/AdneroWeb.woa/wo/0.0.0.17.1],
remote_addr=[104.200.104.189], user-agent=[Mozilla/5.0 (Macintosh; Intel Mac OS
X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6
Safari/600.6.3], x-forwarded-host=[replaced.host.url],
x-forwarded-server=[ip-172-31-26-217.ec2.internal],
x-requested-with=[XMLHttpRequest], x-webobjects-adaptor-version=[5.2],
x-webobjects-servlet-server-name=[replaced.host.url],
x-webobjects-servlet-server-port=[80]} content-length=50 cookies=null
userInfo={ServletConfig=org.apache.catalina.core.StandardWrapperFacade@7f127e0,
ServletContext=org.apache.catalina.core.ApplicationContextFacade@6970e732,
HttpServletRequest=org.apache.catalina.connector.RequestFacade@2b18fb03,
HttpServletResponse=org.apache.catalina.connector.ResponseFacade@7507980f}
storePageInBacktrackCache=true >) method=POST
uri=/WebObjects/AdneroWeb.woa/ajax/0.0.17.1.1.1.0.1
defaultFormValueEncoding=UTF-8 formValueEncodingDetectionEnabled=NO
formValueEncoding=UTF-8 formValues={WOIsmapCoords =
("{"id":1,"method":"system.listMethods","params":[]}"); } > response=null
pageElement=null pageComponent=null currentComponent=null
url=/WebObjects/AdneroWeb.woa urlApplicationNumber=-1 distributionEnabled=false
pageChanged=false pageReplaced=false>
ERROR 20:32:35 (com.adnero.finance.web.Application:?) -got page
<com.adnero.finance.web.pages.Main name: com.adnero.finance.web.pages.Main
subcomponents: null >
I am guessing that this differences means that the ajax requests are not being
handled by the Ajax Handler but are getting caught by the default handler or
that they are falling back to pageWithName, (which then falls back to
Main.class) when they should not be?
My apache config for the proxy looks like this:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/WebObjects/Frameworks/ [NC]
RewriteRule ^/WebObjects/Frameworks/(.+)$ /WebServerResources/Frameworks/$1 [PT]
RewriteCond %{REQUEST_URI} ^/WebObjects/Contents/ [NC]
RewriteRule ^/WebObjects/Contents/(.+)$ /WebServerResources/Contents/$1 [PT]
RewriteCond %{REQUEST_URI}
^/WebObjects/AdneroWeb.woa/Contents/WebServerResources/ [NC]
RewriteRule ^/WebObjects/AdneroWeb.woa/Contents/WebServerResources/(.+)$
/WebServerResources/Contents/WebServerResources/$1 [PT]
RewriteCond %{REQUEST_URI} ^/ishealthy$ [NC]
RewriteRule ^/ishealthy$ /WebObjects/AdneroWeb.woa/ra/Healthcheck/ishealthy [PT]
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ retry=0
ProxyPassReverse / http://localhost:8080/
ProxyPreserveHost on
LogFormat "%h (%{X-Forwarded-For}i) %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-Agent}i\""
ErrorLog /var/log/httpd/elasticbeanstalk-error_log
TransferLog /var/log/httpd/elasticbeanstalk-access_log
I am completely lost as to what to try next. Any help in identifying why the
Ajax requests are not being handled properly would be appreciated.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]