- wyvern
- 会議室デビュー日: 2008/07/18
- 投稿数: 2
|
投稿日時: 2008-07-18 12:26
現在、java1.5.0_16でSQLServer2000にDBアクセスするバッチプログラムを作成しています。
作成したプログラムをANTでjarファイルにして実行しましたが、
Exception in thread "main" java.lang.SecurityException
という例外が発生して困っています。
jarファイルからではなく、classファイルから起動するとこの例外は発生しません。
例外は以下のように出力されます。
コード: |
| Exception in thread "main" java.lang.SecurityException: invalid SHA1 signature file digest for com/microsoft/sqlserver/jdbc/CharacterStreamSetterArgs.class
at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:438)
at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:231)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:233)
at java.util.jar.JarVerifier.update(JarVerifier.java:188)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:325)
at java.util.jar.JarFile.getInputStream(JarFile.java:390)
at sun.misc.URLClassPath$JarLoader.getInputStream(URLClassPath.java:620)
at sun.misc.Resource.cachedInputStream(Resource.java:58)
at sun.misc.Resource.getByteBuffer(Resource.java:113)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:249)
at java.net.URLClassLoader.access0(URLClassLoader.java:56)
at java.net.URLClassLoader.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
|
SQLServer2000へのアクセスには
http://www.microsoft.com/downloads/details.aspx?FamilyId=C47053EB-3B64-4794-950D-81E1EC91C1BA&displaylang=en
からドライバをダウンロードし使用しています。
また、sqljdbc.jarをjarファイルに含めています。
例外の内容からsqljdbc.jarに含まれているmanifest.mfファイルの内容が、
作成したjarファイルに含まれていないのが原因かと思い、
ANTのビルドファイルに「filesetmanifest="merge"」を含めてjarファイルを作成しましたが、
例外の発生は解消できませんでした。
現在、jarファイルにSQLServerのドライバのjarファイルを含めないようにして、
起動時にclassパスをするように逃げていますが、
やはりすべてのファイルをjarファイルにまとめたいと思っています。
解決策をご存知の方教えていただきたいと思います。
|
- Kissinger
- ぬし
- 会議室デビュー日: 2002/04/30
- 投稿数: 428
- お住まい・勤務地: 愛知県
|
投稿日時: 2008-07-21 02:56
wyvernさん、こんにちは。
引用: |
| invalid SHA1 signature file digest for com/microsoft/sqlserver/jdbc/CharacterStreamSetterArgs.class
|
が問題なのですよね。
[ メッセージ編集済み 編集者: Kissinger 編集日時 2008-07-21 02:58 ]
|
- wyvern
- 会議室デビュー日: 2008/07/18
- 投稿数: 2
|
投稿日時: 2008-07-22 11:27
Kissingerさん御返答ありがとうございます。
Kissingerさんのおっしゃるとおり「invalid SHA1 signature file...」が解決されれば
私の疑問も解消されるかと思います。
signature fileというものを含むjarファイルを、jarファイルでまとめるときに
この例外が発生すると考えていますが、一般的にどのように解決するものなのでしょうか?
質問がはっきりしなくて申し訳ありません。
|
- makoto
- 常連さん
- 会議室デビュー日: 2004/05/05
- 投稿数: 40
|
投稿日時: 2009-01-04 11:04
SQL Server 用JDBCドライバ:JSQLConnectの無償版(1ユーザ用)は下記サイト:
http://support.climb.co.jp:9000/
download - JSQLConnect フォルダにあります。
ファイル名は: JSQLConnect5.85_Single_Free.zipです。
サポートはありませんのでよろしくお願いします。
|
- 朝日奈 ありす
- ベテラン
- 会議室デビュー日: 2007/10/28
- 投稿数: 57
- お住まい・勤務地: 北の都
|
投稿日時: 2009-01-07 22:53
たぶん、これが参考になるかも
http://docs.sun.com/app/docs/doc/820-0500/geziy?l=Ja&a=view
Oracleで出た問題のひとつ。
|