質問

JNDIサービスプロバイダーを作成し、別のプロジェクトからITまでのオブジェクトとメソッドに段階的にアクセスすることに関するチュートリアルはありますか。いくつかの情報があります サービスプロバイダーの構築 しかし、実装するのは簡単ではありません。

ありがとう。

役に立ちましたか?

解決 2

今、私はAnnotationsと初期Contextクラスのグローバルな使用に関する問題を解決しました。 Stateless AnnotationとEJB-JAR XMLファイルとグローバルJNDIへのアクセスは、使用のためのキーにアドレス指定されます。

アクセスコード:

this.jndiAddress="ejb/service/IMyInterface";
Context context = new InitialContext();
IMyInterface object = (IMyInterface) context.lookup(this.jndiAddress);
object.doSomething();

サービスコード;

imyinterface.java:

public interface IMyInterface {

    void doSomething();

}

myclass.java:

@Remote(IMyInterface.class)
@Stateless(mappedName="ejb/service/IMyInterface")
public class MyClass implements IMyInterface {

    @EJB
    private IMyUserDao userDao;

    @Override
    public void doSomething() {
        User user = userDao.get(1);
        System.out.println(user.getName());
    }

}

ejb-jar.xml;

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
    <display-name>Service</display-name>
    <enterprise-beans>
        <session>
            <ejb-name>MyClass</ejb-name>
            <ejb-class>package.MyClass</ejb-class>
        </session>
        <session>
            <ejb-name>UserDao</ejb-name>
            <ejb-class>package.dao.UserDao</ejb-class>
        </session>
    </enterprise-beans>
</ejb-jar>

他のヒント

JNDIチュートリアルをオンラインでフォローして、必要なものを手伝いました。それは少し古いものです(そしてJDK 1.4.2のために書かれています)が、それでも適用可能です。 Sun/Oracle JNDIチュートリアル。

FWIW、誰かがTomcatでカスタムJNDIリソースを持ちたい場合は、彼らをチェックしてください JNDIチュートリアル.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top