2

エイリアスの下でJAAS認証を含むDB2データベースへのデータソースを構成したWebSphere 7で実行される多くのJAX-WS Webサービスのパッケージがあります。

ここで、DAO のロジックをテストしたいと思います。もちろん、エンティティ マネージャーがあります。そこで、このチュートリアルhttp://www.ibm.com/developerworks/rational/library/08/0219_jadhav/を部分的にガイドとして、アプリケーション クライアント プロジェクトを作成しました。

  1. application-client.xml

     <?xml version="1.0" encoding="UTF-8"?>
     <application-client version="5"
        xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application-client_5.xsd" metadata-complete="false">
    
    <display-name>ServiciosAcademicoTests</display-name>
    
    <resource-ref>
        <res-ref-name>ServiciosAcademicoTests</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Application</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    

  2. ibm-application-client-bnd.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <application-client-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-application-client-bnd_1_0.xsd"   version="1.0">
    
        <resource-ref name="ServiciosAcademicoTests" binding-name="java:comp/env/jdbc/MyDB">
        </resource-ref>
    
    </application-client-bnd>
    

テストを実行すると、「Null userid is not supported 」というエラーが返されます。:

 <openjpa-1.2.1- (...) fatal general error> org.apache.openjpa.persistence.PersistenceException: **Null userid is not supported.** ERRORCODE=-4461

ibm-application-client-bnd.xml で指定と認証を試みましたが、それでも同じエラーが発生します。

<?xml version="1.0" encoding="UTF-8"?>
<application-client-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-application-client-bnd_1_0.xsd"
version="1.0">

<resource-ref name="ServiciosAcademicoTests" binding-name="java:comp/env/jdbc/MyDB">
    <authentication-alias name="dmfloresNode01/XXX "/>
</resource-ref>

念のため、私の単体テストは次のとおりです。

public class CursosTest extends TestCase {

ICursoDAO cursoDAO; // From another project

Integer idAlumno = 123456;

String usuarioPortal = "xxx";

public void testCursosLlevados() throws Exception {

    cursoDAO = new CursoDAO(); 

    List<CursoLlevadoVO> lstCursos = cursoDAO
            .obtenerCursosLlevadosPorAlumno(idAlumno, usuarioPortal);

    if (lstCursos != null) {
        for (CursoLlevadoVO cursoLlevadoVO : lstCursos) {
            System.out.println(cursoLlevadoVO.getNombre());
        }
    }

    assertNotNull(lstCursos);
}

}

entitymanager の作成時に問題が発生することがわかりました。

entityManagerFactory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
entityManager = entityManagerFactory.createEntityManager(); // <-- here

私を手伝ってくれますか ?解決策を探す2日間:( .

更新

jdbc/MyDB を jdbc/XXX に変更しても問題は同じであるため、私のアプリケーション クライアントはデータ ソースにクエリを実行していないと思います ( http://www-01.ibm.com/support/docview. wss?uid=swg21596108、「指定されたデータソースをルックアップできませんでした」というメッセージが表示されませんが、原因である可能性があります)。また、Websphere の管理コンソールでデータ ソースへの認証を無効にしようとしましたが、同じ結果が得られます。

これは、webservices のプロジェクトにある私の persistence.xml ファイルです (これは正常に動作します。問題は、Web サービスをテストするためではなく、テスト目的で DAO クラスを使用しているアプリケーション クライアントです)。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="ServiciosAcademico">
    <jta-data-source>jdbc/MyDB</jta-data-source>
    <class>...</class>
    <properties>
        <property name="openjpa.jdbc.Schema" value="XXX"/>
    </properties>
    </persistence-unit>

. これは websphere 上の私のデータ ソースで、特定のスコープの下にあります。

ここに画像の説明を入力 ここに画像の説明を入力

3日目:

おそらく、データ ソースのエイリアスを削除すると同じメッセージが表示されるため、アプリケーション クライアントはデータ ソースへの接続に問題がない可能性がありますが、これは認証方法を使用していません。

ここに画像の説明を入力

ご協力いただきありがとうございます。私は WebSphere の初心者です。

4

0 に答える 0