このエラーが発生しました"Caused by: java.lang.IllegalStateException: The driver is not executable: /var/task/chromedriver"
aws lambda関数にjarプロジェクトをデプロイすると、プロジェクトはローカルマシンで正常に動作しますが、何らかの理由でクロムドライブを実行できないようです。 私のchromedriverファイルはresourcesフォルダに置かれています。続きawsラムダ関数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の両方を持っている、と私は777ファイルをchmodはしようとしましたが、何の成功を持っていません。
zipファイルを作成する前に 'chmod'を実行していても、パーミッションを格納する構造体はzipファイルにはありません(afaik)。 zipファイルをローカルのどこかに展開して確認します。たぶんファイル実行可能ファイル[Javaを使用](https://stackoverflow.com/a/43859098/1695906)にマークすることができますか? –
ラムダ関数自体の中でchmodを呼び出していました。私はラムダ関数にスタンドアロンのjarファイルとして、zipを使用せずに展開しています。私はまたあなたのリンクとsetPosixFilePermissionsでそれをマークしようとしましたが、まだそのエラーが発生しています。 –
もう1つ考えてみましょう:[ラムダ環境が構築されているベースイメージ](http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html)からサーバーを作成し、そのようなマシンでは期待どおりに動作します。 –