0

Weblogic 10.3.5 にデプロイされたリモート EJB 3.0 をルックアップする必要がある Spring MVC 3.1.1 アプリケーションがあります。

Spring アプリケーションは、ローカル サーバー VMware vFabric tc SDE 2.9 内で実行されます。Weblogic もローカルであり、STS 3.4.0 によって開始されます。

検索のために非常に多くの異なる方法を試しましたが、エラーメッセージは次のとおりです。

Name [ABC] is not bound in this Context. Unable to find [ABC]

ここで、ABC は試行ごとに異なります。

Weblogic がインストールおよび構成され、EJB がコンソール内にデプロイされていることがわかります。それが彼の JNDI ツリー内に表示されます。

AdminServer+LoginBean#it+company+project+ejb+login+LoginBeanRemote

every+はツリー ノードで、名前はLoginBean#it.company.project.ejb.login.LoginBeanRemote

AdminServer の下に subtree も表示ejb.mgmt.MEJBされますが、それが役立つ通知になるかどうかはわかりません。

ご覧のとおり、Spring Security 3.1.4 内でログイン スコープ用の EJB を作成したいと考えています。

これはリモート インターフェイスのブランチです。

@Remote
public interface LoginBeanRemote {
    public User loadUserByUsername(final String username);
}

それがクラスブランチです:

@Stateless(mappedName = "LoginBean")
public class LoginBean implements LoginBeanRemote {
   @Override
   public User loadUserByUsername(final String username) {
               final User user = new User();
               (...)
               return user;
   }
}

現在は no はありませejb-jar.xmlweblogic-ejb-jar.xmlが、1 つまたはすべての構成 XML を使用すると、同じメッセージが得られます。name内でタグを使用しなくなり@Statelessましたが、使用すると同じメッセージが表示されます。

それがクライアント ブランチです。

public class UserLogin {
    public User loadUserByUsername(final String username) {
        final User user = new User();
        Context context = null;
        final Hashtable <String, String> webLogic = new Hashtable <String, String>();
        webLogic.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        webLogic.put(Context.PROVIDER_URL, "[http://localhost:7001]()"); //also used t3 and iiop
        //also used SECURITY_PRINCIPAL & SECURITY_CREDENTIALS
        try {
            context = new InitialContext();
            final LoginBeanRemote login = (LoginBeanRemote) context.lookup("LoginBean#it.postel.aos.ejb.login.LoginBeanRemote");
            (...)
        } catch (final NamingException ne) {
            (...)
        }
        (...)
        return user;
    }
}

本番環境では、Spring アプリケーションは EJB モジュール (Weblogic 10.3.5 であっても) とは異なる AS にデプロイされるため、リモート EJB を使用しました。

STS内ですべてをテストしました。

EJB を Spring アプリケーションで外部 JAR として参照しました。

lib フォルダー内のこれらのファイルをドメインの Weblogic サーバー
LoginEjb.jarweblogic.jar入れ ましwlfullclient.jarた:
weblogic.jar

1 つの XML 構成が必要かどうか (ejb-jar.xmlまたはweblogic-ejb-jar.xml) はわかりませんが、これらのファイルを作成したときに間違いを犯した可能性があります (現在、これらのファイルはありません)。しかし、XML なしで EJB をデプロイできることも読みました。

Stack Overflow に関する他の質問をいくつか読みましたが、どの提案も解決策を提供してくれませんでした。

4

1 に答える 1