2

JSF 2.0およびGlassfish 3.1で問題なく動作する私のコードは次のとおりです

 public static Connection connect(){
    try{

        String userName = "Defend";
        String password = "123456";
        String url = "jdbc:sqlserver://localhost;databaseName=ProductDB;";
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection con = DriverManager.getConnection(url,userName,password);
        System.out.println("Connected-DB");
        return con;
    }catch(Exception e){
        System.out.println(e);
        return null;
    }
}

Glassfish 4.0に移行すると、次の警告とエラーが発生します

SEVERE: 初期化時の FacesContext から InjectionProvider を取得できません。このコンテナは Mojarra インジェクション SPI を実装していますか?
SEVERE: InjectionProvider が見つからないため、@PreDestroy アノテーション付きメソッドを呼び出すことができません。このコンテナは Mojarra インジェクション SPI を実装していますか?
SEVERE: 初期化時の FacesContext から InjectionProvider を取得できません。このコンテナは Mojarra インジェクション SPI を実装していますか?
SEVERE: InjectionProvider が見つからないため、@PreDestroy アノテーション付きメソッドを呼び出すことができません。このコンテナは Mojarra インジェクション SPI を実装していますか?
SEVERE: 初期化時の FacesContext から InjectionProvider を取得できません。このコンテナは Mojarra インジェクション SPI を実装していますか?
SEVERE: InjectionProvider が見つからないため、@PreDestroy アノテーション付きメソッドを呼び出すことができません。このコンテナは Mojarra インジェクション SPI を実装していますか?
警告: Web アプリケーション [/Cyber​​D] は JDBC ドライバー [com.microsoft.sqlserver.jdbc.SQLServerDriver] を登録しましたが、Web アプリケーションの停止時に登録解除に失敗しました。メモリ リークを防ぐために、JDBC ドライバーは強制的に登録解除されています。
重大: Web アプリケーション [/Cyber​​D] は、タイプ [com.microsoft.sqlserver.jdbc.ActivityCorrelator$1] (値 [com.microsoft.sqlserver.jdbc.ActivityCorrelator$1@163a1f8f]) のキーとタイプの値を持つ ThreadLocal を作成しました[com.microsoft.sqlserver.jdbc.ActivityId] (値 [1a62bb37-9aa5-4b36-8185-354eca0f8da0-3]) ですが、Web アプリケーションが停止したときに削除できませんでした。スレッドは、メモリ リークの可能性を回避するために、時間の経過とともに更新されます。

この connect() 関数を呼び出すと NullPointerException が発生します。親切に私を導いてください

4

0 に答える 0