1

ejb のルックアップに問題があります。サーブレットではすべて正常に動作しますが、リモート クライアントから ejb に接続する必要があります。

展開コンソール ログから:

 java:global/easymenu-webappEAR/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
 java:app/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
 java:module/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
 java:jboss/exported/easymenu-webappEAR/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote
 java:global/easymenu-webappEAR/EasyMenu/CounterBean
 java:app/EasyMenu/CounterBean
 java:module/CounterBean

webapp に ejbmodule があります (どのように分離するかわかりません)

コンテキストの取得:

public static InitialContext getInitialContext(String url) throws NamingException {
    Properties properties = new Properties();

    properties.setProperty(Context.URL_PKG_PREFIXES,
            "org.jboss.ejb.client.naming");
    properties.setProperty(Context.PROVIDER_URL, url);
    properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
    properties.setProperty(Context.SECURITY_PRINCIPAL, "pch");
    properties.setProperty(Context.SECURITY_CREDENTIALS, "peterch");

    return new InitialContext(properties);
}

調べる:

            CounterBeanRemote cbr = (CounterBeanRemote) ServiceLocator
                    .getInitialContext("remote://localhost:8080").lookup("java:app/EasyMenu/CounterBean!"
        + CounterBeanRemote.class.getName());

            System.out.println("Result: " + cbr.getMessage());

例外

mar 20, 2013 10:27:04 PM org.xnio.Xnio <clinit>
INFO: XNIO Version 3.0.3.GA
mar 20, 2013 10:27:04 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.0.3.GA
mar 20, 2013 10:27:04 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 3.2.3.GA
javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Operation failed with status WAITING]
    at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36)
    at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
    at javax.naming.InitialContext.init(InitialContext.java:242)
    at javax.naming.InitialContext.<init>(InitialContext.java:216)
    at sk.jbase.projects.easymenu.client.EasyMenuClient.getInitialContext(EasyMenuClient.java:58)
    at sk.jbase.projects.easymenu.client.EasyMenuClient.main(EasyMenuClient.java:38)
Caused by: java.lang.RuntimeException: Operation failed with status WAITING
    at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:89)
    at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56)
    at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166)
    at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139)
    at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104)
    ... 6 more
4

2 に答える 2

0

どの JBoss バージョンを使用していますか? JBoss 7.1 では、デフォルトのリモート ポートは 4447 であり、java:jboss/exported/ の後に続く URL を使用する必要があります。「org.jboss.ejb.client.naming」を使用する場合、URL と通常はファイル jboss-ejb-client.properties にあるプロパティに「ejb:」プレフィックスが必要です。

于 2013-05-29T08:03:19.580 に答える
0

JBOSS AS 7.2 の最後の夜間ビルドでも同じ問題が発生しました。クラスパスの jboss-client.jar を古いバージョンに戻したところ、魔法のように機能し始めました。

上記の URL とルックアップ、および jboss-client.jar を修正すると、それが実行されるはずです。

于 2014-03-20T17:23:14.593 に答える