이것은 내 첫 번째 google 응용 프로그램 엔진 서블릿으로 웹 사이트를 크롤링하여 응용 프로그램 엔진에서 backgroundThread를 사용하여 스레드를 만들었 으면합니다. 내 문제는 localhost에서이 응용 프로그램을 실행할 때입니다. : 8888 그것은 올바르게 작동하고 그것이해야 할 일을합니다.Google 응용 프로그램을 배포하는 동안
Youm7 youm7Crawler = new Youm7(); log.info("start 1"); Thread youm7Thread = ThreadManager.createBackgroundThread(youm7Crawler); log.info("start 2"); log.info("start 3"); youm7Thread.start();
하지만 난 오류 500 서버를 가지고 서버로 배포 시도하고 난 로그에이 중요한 오류가 발생하면
`Uncaught exception from servlet
java.lang.IllegalStateException: This feature is only available to backend instances.
at com.google.appengine.api.system.SystemServiceImpl.translateException(SystemServiceImpl.java:40)
at com.google.appengine.api.system.SystemServiceImpl.startBackgroundRequest(SystemServiceImpl.java:28)
at com.google.apphosting.runtime.ApiProxyImpl$BackgroundThreadFactory.newThread(ApiProxyImpl.java:1125)
at com.google.appengine.api.ThreadManager.createBackgroundThread(ThreadManager.java:88)
at newscrawler.crawlerServlet.doGet(crawlerServlet.java:30)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:438)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:480)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:487)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:774)
at com.google.tracing.TraceContext$DoInTraceContext.runInContext(TraceContext.java:751)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:342)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:334)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:484)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
at java.lang.Thread.run(Thread.java:722)
2013-04-29 06:27:25.205 /myreminderapp 200 66ms 0kb Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31`
그래서 난이 같은 서버에서 작동하기 위해 무엇을해야하는지 내 로컬
가능한 중복 http://stackoverflow.com/questions/16252298/error-running-servlet-on-google-app- 엔진 배포 후) –
당신은 이틀 전에 같은 질문을하고 답을 얻었고 그것을 받아 들였습니다. 이 질문은 어떻게 다른가요? –
2 일간 진행 다른 유형의 스레드와 다른 디자인을 사용하고 있습니다. 피터의 조언을 받고 난 후에 모두 변경되었으며 아직 작동하지 않아 다른 질문을 게시했습니다. – dab7