2016-05-20 22 views
1

JDBCを介してFileMakerデータベースに接続するAWS Lambda Pythonパッケージを作成しようとしています。テストするために、私はLambda Linux AMIでEC2インスタンスを起動し、テストしているvirtualenv(/ venv)を作成しました.fmjdbc.jarをWinSCPを使用して/ venv/lib /にアップロードしました。 fmjdbc.jar。コードは、ここでの使用例以下、JayDeBeApiを使用しています。これまでのhttps://pypi.python.org/pypi/JayDeBeApi/#usageJDBC、Python、およびJayDeBeApiを使用してFilemakerデータベースに接続

私のコードは以下の通りです:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/ec2-user/lambda-test-project/venv/local/lib/python2.7/site-package            s/jaydebeapi/__init__.py", line 359, in connect 
    jconn = _jdbc_connect(jclassname, jars, libs, *driver_args) 
    File "/home/ec2-user/lambda-test-project/venv/local/lib/python2.7/site-package            s/jaydebeapi/__init__.py", line 183, in _jdbc_connect_jpype 
    return jpype.java.sql.DriverManager.getConnection(*driver_args) 
jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: No suitable driver found for jdbc:filemaker://<MY URL STUFF IS HERE> 

がどのように私は、JDBCを取得することができます:私はエラーになります

import jaydebeapi as jdb 

driverclass = 'com.filemaker.jdbc.Driver' 
jdbcURL = 'jdbc:filemaker://url:port;database' 


jar = '/home/ec2-user/lambda-test-project/venv/lib/fmjdbc.jar' 
print jar 

conn = jdb.connect(driverclass,[jdbcURL,'username','password'],jar) 

をドライバをPythonの仮想環境で読み取るには?私はこのコードをLambdaパッケージで動作させたいので、新しく作成されたサーバーで繰り返し動作するPythonコードに統合できるソリューションがあることを願っています。

+0

[JayDeBeApiのドキュメントは](https://pypi.python.org/pypi/JayDeBeApi/)言う:「あなたはCPythonのを使用している場合は、[JPype](httpsをインストールしていることを確認してください://は、PyPIを。 python.org/pypi/JPype1/)を適切に使用してください。あなたはそれをしましたか? –

答えて

0

jpypeパッケージを使用して、pythonのドライバを設定できます。以前はOracle DBに接続するために使っていました。あなたの役に立つサンプルコードがあります。

import jaydebeapi,jpype 

classpath = "your jdbc jar driver path" 

jvm_path = "/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.36.x86_64/jre/lib/amd64/server/libjvm.so" #your java vm path 

jpype.startJVM(jvm_path, "-Djava.class.path=%s" % classpath) #start jvm based on the driver 

conn = jaydebeapi.connect(xxxxxx) 
+0

これは動作しますが、1回の反復でプログラムを考えた場合のみです。数分後同じスクリプトを実行しようとすると、次のエラーが表示されます。 'native/common/jp_env.cpp:78でJVMを起動できません。 これは何故ですか? – user2752159

関連する問題