Ich habe es geschafft, eine funktionierende Anwendung zu brechen, und kann nicht herausfinden, wie es zu beheben ist.Wie kann ich kopflose Grafikumgebung auf Windows7 ausschalten
Ich habe einen Java-Web-App, die auf einer Windows7 Box aus Eclipse (Frühjahr STS-Version.) Auf "tc Server" laufen
Die App java.awt.Robot verwendet eine Bildschirmaufnahme durchzuführen, und zeigen Sie das aufgenommene Bild auf der folgenden Seite an.
So weit so gut, und ich konnte eine gepufferteImage vom Bildschirm sammeln und auf einer nachfolgenden Seite innerhalb der Web-App anzeigen.
Und dann brach ich irgendwie die Web-App, möglicherweise laden die Android SDK und Eclipse-Tools.
Jetzt bekomme ich eine Ausnahme von Robot, weil es nicht in einer HeadlessEnvironment ausgeführt werden kann. Google-Suchanfragen zeigen, dass eine headlessEnvironment für den Betrieb ohne Bildschirm und Tastatur ist, aber ich habe beide. Die Anwendung funktionierte bisher, ohne jemals auf HeadlessEnvironment zu stoßen.
Wenn ich debuggen und die GraphicsEnvironment anzeigen;
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Ich bekomme ein HeadlessGraphicsEnvironment Objekt auf der Basis eines Win32GraphicsEnvironment.
während:
String nm = java.security.AccessController.doPrivileged
(new sun.security.action.GetPropertyAction("java.awt.graphicsenv", null));
System.out.println("java.awt.graphicsenv = " + nm);
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
Mein armes Upgrade auf Android mich ursprünglich führte gibt das Upgrade zu verlassen und das neueste Springsource Tool-Set neu installieren. Dies ist auf das HeadlessEnvironment-Problem gestoßen, daher habe ich wieder auf meine ursprüngliche Version von Eclipse zurückgegriffen, die nun auch das gleiche Problem hat.
Ich fühle mich jetzt ziemlich fest, und da die meisten Suchen mir sagen, wie ich den Headless-Modus einschalten kann, kann mir jemand erklären, wie man den Headless-Modus wieder abschaltet?
Vielen Dank!
< ------------- EDIT: Stapel Trace hinzugefügt --------------------------- --------------------------->
05-Apr-2012 18:42:51 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [viewerServlet] in context with path [/WebView] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: java.awt.AWTException: headless environment] with root cause
java.awt.AWTException: headless environment
at java.awt.Robot.<init>(Robot.java:75)
at uk.co.fred.MSWindowsHandler.WindowHandlerUtilities.setupRobot(WindowHandlerUtilities.java:191)
at uk.co.fred.MSWindowsHandler.WindowHandlerUtilities.scanWindow(WindowHandlerUtilities.java:71)
at uk.co.fred.Scanner.ScanServiceImpl.scanScreenToBufferedImage(ScanServiceImpl.java:66)
at uk.co.fred.viewer.controller.scan.control.ScanControlController.postPage_control_Scan(ScanControlController.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.traceNextValve(HttpRequestOperationCollectionValve.java:112)
at com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:94)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:279)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Wir brauchen den Stack-Trace youre zu sehen! – davidfrancis
OK, kein Problem. Die ursprüngliche AWT-Ausnahme wurde zuvor abgefangen, aber ich habe sie zur besseren Übersichtlichkeit als runtimeException geworfen. – user582011