5 Replies Latest reply on Jul 24, 2012 3:00 AM by takuyaaa

    別サーバーからリモートでEJBをlookupする方法

    takuyaaa


      お世話になっております。

       

      サーバーが2台あって、
      それぞれJBoss AS 7.1.1 が起動してあり、EARを双方デプロイ済みの環境
      という前提にて、EJBのセッションBeanから、別のサーバーのEJBをlookupさせたいのですが、難航しております。

      実現したい処理のイメージ

       

      +---------------------+                +---------------------+
      |        Node 1       |                |        Node 2       |
      | EAR--------------+  |                |  EAR-------------+  |
      | |                |  |                |  |               |  |

      | | EJB----------+ |  |                |  | EJB--------+  |  |
      | | |            | |  |                |  | |          |  |  |

      | | | A Bean --------------(lookup)---------> B Bean   |  |  |

      | | +------------+ |  |                |  | +----------+  |  |
      | +----------------+  |                |  +---------------+  |
      |                     |                |                     |

       

      ローカルのEJBのlookupは当然うまく行くのですが、別サーバーのEJBをlookupする方法については
      ドキュメント的に調査した結果、下記URLがまさにその関連の内容と考えております。

       

      https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+server+instance

       

      この中で、EARのMETA-INF配下に、jboss-ejb-client.xmlを配置するとあるのですが、
      これを配置してデプロイした時点で、エラーになり、デプロイ自体が出来ません。

      それか、当要件を実現するための方法が、そもそも間違っているのでしょうか?
      JBossAS7以降から提供されている、Remote EJB ClientをEJBを使う方法が適切なのでしょうか?

       

      https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI

       

      ご存知の方いらっしゃいましたら、ご教示ください。
      よろしくお願いいたします。

        • 1. Re: 別サーバーからリモートでEJBをlookupする方法
          jorsef

          こんにちは

           

          サーバーが2台あって、
              (略)

          ローカルのEJBのlookupは当然うまく行くのですが、別サーバーのEJBをlookupする方法については

          ドキュメント的に調査した結果、下記URLがまさにその関連の内容と考えております。

           

          https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+server+instance

           

          この中で、EARのMETA-INF配下に、jboss-ejb-client.xmlを配置するとあるのですが、
          これを配置してデプロイした時点で、エラーになり、デプロイ自体が出来ません。

          それか、当要件を実現するための方法が、そもそも間違っているのでしょうか?

           

          いえ、上記のURLの手法で正解のはずです。当方はそれで、特に困ったことは発生していません。

           

          もう少し具体的に(どういう構成・設定で、何をしたらどんなエラーが発生すた)お話頂ければ何かわかるかもしれません

          • 2. Re: 別サーバーからリモートでEJBをlookupする方法
            takuyaaa

            Yokoyama Yasuo 様

             

            お世話になります。

            中村です。

             

            先だって発生していました、jboss-ejb-client.xmlがMETA-INFにあると、デプロイ失敗をする件は、
            設定が足りていないだけだったということが分かったのですが、それでも、lookupがまだ出来ておりません。

             

            具体的な作業は、
            https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+server+instance
            に従って、進めてみました。

             

             

            ノードAに行った対応
            ====================

             

            ・standalone-full.xml編集

             

            1.下記<outbound-connections>を追加

            <subsystem xmlns="urn:jboss:domain:remoting:1.1">
                <connector name="remoting-connector" socket-binding="remoting" security-realm="ApplicationRealm"/>
                <outbound-connections>
                    <remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="ejb" security-realm="ejb-security-realm">
                        <properties>
                            <property name="SASL_POLICY_NOANONYMOUS" value="false"/>
                            <property name="SSL_ENABLED" value="false"/>
                        </properties>
                    </remote-outbound-connection>
                </outbound-connections>
            </subsystem>


            2.<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">の中に、下記を追加

            <outbound-socket-binding name="remote-ejb">
            <remote-destination host="10.20.30.40" port="4447"/>
            </outbound-socket-binding>

             

            ここでいう、10.20.30.40は、ノードBのアドレスになります。

             

            3.<management>に<security-realm name="ejb-security-realm">を追加

                <management>
                    <security-realms>
                    ・
                    ・
                    ・
                        <security-realm name="ejb-security-realm">
                            <server-identities>
                                <secret value="YXB1c2VycGFzcw=="/>
                            </server-identities>
                        </security-realm>
                    ・
                    ・
                    ・
                    </security-realms>
                </management>

             

            ・システムプロパティに追加
            キー:jboss.socket.binding.port-offset
            値:100

             

            ・jboss-ejb-client.xmlを作成し配置

            EARのMETA-INFディレクトリ配下に、jboss-ejb-client.xmlを置く。

            内容は以下の通り

             

            <?xml version="1.0" encoding="UTF-8"?>
            <jboss-ejb-client xmlns="urn:jboss:ejb-client:1.0">
                <client-context>
                    <ejb-receivers>
                        <remoting-ejb-receiver outbound-connection-ref="remote-ejb-connection"/>
                    </ejb-receivers>
                </client-context>
            </jboss-ejb-client>

             

            ・EJBCLIENT.earをデプロイ

            EAR内に、WARを作って、サーブレットを作成し、そこからlookupをかける処理を実装。

             

            TestLookupServlet

            protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // TODO Auto-generated method stub
              try{
               try{
                final Properties  jndiProperties = new Properties();
                jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
                final Context context = new InitialContext(jndiProperties);
                System.out.println("Lookup Start.");
                Object o = context.lookup("ejb:EJBTEST/EJB/GetListBean!test.GetListHome");
                System.out.println(o.toString());
                System.out.println("Lookup Finish.");
               }catch(Exception e){
                e.printStackTrace();
               }
              }catch(Exception e){
               e.printStackTrace();
              }
            }

             

            実行結果は以下の通り。

             

            13:44:27,506 INFO  [stdout] (http--127.0.0.1-8080-2) Lookup Start.
            13:44:27,517 ERROR [stderr] (http--127.0.0.1-8080-2) javax.naming.NamingException: Could not load ejb proxy class test.GetListHome [Root exception is java.lang.ClassNotFoundException: test.GetListHome from [Module "deployment.EJBCLIENT.ear.EJBClientWeb.war:main" from Service Module Loader]]
            13:44:27,524 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.ejb.client.naming.ejb.EjbNamingContext.createEjbProxy(EjbNamingContext.java:108)
            13:44:27,527 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.ejb.client.naming.ejb.EjbNamingContext.lookup(EjbNamingContext.java:96)
            13:44:27,527 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.ejb.client.naming.ejb.EjbNamingContext.lookup(EjbNamingContext.java:76)
            13:44:27,529 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:100)
            13:44:27,532 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
            13:44:27,532 ERROR [stderr] (http--127.0.0.1-8080-2)  at javax.naming.InitialContext.lookup(InitialContext.java:411)
            13:44:27,534 ERROR [stderr] (http--127.0.0.1-8080-2)  at test.TestLookupServlet.doGet(TestLookupServlet.java:40)
            13:44:27,534 ERROR [stderr] (http--127.0.0.1-8080-2)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
            13:44:27,537 ERROR [stderr] (http--127.0.0.1-8080-2)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            13:44:27,537 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
            13:44:27,539 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
            13:44:27,557 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
            13:44:27,559 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
            13:44:27,562 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
            13:44:27,562 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
            13:44:27,564 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            13:44:27,567 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            13:44:27,567 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
            13:44:27,569 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
            13:44:27,572 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
            13:44:27,572 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
            13:44:27,574 ERROR [stderr] (http--127.0.0.1-8080-2)  at java.lang.Thread.run(Thread.java:722)
            13:44:27,574 ERROR [stderr] (http--127.0.0.1-8080-2) Caused by: java.lang.ClassNotFoundException: test.GetListHome from [Module "deployment.EJBCLIENT.ear.EJBClientWeb.war:main" from Service Module Loader]
            13:44:27,577 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
            13:44:27,579 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
            13:44:27,579 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
            13:44:27,582 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
            13:44:27,584 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
            13:44:27,584 ERROR [stderr] (http--127.0.0.1-8080-2)  at java.lang.Class.forName0(Native Method)
            13:44:27,587 ERROR [stderr] (http--127.0.0.1-8080-2)  at java.lang.Class.forName(Class.java:264)
            13:44:27,587 ERROR [stderr] (http--127.0.0.1-8080-2)  at org.jboss.ejb.client.naming.ejb.EjbNamingContext.createEjbProxy(EjbNamingContext.java:106)
            13:44:27,589 ERROR [stderr] (http--127.0.0.1-8080-2)  ... 21 more

             

            ・・・ノードBに対してRemoteでlookupしに行っていない感じです。

             

            ノードBに行った対応
            ====================

             

            ・JBossAS7.1.1 Finalを起動

            ノード名については、システムパラメーター追加で、管理コンソール上から設定をしておく。

            キー:jboss.node.name
            値:node

             

            ・EJBの入ったEARをデプロイ

            リモート呼び出しされる側になります。
            テスト用のEJBの入ったEARをあらかじめデプロイさせておく。

             

            EJBTEST.earデプロイ結果

            11:13:58,463 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-3) JNDI bindings for session bean named TestEntity in deployment unit subdeployment "EJB.jar" of deployment "EJBTEST.ear" are as follows:

            java:global/EJBTEST/EJB/TestEntity!test.TestEntityHome
            java:app/EJB/TestEntity!test.TestEntityHome
            java:module/TestEntity!test.TestEntityHome
            java:jboss/exported/EJBTEST/EJB/TestEntity!test.TestEntityHome
            java:global/EJBTEST/EJB/TestEntity!test.TestEntity
            java:app/EJB/TestEntity!test.TestEntity
            java:module/TestEntity!test.TestEntity
            java:jboss/exported/EJBTEST/EJB/TestEntity!test.TestEntity

            11:13:58,463 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-3) JNDI bindings for session bean named GetListBean in deployment unit subdeployment "EJB.jar" of deployment "EJBTEST.ear" are as follows:

            java:global/EJBTEST/EJB/GetListBean!test.GetListHome
            java:app/EJB/GetListBean!test.GetListHome
            java:module/GetListBean!test.GetListHome
            java:jboss/exported/EJBTEST/EJB/GetListBean!test.GetListHome
            java:global/EJBTEST/EJB/GetListBean!test.GetList
            java:app/EJB/GetListBean!test.GetList
            java:module/GetListBean!test.GetList
            java:jboss/exported/EJBTEST/EJB/GetListBean!test.GetList

            11:14:03,564 INFO  [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /listtest_war
            11:14:03,799 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "EJBTEST.ear"

             

            ・アプリケーション利用のユーザーを追加

             

            ./add-user.sh

             

            ユーザー:apuser
            パスワード:apuserpass

             

            で追加。

             

            • 3. Re: 別サーバーからリモートでEJBをlookupする方法
              jorsef

              こんにちは

               

              実行結果は以下の通り。

               

              13:44:27,506 INFO  [stdout] (http--127.0.0.1-8080-2) Lookup Start.
              13:44:27,517 ERROR [stderr] (http--127.0.0.1-8080-2) javax.naming.NamingException: Could not load ejb proxy class test.GetListHome [Root exception is java.lang.ClassNotFoundException: test.GetListHome from [Module "deployment.EJBCLIENT.ear.EJBClientWeb.war:main" from Service Module Loader]]

               

              java.lang.ClassNotFoundException: test.GetListHome  って出てますねぇ

               

              これは サーバー側(Node2側) で呼び出すBean のRemoteHomeクラスでしょうか?

              クライアント側(Node1側) で CNFE 出しているってことは、パッケージングとかクラスローディングの問題でしょうか?

              EAR 内の jar/war の配置や MANIFEST.MF の Class-Path や Dependencies エントリの確認をしてみたらいかがでしょうか?

              • 4. Re: 別サーバーからリモートでEJBをlookupする方法
                takuyaaa


                追伸です。

                 

                 

                前回サーブレットからのリモートEJB呼び出しについての検証結果として投稿致しましたが
                イメージでは、EJBから別マシンのEJBの呼び出しが本当の目的でありましたので、再度当方の
                検証結果および、サーバー・クライアントそれぞれの検証に用いておりますEARも添付させていただきます。

                 

                <サーバー側>

                 

                EJBSERVER.ear
                ファイルをデプロイします。

                デプロイ時は、下記GlobalJNDIが表示されます。

                 

                java:global/EJBSERVER/EJB/GetListBean!test.GetListHome
                java:app/EJB/GetListBean!test.GetListHome
                java:module/GetListBean!test.GetListHome
                java:jboss/exported/EJBSERVER/EJB/GetListBean!test.GetListHome
                java:global/EJBSERVER/EJB/GetListBean!test.GetList
                java:app/EJB/GetListBean!test.GetList
                java:module/GetListBean!test.GetList
                java:jboss/exported/EJBSERVER/EJB/GetListBean!test.GetList

                 

                デプロイ後、サーバー側動作確認方法
                http://remoteejb:8080/EJBTestWeb/TestArrayListServlet
                標準出力にデバッグログが表示されること。

                 

                <クライアント側>

                 

                EJBCLIENT.ear
                ファイルをデプロイします。

                デプロイ時は、下記GlobalJNDIが表示されます。

                 

                java:global/EJBCLIENT/EJB_CLI/GetListBean!test_client.GetListHome
                java:app/EJB_CLI/GetListBean!test_client.GetListHome
                java:module/GetListBean!test_client.GetListHome
                java:jboss/exported/EJBCLIENT/EJB_CLI/GetListBean!test_client.GetListHome
                java:global/EJBCLIENT/EJB_CLI/GetListBean!test_client.GetList
                java:app/EJB_CLI/GetListBean!test_client.GetList
                java:module/GetListBean!test_client.GetList
                java:jboss/exported/EJBCLIENT/EJB_CLI/GetListBean!test_client.GetList

                 

                デプロイ後、クライアント側動作確認方法
                http://localhost:8080/EJBClientWeb/TestLookupServlet
                標準出力にデバッグログが表示されること。

                 

                ローカルのサーブレット内で、java:app/EJB_CLI/GetListBean!test_client.GetListHome
                をLookupし、EJB_CLI.jar内の、セッションBeanのGetListBeanにあるgetListメソッドを呼び出す。
                呼び出されたgetListメソッドの中から、RemoteEJBへのアクセスを試みる。

                 

                jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
                jndiProperties.put(Context.PROVIDER_URL,"remote://remoteejb:4447");
                jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
                jndiProperties.put(Context.SECURITY_PRINCIPAL, "apuser");
                jndiProperties.put(Context.SECURITY_CREDENTIALS, "apuserpass");

                 

                lookupは、
                TestEntityHome home = (TestEntityHome)context.lookup("ejb:EJBSERVER/EJB//GetListBean!test.GetListHome");
                のように、行うものとします。

                 

                ホストremoteejbは、EJBSERVER.earをデプロイしたマシン、
                JBossAS7サーバー上で、アプリケーション利用ユーザーapuserを作成済みとします。

                Lookupを掛ける以前の、InitialContextを生成する時点で、下記スタックトレースが発生。

                 

                 

                スタックトレース

                09:16:49,293 ERROR [stderr] (http--127.0.0.1-8080-1) javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory org.jboss.naming.remote.client.InitialContextFactory from classloader ModuleClassLoader for Module "deployment.EJBCLIENT.ear.EJB_CLI.jar:main" from Service Module Loader
                09:16:49,293 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at javax.naming.InitialContext.init(InitialContext.java:242)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at javax.naming.InitialContext.<init>(InitialContext.java:216)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at test_client.GetListBean.getList(GetListBean.java:43)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at java.lang.reflect.Method.invoke(Method.java:601)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,308 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
                09:16:49,324 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.component.interceptors.EjbExceptionTransformingInterceptorFactories$1.processInvocation(EjbExceptionTransformingInterceptorFactories.java:65)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:32)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:179)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:179)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:43)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
                09:16:49,339 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at $Proxy14.getList(Unknown Source)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at test_client.TestLookupServlet.doGet(TestLookupServlet.java:47)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
                09:16:49,355 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
                09:16:49,371 ERROR [stderr] (http--127.0.0.1-8080-1)  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
                09:16:49,371 ERROR [stderr] (http--127.0.0.1-8080-1)  at java.lang.Thread.run(Thread.java:722)

                 

                 

                この方法というのは、根本的に、間違っているのかどうか
                判断が難しいです。

                単純に、ProviderURLをリモートのアドレスで指定して接続に行かせるというイメージは
                通用しないのでしょうか?

                 

                どなたか、ご教授のほどをお願いいたします。

                • 5. Re: 別サーバーからリモートでEJBをlookupする方法
                  takuyaaa

                  Developers Community にクロスポスト致しました。

                   

                  https://community.jboss.org/thread/203021?tstart=0