部署在WildFly上的EJB客户端,调用另一个WildFly上的EJB服务的过程详解

来源:互联网 发布:p2p数据分析报告 编辑:程序博客网 时间:2024/05/16 07:37

本文是前一篇博文的继续,应用的场景如下:

    EJB服务开发完毕后,以ear或jar的方式部署在一个WildFly服务器上;

    EJB客户端开发(详解前一篇博文)完毕后,以war的方式(也可以是另外一个ear)部署在另一个WildFly服务器上。


对于部署EJB服务的WildFly服务器,除了前文介绍的添加必要的用户之外,无需任何额外的设置。

对于部署EJB客户端的WildFly服务器,还需要进行如下配置:

1.      将有效用户的密码进行base64加密

可以通过通用工具将密码的明文转换为密文

2.      创建安全域以发送用户认证信息到EJB服务器

编辑standlaone-full.xml如下:

<management>

        <security-realms>

            ...

            <security-realmname="ejb-security-realm">

                <server-identities>

                    <secretvalue="dGVzdA=="/>

                </server-identities>

            </security-realm>

        </security-realms>

其中的secret值就是EJB服务器设置的密码test的base64密文

3.      创建端口绑定

编辑standlaone-full.xml如下:

<socket-binding-groupname="standard-sockets"default-interface="public"port-offset="${jboss.socket.binding.port-offset:0}">

        ...

        <outbound-socket-bindingname="remote-ejb">

            <remote-destinationhost="10.87.140.129"port="8080"/>

        </outbound-socket-binding>

</socket-binding-group>

其中的host就是EJB服务器的IP,port就是EJB服务器的端口(默认为8080)

4.      创建远程连接

编辑standlaone-full.xml如下:

<subsystemxmlns="urn:jboss:domain:remoting:3.0">

....

            <outbound-connections>

                <remote-outbound-connectionname="remote-ejb-connection"outbound-socket-binding-ref="remote-ejb"protocol="http-remoting"security-realm="ejb-security-realm"username="ejb">

                    <properties>

                        <propertyname="SASL_POLICY_NOANONYMOUS"value="false"/>

                        <propertyname="SSL_ENABLED"value="false"/>

                    </properties>

                </remote-outbound-connection>

            </outbound-connections>

</subsystem>

其中的username就是EJB服务器设置的有效用户名

5.      EJB客户端的打包及jboss-ejb-client.xml文件

jboss-ejb-client.xml文件内容如下:

<jboss-ejb-clientxmlns="urn:jboss:ejb-client:1.2">

    <client-context>

        <ejb-receivers>

            <remoting-ejb-receiveroutbound-connection-ref="remote-ejb-connection"/>

        </ejb-receivers>

    </client-context>

</jboss-ejb-client>

对于EAR打包方式,jboss-ejb-client.xml文件位于META-INF/jboss-ejb-client.xml。

对于WAR打包方式,jboss-ejb-client.xml文件位于WEB-INF/jboss-ejb-client.xml。


至此完成所有配置,重启 EJB客户端所在的WildFly服务器,即可看到EJB调用的日志信息。


参考文献:

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


1 0
原创粉丝点击