Hi I´m developoing a feed agregator using ROME Fetcher and I´m having issues only after deploying the GAE environment. The application works perfectly in my localhost
The issue happens only with youtube feeds like this one http://gdata.youtube.com/feeds/base/users/LaLigahighlightsTV/uploads?alt=rss Other feeds work fine (including parameters it´s not the reason) It´s public feed, you can open it in any browser. As I mentioned before I have no issues in my local environment (localhost), it works fine, ROME process all the feeds. However in the cloud things get weird, I´m getting this error. 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: getSortedEntries ERROR: Loading URL:http://gdata.youtube.com/feeds/api/ users/LaLigahighlightsTV/uploads 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: getSortedEntries ERROR: Loading URL:Authentication required for that resource. HTTP Response code was:403 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: com.sun.syndication.fetcher.FetcherException: Authentication required for that resource. HTTP Response co 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: at com.sun.syndication.fetcher.impl.AbstractFeedFetcher.throwAuthenticationError(AbstractFeedFetcher.jav I 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: at com.sun.syndication.fetcher.impl.AbstractFeedFetcher.handleErrorCodes(AbstractFeedFetcher.java: 170) I 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: at com.sun.syndn.fetcher.impl.HttpURLFeedFetcher.retrieveAndCacheFeed(HttpURLFeedFetcher.java: 161) I 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: at com.sun.syndication.fetcher.impl.HttpURLFeedFetcher.retrieveFeed(HttpURLFeedFetcher.java: 119) I 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: at com.news.server.services.AggregationService.getSortedEntries(AggregationService.java: 87) I 12-31 08:01AM 19.289 [feedsplanet/1.347302644880226097].<stdout>: at com.news.server.services.AggregationService.getFeed(AggregationService.java: 55) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.news.server.servlets.GetFeed.buildFeed(GetFeed.java:43) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.news.server.servlets.GetFeed.aggregateFeeds(GetFeed.java:58) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.news.server.servlets.GetFeed.doGet(GetFeed.java:178) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) I 12-31 08:01A19.290 [feedsplanet/1.347302644880226097].<stdout>: at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1166) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: 97) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: 35) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 4 I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 388) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 182) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 765) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: 238) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 152) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.Server.handle(Server.java:326) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 542) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:923) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: 76) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapte I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 261) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:8495) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:8493) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: 24) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:435) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.tracing.TraceContext$TraceContextRunnable $1.run(TraceContext.java:448) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.tracing.TraceContext.runInContext(TraceContext.java:688) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.tracing.TraceContext $AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContex I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.tracing.TraceContext $AbstractTraceContextCallback.runInInheritedContext(TraceContext.java: I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at com.google.tracing.TraceContext $TraceContextRunnable.run(TraceContext.java:446) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1110) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) I 12-31 08:01AM 19.290 [feedsplanet/1.347302644880226097].<stdout>: at java.lang.Thread.run(Thread.java:636) Not sure why is complaining about authentication when the feed is publicly accesible! I thought that ROME might be doing a POST internally in which case it would make sense. But that´s not the case is just doing URLConnection connection = feedUrl.openConnection(); if (!(connection instanceof HttpURLConnection)) { throw new IllegalArgumentException(feedUrl.toExternalForm() + " is not a valid HTTP Url"); } HttpURLConnection httpConnection = (HttpURLConnection)connection; and then setting some headers (user agent,etc) but nothing related with the http method. So I´m totally puzzled .... why youtube is replying 403 to GAE and not to my localhost web application? Anyone can think what´s going on? Thanks Mauricio -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
