Java PhantomJS和Ghost驱动程序在Mac上工作,但在Linux上不工作
我们的web应用程序在mac上运行良好,但在linux上出现超时异常。我使用的是phantomJS 1.9.8和1.9.7。下面是Java代码和堆栈跟踪。 你好 我们的web应用程序在mac上运行良好,但在linux上出现超时异常。我使用的是phantomJS 1.9.8和1.9.7。下面是Java代码和堆栈跟踪。 你好 我们的web应用程序在mac上运行良好,但在linux上出现超时异常。我使用的是phantomJS 1.9.8和1.9.7。下面是Java代码和堆栈跟踪Java PhantomJS和Ghost驱动程序在Mac上工作,但在Linux上不工作,java,linux,phantomjs,ghost,Java,Linux,Phantomjs,Ghost,我们的web应用程序在mac上运行良好,但在linux上出现超时异常。我使用的是phantomJS 1.9.8和1.9.7。下面是Java代码和堆栈跟踪。 你好 我们的web应用程序在mac上运行良好,但在linux上出现超时异常。我使用的是phantomJS 1.9.8和1.9.7。下面是Java代码和堆栈跟踪。 你好 我们的web应用程序在mac上运行良好,但在linux上出现超时异常。我使用的是phantomJS 1.9.8和1.9.7。下面是Java代码和堆栈跟踪 File scrFil
File scrFile=null;
WebDriver driver=null;
try{
// Initiation caps from spring dependency.
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, pathToPhantomJS);
caps.setCapability("phantomjs.binary.path", pathToPhantomJS);
caps.setCapability(IscoreConstants.TAKE_SCREEN_SHOT, true);
LOGGER.info("Getting Driver Instance .");
driver = new PhantomJSDriver(caps);
LOGGER.info("Driver Instance Created.");
Stack Trace:
[DATE="2015-07-01 00:02:17,254"] [LEVEL=ERROR] [LOG_MODULE=com.apple.gbi.gsf.web.handler.ServiceExceptionHandler] [ReqId=""] [LOG_MESSAGE="[REQUEST-INFO="uri=/gsf/iScore/businessareas/applecare/subjectareas/contactcenter/proxy/CaptureImage;client=17.169.113.85;session=Q1zben8C30t05Oab2SFjazP8 (user-agent:curl/7.37.1;host:gsf-dev2.corp.apple.com;content-type:application/json;accept:application/json;content-length:150;x-forwarded-for:17.149.233.4;vip-ip-port:17.161.20.239_443)"] [REQID="60943584-efd8-4a67-9e08-6fc46e98912f"] [ERRORCODE="ISR01012"] [ERRORMSG="Error Occoured While Capturing Image"] : com.apple.gbi.gsf.api.exception.ServiceException$UnexpectedException: Error Occoured While Capturing Image
at com.apple.gbi.iscore.service.screencapture.ScreenCaptureServiceImpl.captureImage(ScreenCaptureServiceImpl.java:85)
at com.apple.gbi.iscore.proxy.imagecapture.CaptureImageProxyService.execute(CaptureImageProxyService.java:42)
at com.apple.gbi.gsf.core.proxy.ProxyDataService.executeService(ProxyDataService.java:38)
at com.apple.gbi.gsf.core.service.AbstractDataService.getData(AbstractDataService.java:35)
at com.apple.gbi.gsf.query.staticquery.service.ServiceExecutorImpl.execute(ServiceExecutorImpl.java:479)
at com.apple.gbi.gsf.query.staticquery.service.ServiceExecutorImpl.execute(ServiceExecutorImpl.java:470)
at com.apple.gbi.gsf.web.controller.service.query.ServiceController.executeServiceRequest(ServiceController.java:231)
at com.apple.gbi.gsf.web.controller.service.query.ServiceController.query(ServiceController.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:389)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:508)
at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:806)
at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:847)
at java.lang.Thread.run(Unknown Source)
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'ma-bobjd-lapp10.corp.apple.com', ip: '10.185.20.170', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.39-400.214.4.el6uek.x86_64', java.version: '1.6.0_32'
Driver info: driver.version: PhantomJSDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:139)
at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:115)
at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:104)
at com.apple.gbi.iscore.service.screencapture.ScreenCaptureServiceImpl.captureImage(ScreenCaptureServiceImpl.java:61)
at com.apple.gbi.iscore.proxy.imagecapture.CaptureImageProxyService.execute(CaptureImageProxyService.java:42)
at com.apple.gbi.gsf.core.proxy.ProxyDataService.executeService(ProxyDataService.java:38)
at com.apple.gbi.gsf.core.service.AbstractDataService.getData(AbstractDataService.java:35)
at com.apple.gbi.gsf.query.staticquery.service.ServiceExecutorImpl.execute(ServiceExecutorImpl.java:479)
at com.apple.gbi.gsf.query.staticquery.service.ServiceExecutorImpl.execute(ServiceExecutorImpl.java:470)
at com.apple.gbi.gsf.web.controller.service.query.ServiceController.executeServiceRequest(ServiceController.java:231)
at com.apple.gbi.gsf.web.controller.service.query.ServiceController.query(ServiceController.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:389)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:508)
at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:806)
at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:847)
at java.lang.Thread.run(Unknown Source)
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'ma-bobjd-lapp10.corp.apple.com', ip: '10.185.20.170', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.39-400.214.4.el6uek.x86_64', java.version: '1.6.0_32'
Driver info: driver.version: PhantomJSDriver
at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:166)
at org.openqa.selenium.phantomjs.PhantomJSCommandExecutor.execute(PhantomJSCommandExecutor.java:78)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
... 53 more
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:9011/status] to be available after 20001 ms
at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:104)
at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:163)
... 55 more
Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException
at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:143)
at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:79)
... 56 more
Caused by: java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:130)
文件scrFile=null;
WebDriver=null;
试一试{
//来自spring依赖项的初始化上限。
setCapability(PhantomJSDriverService.PHANTOMJS_可执行文件_路径_属性,pathToPhantomJS);
setCapability(“phantomjs.binary.path”,pathToPhantomJS);
caps.setCapability(IscoreConstants.TAKE_SCREEN_SHOT,true);
info(“获取驱动程序实例”);
驱动程序=新的幻影驱动程序(caps);
info(“已创建驱动程序实例”);
堆栈跟踪:
[DATE=“2015-07-01 00:02:17254”][LEVEL=ERROR][LOG_MODULE=com.apple.gbi.gsf.web.handler.ServiceExceptionHandler][ReqId=”“][LOG_MESSAGE=“[REQUEST-INFO=“uri=/gsf/iScore/businessares/applecare/subjectareares/contactcenter/proxy/CaptureImage;client=17.169.113.85;session=Q1ZBEN8C30T005OAB2SFJAZP8(用户代理:curl/7.37.1;主机:gsf-dev2.corp.apple.com;内容类型:application/json;accept:application/json;内容长度:150;x-forwarded-for:17.149.233.4;vip ip端口:17.161.20.239443)][REQID=“60943584-efd8-4a67-9e08-6fc46e98912f”][ERRORCODE=“ISR01012”][ERRORMSG=“拍摄图像时出错”]:com.apple.gbi.gsf.api.exception.ServiceException$UnexpectedException:捕获图像时出错
在com.apple.gbi.iscore.service.ScreenCaptureServiceImpl.captureImage上(ScreenCaptureServiceImpl.java:85)
在com.apple.gbi.iscore.proxy.imagecapture.CaptureImageProxyService.execute(CaptureImageProxyService.java:42)
位于com.apple.gbi.gsf.core.proxy.ProxyDataService.executeService(ProxyDataService.java:38)
位于com.apple.gbi.gsf.core.service.AbstractDataService.getData(AbstractDataService.java:35)
位于com.apple.gbi.gsf.query.staticquery.service.ServiceExecuteImpl.execute(ServiceExecuteImpl.java:479)
位于com.apple.gbi.gsf.query.staticquery.service.ServiceExecuteImpl.execute(ServiceExecuteImpl.java:470)
在com.apple.gbi.gsf.web.controller.service.query.ServiceController.executeServiceRequest(ServiceController.java:231)上
在com.apple.gbi.gsf.web.controller.service.query.ServiceController.query(ServiceController.java:107)上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
位于org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
位于org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
位于org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
位于org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
位于org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
位于org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
位于org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
位于org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
位于org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:389)
位于org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:508)
位于org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:3