2017-12-08 4 views
0

셀레늄 독립 실행 형 서버를 사용하여 테스트 자동화를 수행하는 기능이있는 grails/groovy 프로젝트가 있습니다.Selenium Standalone Server를 사용하는 ClassNotFoundException

grails 프로젝트를 프로덕션 모드로 계속 실행하면이 오류가 발생합니다. IntelliJ에서 직접 실행하면 완벽하게 작동하므로 정확히 무엇이 잘못되었는지 잘 모릅니다.

WebDriver driver 
DesiredCapabilities capability = DesiredCapabilities.chrome() 
capability.setBrowserName("chrome") 
capability.setPlatform(Platform.WINDOWS) 
driver = new RemoteWebDriver(new URL("http://192.168.83.124:4444/wd/hub"), capability); 

내가 마지막 줄에 ClassNotFoundException가 오류를 받고 있어요 :

다음은 관련 코드입니다.

프로젝트 용 내 라이브러리에서 selenium-java-2.53.0.jar, selenium-server-standalone-2.53.0.jar를 사용하고 있으며 소스에 셀레늄 - java-2.53.0-srcs.jar

이 있습니다.

나는 무엇이 잘못되었는지 전혀 몰랐으며 인터넷을 철저히 조사하여 해결책을 찾았지만 아무 것도 발견하지 못했습니다. 어떤 도움을 주셔서 감사합니다. 여기

오류의 전체 텍스트입니다 :

2017-12-08 15:59:56,381 [http-bio-8080-exec-1] ERROR 
errors.GrailsExceptionResolver - ClassNotFoundException occurred when processing request: [GET] /Diversotron-0.1/api/edit 
com.google.common.base.Function. Stacktrace follows: 
java.lang.ClassNotFoundException: com.google.common.base.Function 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
    at java.lang.Class.getDeclaredConstructors(Class.java:1906) 
    at 
org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) 
    at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) 
    at diversotron.PropotronService.setPropotron(PropotronService.groovy:25) 
    at diversotron.ApiController.edit(ApiController.groovy:53) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
+0

질문에 실제 예외를 추가 할 수 있습니까? –

+0

Tim, 위의 전체 오류를 추가했습니다. 당신의 도움을 주셔서 감사합니다. – Sulteric

답변

0

그것은 내 BuildConfig.groovy 파일에서 Selenium이 선언되지 않았기 때문입니다. 그것이 IntelliJ를 통해 실행되었지만 프로덕션에서는 실행되지 않은 이유입니다. grails prod war를하는 것은 도서관을 포함하지 않을 것이다. 그것들은 buildconfoig.groovy 파일에 지정되어야합니다.

이 줄을 추가해야했습니다.

def seleniumVersion = "2.53.0" 

과의 종속

나는이를 추가했다 :

runtime "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion" 

는 희망이 선 아래로 다른 사람을 도움이됩니다!

-1

지도 크롬 옵션 = 새로운지도();

ChromeOptions.put ("binary", "/ use/lib/chromium-browser/chromium-browser");

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

capabilities.setCapability (ChromeOptions.CAPABILITY, chromeOptions);

웹 드라이버 드라이버 = 새 Chrome 드라이버 (기능); 시도하십시오