0
我一直堅持這個錯誤"Caused by: java.lang.IllegalStateException: The driver is not executable: /var/task/chromedriver"
當我將我的jar項目部署到aws lambda函數。該項目在我的本地機器上正常工作,但似乎由於某種原因,aws無法執行chromedriver。 我的chromedriver文件被放置在資源文件夾中。aws lambda函數chromedriver不可執行
以下是我的測試配置文件:
@Configuration
public class TestConfig {
private static final Logger l = LoggerFactory.getLogger(TestConfig.class);
private String chromeDriver = org.apache.commons.lang.SystemUtils.IS_OS_WINDOWS ? "chromedriver.exe" : "chromedriver" ;
public WebDriver getDriver(){
URL resource = getClass().getClassLoader().getResource(chromeDriver);
String chromePath = null;
try {
chromePath = Paths.get(resource.toURI()).toString();
} catch (URISyntaxException e) {
l.info("cannot find chromedriver in resources");
}
System.setProperty("webdriver.chrome.driver", chromePath);
return new ChromeDriver();
}
}
我都chromedriver和chromedriver.exe,我嘗試了和chmod 777文件,但沒有成功。
我不認爲'chmod'會在創建zip文件之前做到這一點 - 在zip文件中沒有(afaik)結構來存儲權限。在本地解壓zip文件來檢查。也許你可以首先標記文件可執行文件[使用Java](https://stackoverflow.com/a/43859098/1695906)? –
在lambda函數本身內部調用chmod。我將作爲獨立的jar部署到lambda函數中,而不是使用zip。我也嘗試用鏈接和setPosixFilePermissions來標記它,但仍然出現這個錯誤。 –
另一個想法是:從[構建Lambda環境的基本映像]創建服務器(http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html)並驗證這在這樣的機器上按預期運行。 –