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.

Reply via email to