AmazonLambdaを使用してコンポーネントを実行したいと思います。ただし、このコンポーネントには、OracleのSDKでのみ使用できるように見える一部のパッケージとの依存関係があります。
AWSLambda関数がLinuxAmazon AMI(Open SDKベース)で実行されることを読みました。実際、しばらく前にEC2インスタンスでプロジェクトを実行しようとしたところ、同じ問題が発生したため、標準のUbuntu 14.04に切り替えて、Oracle Java 8SDKをインストールしました。
あなたはなにか考えはありますか?
編集:私が見つけた問題は:
[2016-11-21T23:58:02.100] java.lang.NoClassDefFoundError: com/sun/webkit/network/CookieManager
[2016-11-21T23:58:02.100] java.lang.NoClassDefFoundError: com/sun/webkit/network/CookieManager
[2016-11-21T23:58:02.100] at com.machinepublishers.jbrowserdriver.JBrowserDriverServer.main(JBrowserDriverServer.java:74)
このクラスは、OracleのJavaSDKでのみ利用できると思います。
Lambda実行環境と利用可能なライブラリを確認すると、次のようになります。
コードでネイティブバイナリを使用している場合は、それらがこの環境でコンパイルされていることを確認してください。AWSLambdaでは64ビットバイナリのみがサポートされていることに注意してください。
AWS Lambdaは、次のランタイムバージョンをサポートしています。
- Node.js – v0.10.36、v4.3.2(推奨)
- Java-Java 8
- Python – Python 2.7
Q:Lambdaが関数の実行に使用するJVM環境は何ですか?
回答:Lambdaは、openjdk1.8のAmazonLinuxビルドを提供します。
Q:AWS Lambda関数のJavaコードをコンパイルするにはどうすればよいですか?
MavenやGradleなどの標準ツールを使用して、Lambda関数をコンパイルできます。ビルドプロセスは、AWSSDKに依存するJavaコードのコンパイルに使用するのと同じビルドプロセスを模倣する必要があります。Rソースファイルに関する国連あなたのJavaコンパイラ・ツールとあなたのクラスパスに推移依存関係を持つAWS SDK 1.9以降が含まれます。詳細については、awsのドキュメントを参照してください。
以下も確認できます:AWS Lambda:仕組み
githubでjbrowserdriverを確認すると、前提条件が示されます。
JavaFXを使用したJava8:
Ubuntu Xenial 16.04 LTS、Debian 8 Jessie(バックポート)、Debian 9ストレッチ:
sudo apt-get install openjdk-8-jre openjfx
Ubuntu Trusty 14.04 LTS:
sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java8-installer libgtk2.0 libxtst6 libxslt1.1 fonts-freefont-ttf libasound2 && sudo update-alternatives --config java
Mac、Windows、Linux:
Oracle Java 8をインストールします(注:JavaFXが含まれていないため、「サーバーJRE」ではなく、JREまたはJDKのいずれかを選択してください)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加