-
Aug 18th, 2010, 12:45 AM
#1
Spring MVC with java.util.concurrent
@Controller
@RequestMapping("/FindYourGPhone")
public class Controller_1 {
private static BlockingQueue<TheLocation> link;// 一种阻塞队列
private static AtomicBoolean serverSocketIsOpen;
private static final ExecutorService exec = Executors
.newFixedThreadPool(50);
private static ConcurrentHashMap<String, BlockingQueue<TheLocation>> map;
static {
map = new ConcurrentHashMap<String, BlockingQueue<TheLocation>>();
serverSocketIsOpen = new AtomicBoolean();
}
@RequestMapping("/setLocation.do")
public void setLocation(@RequestParam("userID") String id,
@RequestParam("lat") double lat, @RequestParam("lng") double lng) {
TheLocation location = new TheLocation();
location.setLat(lat);
location.setLng(lng);
BlockingQueue<TheLocation> theLink = getLinkById(id);
HandleSet s = new HandleSet(theLink, location);
exec.execute(s);
System.out.println("id为 " + id + "的客户端成功的返回了地址");
}
@RequestMapping("/getLocation.do")
@ModelAttribute("result")
public void getLocation(@RequestParam("userID") String id,
HttpServletRequest req, HttpServletResponse res) {
BlockingQueue<TheLocation> theLink = getLinkById(id);
HandleGet g = new HandleGet(theLink);
Future<TheLocation> f = exec.submit(g);
TheLocation location = null;
;
try {
location = f.get();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ExecutionException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
res.setContentType("text/xml, charset=UTF-8");
try {
res.getWriter().write(location.toXml());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("id为 " + id + "的客户端成功的追踪到地址");
// return location;
}
private BlockingQueue<TheLocation> getLinkById(String id) {
BlockingQueue<TheLocation> theLink;
if (map.contains(id)) {
theLink = map.get(id);
} else {
theLink = new SynchronousQueue<TheLocation>();
map.put(id, theLink);
}
return theLink;
}
}
now
警告: /FindYourGPhone/setLocation.do
java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission (AccessControlContext.java:323)
at java.security.AccessController.checkPermission(Acc essController.java:546)
at java.lang.SecurityManager.checkPermission(Security Manager.java:532)
at com.google.appengine.tools.development.DevAppServe rFactory$CustomSecurityManager.checkPermission(Dev AppServerFactory.java:166)
at com.google.appengine.tools.development.DevAppServe rFactory$CustomSecurityManager.checkAccess(DevAppS erverFactory.java:191)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java :299)
at java.lang.Thread.init(Thread.java:332)
at java.lang.Thread.<init>(Thread.java:565)
at java.util.concurrent.Executors$DefaultThreadFactor y.newThread(Executors.java:542)
at java.util.concurrent.ThreadPoolExecutor.addThread( ThreadPoolExecutor.java:672)
at java.util.concurrent.ThreadPoolExecutor.addIfUnder CorePoolSize(ThreadPoolExecutor.java:697)
at java.util.concurrent.ThreadPoolExecutor.execute(Th readPoolExecutor.java:652)
at com.mvc.controller.Controller_1.setLocation(Contro ller_1.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.development.agent.runti me.Runtime.invoke(Runtime.java:100)
at org.springframework.web.bind.annotation.support.Ha ndlerMethodInvoker.invokeHandlerMethod(HandlerMeth odInvoker.java:174)
at org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter.invokeHandlerMethod(An notationMethodHandlerAdapter.java:421)
at org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter.handle(AnnotationMetho dHandlerAdapter.java:409)
at org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:771)
at org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:716)
at org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.blobstore.dev.ServeBlobFi lter.doFilter(ServeBlobFilter.java:51)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCle anupFilter.doFilter(TransactionCleanupFilter.java: 43)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileF ilter.doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(Se rvletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(Se ssionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(Co ntextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebA ppContext.java:418)
at com.google.apphosting.utils.jetty.DevAppEngineWebA ppContext.handle(DevAppEngineWebAppContext.java:70 )
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContai nerService$ApiProxyHandler.handle(JettyContainerSe rvice.java:349)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(Htt pConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.he aderComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser. java:547)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpPa rser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnec tion.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(Selec tChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run (QueuedThreadPool.java:582)
please help me!
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules