1

Tomcat 6.0 サーバーで Birt 4.2.0 を動作させようとしていますが、mySql JDBC ドライバーをロードすることができません。私のレポートは Eclipse のプレビューでは正常に動作し、ReportEngine にフィードすると正常に動作しますが、Web ビューアーはこの例外を吐き出し続けます。

SEVERE: DriverClassLoader failed to load class: com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.eclipse.birt.core.framework.URLClassLoader.findClass1(URLClassLoader.java:188)
    at org.eclipse.birt.core.framework.URLClassLoader$1.run(URLClassLoader.java:156)
    at org.eclipse.birt.core.framework.URLClassLoader$1.run(URLClassLoader.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.birt.core.framework.URLClassLoader.findClass(URLClassLoader.java:151)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.loadExtraDriver(JDBCDriverManager.java:1024)
    at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.findDriver(JDBCDriverManager.java:819)
    at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.loadAndRegisterDriver(JDBCDriverManager.java:946)

(簡潔にするために省略した約80行のスタックトレースが続きます)

/usr/local/apache-tomcat-6.0.33/webapps/birt/WEB-INF/lib に配置した mysql-connector-java-5.1.21-bin.jar があります。多くのグーグル検索の後、/usr/local/apache-tomcat-6.0.33/lib、/usr/local/apache-tomcat-6.0.33/common/libなど、他の多くの場所にも配置しようとしました、および /usr/local/apache-tomcat-6.0.33/webapps/birt/WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_5.1.21/drivers. どれも影響はありませんでした。.rptdesign ファイルのデータ ソースは次のようになります。

<data-sources>
    <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Playrific live" id="49">
        <list-property name="privateDriverProperties">
            <ex-property>
                <name>metadataBidiFormatStr</name>
                <value>ILYNN</value>
            </ex-property>
            <ex-property>
                <name>disabledMetadataBidiFormatStr</name>
            </ex-property>
            <ex-property>
                <name>contentBidiFormatStr</name>
                <value>ILYNN</value>
            </ex-property>
            <ex-property>
                <name>disabledContentBidiFormatStr</name>
            </ex-property>
        </list-property>
        <property name="odaDriverClass">com.mysql.jdbc.Driver</property>
        <property name="odaURL">jdbc:mysql://10.177.134.242:3406/db_playsmrt</property>
        <property name="odaUser">[redacted]</property>
        <encrypted-property name="odaPassword" encryptionID="base64">[redacted]</encrypted-property>
    </oda-data-source>
</data-sources>

この時点で、私が考えることができる唯一のことは、mysql-connector-java-5.1.21-bin.jar が、まだ試していない別の場所に属しているか、または必要な環境変数がどこかにあるということです。設定されていますが、それが何であるかについては何も見つかりません。何が起こっているのか誰にも分かりませんか?

アップデート

再起動すると修正されました。私は今、愚かだと感じています。

4

1 に答える 1

0

mysql ドライバーが jboss モジュールとして設定されている jboss eap 6.1 で BIRT レポートを実行しようとしたときに、非常によく似た状況に遭遇しました。アプリケーションは期待どおりに動作しますが、BIRT は com.mysql.jdbc.Driver を見つけることができません。それを解決するために追加しました

 <module name="com.mysql" export="true"/>

コンテナーが com.mysql 依存関係をエクスポートし、BIRT の JDBCDriverManager がそれを参照できるように、私の jboss-deployment-structure.xml ファイルに追加します。私は自分のアプリケーションを再デプロイしましたが、うまくいきました。

于 2014-03-02T10:13:55.447 に答える