从另一个JBoss AS 7实例调用部署在Wildfly 8实例上的EJB

时间:2014-10-29 11:24:01

标签: jboss7.x ejb-3.0 remote-access wildfly-8

首先抱歉我的英文写得不好!

我在Wildfly 8上部署了我的EJB bean,并在wildfly 8中调用它,没有任何问题。 但当我将客户端服务器从wildfly 8更改为Jboss AS 7时,我得到“没有ejb接收器错误”。

Wildfly 8服务器端运行输出:

./standalone.sh -b 0.0.0.0 -Djboss.socket.binding.port-offset=100 -Djboss.node.name=nodeA

输出日志:

=============================================== ==========================

  JBoss Bootstrap Environment

  JBOSS_HOME: /home/amin/Programs/AS/server/wildfly-8.0.0.Final

  JAVA: /home/amin/Programs/jdk1.7.0_67/bin/java

  JAVA_OPTS:  -server -XX:+UseCompressedOops -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

14:51:58,251 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
14:51:58,645 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
14:51:58,754 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
14:52:00,083 INFO  [org.jboss.as.controller.management-deprecated] (Controller Boot Thread) JBAS014627: Attribute any-ipv4-address is deprecated, and it might be removed in future version!
14:52:00,168 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found currency-ear.ear in deployment directory. To trigger deployment create a file called currency-ear.ear.dodeploy
14:52:00,197 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
14:52:00,218 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.2.0.Final
14:52:00,232 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.2.0.Final
14:52:00,289 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 33) JBAS010280: Activating Infinispan subsystem.
14:52:00,310 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
14:52:00,331 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 39) JBAS012615: Activated the following JSF Implementations: [main]
14:52:00,368 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 46) JBAS013171: Activating Security Subsystem
14:52:00,375 INFO  [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.0.Final
14:52:00,400 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 41) JBAS011800: Activating Naming Subsystem
14:52:00,425 INFO  [org.jboss.as.security] (MSC service thread 1-4) JBAS013170: Current PicketBox version=4.0.20.Final
14:52:00,431 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 50) JBAS015537: Activating WebServices Extension
14:52:00,511 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-2) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.3.Final)
14:52:00,561 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010417: Started Driver service with driver-name = h2
14:52:00,601 INFO  [org.jboss.as.naming] (MSC service thread 1-4) JBAS011802: Starting Naming Service
14:52:00,614 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-3) JBAS017502: Undertow 1.0.0.Final starting
14:52:00,615 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 49) JBAS017502: Undertow 1.0.0.Final starting
14:52:00,620 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-3) JBAS015400: Bound mail session [java:jboss/mail/Default]
14:52:00,816 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 49) JBAS017527: Creating file handler for path /home/amin/Programs/AS/server/wildfly-8.0.0.Final/welcome-content
14:52:00,836 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-2) JBAS017525: Started server default-server.
14:52:00,840 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017531: Host default-host starting
14:52:01,043 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-3) JBAS017519: Undertow HTTP listener default listening on /0.0.0.0:8180
14:52:01,429 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
14:52:01,485 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) JBAS015012: Started FileSystemDeploymentService for directory /home/amin/Programs/AS/server/wildfly-8.0.0.Final/standalone/deployments
14:52:01,496 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "ojdbc7-12.1.0.1.0.jar" (runtime-name: "ojdbc7-12.1.0.1.0.jar")
14:52:01,497 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015876: Starting deployment of "currency-ear.ear" (runtime-name: "currency-ear.ear")
14:52:02,474 INFO  [org.jboss.ws.common.management] (MSC service thread 1-4) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.2.3.Final
14:52:03,704 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 12.1)
14:52:03,797 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) JBAS010417: Started Driver service with driver-name = ojdbc7-12.1.0.1.0.jar
14:52:03,801 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:/currencyDS]
14:52:04,402 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015876: Starting deployment of "null" (runtime-name: "currency-ejb.jar")
14:52:04,402 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "null" (runtime-name: "currency-web.war")
14:52:04,605 INFO  [org.jboss.as.jpa] (MSC service thread 1-1) JBAS011401: Read persistence.xml for currencyexchange
14:52:04,739 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/currencyDS]
14:52:04,756 INFO  [org.jboss.weld.deployer] (MSC service thread 1-3) JBAS016002: Processing weld deployment currency-ear.ear
14:52:04,757 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 52) JBAS011402: Starting Persistence Unit Service 'currency-ear.ear/currency-ejb.jar#currencyexchange'
14:52:04,903 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-3) HV000001: Hibernate Validator 5.0.3.Final
14:52:05,151 INFO  [org.jboss.weld.deployer] (MSC service thread 1-1) JBAS016002: Processing weld deployment currency-web.war
14:52:05,391 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.385--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The access type for the persistent class [class ir.jnf.currency.model.currencylog.CurrencyLog] is set to [FIELD].
14:52:05,428 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.427--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The target entity (reference) class for the many to one mapping element [field currency] is being defaulted to: class ir.jnf.currency.model.currency.Currency.
14:52:05,429 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.429--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The access type for the persistent class [class ir.jnf.currency.model.currency.Currency] is set to [FIELD].
14:52:05,442 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.442--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The target entity (reference) class for the one to many mapping element [field currencyLogs] is being defaulted to: class ir.jnf.currency.model.currencylog.CurrencyLog.
14:52:05,444 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.444--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The alias name for the entity class [class ir.jnf.currency.model.currencylog.CurrencyLog] is being defaulted to: CurrencyLog.
14:52:05,468 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.468--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The column name for element [price] is being defaulted to: PRICE.
14:52:05,469 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.469--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The column name for element [curlogid] is being defaulted to: CURLOGID.
14:52:05,470 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.469--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The column name for element [curlogdate] is being defaulted to: CURLOGDATE.
14:52:05,471 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.47--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The alias name for the entity class [class ir.jnf.currency.model.currency.Currency] is being defaulted to: Currency.
14:52:05,471 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.471--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The table name for entity [class ir.jnf.currency.model.currency.Currency] is being defaulted to: CURRENCY.
14:52:05,472 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.472--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The column name for element [cursymbol] is being defaulted to: CURSYMBOL.
14:52:05,472 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.472--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The column name for element [price] is being defaulted to: PRICE.
14:52:05,473 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.473--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The column name for element [curiso] is being defaulted to: CURISO.
14:52:05,491 INFO  [stdout] (ServerService Thread Pool -- 52) [EL Config]: 2014-10-29 14:52:05.49--ServerSession(612909935)--Thread(Thread[ServerService Thread Pool -- 52,5,ServerService ThreadGroup])--The primary key column name for the mapping element [field currency] is being defaulted to: CURISO.
14:52:05,662 INFO  [org.jboss.weld.deployer] (MSC service thread 1-2) JBAS016002: Processing weld deployment currency-ejb.jar
14:52:05,665 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-2) JNDI bindings for session bean named CurrencyDAO in deployment unit subdeployment "currency-ejb.jar" of deployment "currency-ear.ear" are as follows:

    java:global/currency-ear/currency-ejb/CurrencyDAO!ir.jnf.currency.dao.currency.CurrencyDAOLocal
    java:app/currency-ejb/CurrencyDAO!ir.jnf.currency.dao.currency.CurrencyDAOLocal
    java:module/CurrencyDAO!ir.jnf.currency.dao.currency.CurrencyDAOLocal
    java:global/currency-ear/currency-ejb/CurrencyDAO
    java:app/currency-ejb/CurrencyDAO
    java:module/CurrencyDAO

14:52:05,665 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-2) JNDI bindings for session bean named CurrencyLogDAO in deployment unit subdeployment "currency-ejb.jar" of deployment "currency-ear.ear" are as follows:

    java:global/currency-ear/currency-ejb/CurrencyLogDAO!ir.jnf.currency.dao.currencylog.CurrencyLogDAOLocal
    java:app/currency-ejb/CurrencyLogDAO!ir.jnf.currency.dao.currencylog.CurrencyLogDAOLocal
    java:module/CurrencyLogDAO!ir.jnf.currency.dao.currencylog.CurrencyLogDAOLocal
    java:global/currency-ear/currency-ejb/CurrencyLogDAO
    java:app/currency-ejb/CurrencyLogDAO
    java:module/CurrencyLogDAO

14:52:05,666 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-2) JNDI bindings for session bean named CurrencyLogService in deployment unit subdeployment "currency-ejb.jar" of deployment "currency-ear.ear" are as follows:

    java:global/currency-ear/currency-ejb/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceLocal
    java:app/currency-ejb/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceLocal
    java:module/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceLocal
    java:global/currency-ear/currency-ejb/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceRemote
    java:app/currency-ejb/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceRemote
    java:module/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceRemote
    java:jboss/exported/currency-ear/currency-ejb/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceRemote

14:52:05,667 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-2) JNDI bindings for session bean named CurrencyService in deployment unit subdeployment "currency-ejb.jar" of deployment "currency-ear.ear" are as follows:

    java:global/currency-ear/currency-ejb/CurrencyService!ir.jnf.currency.service.currency.CurrencyServiceLocal
    java:app/currency-ejb/CurrencyService!ir.jnf.currency.service.currency.CurrencyServiceLocal
    java:module/CurrencyService!ir.jnf.currency.service.currency.CurrencyServiceLocal
    java:global/currency-ear/currency-ejb/CurrencyService
    java:app/currency-ejb/CurrencyService
    java:module/CurrencyService

14:52:05,703 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 12.1)
14:52:05,704 INFO  [org.jboss.weld.deployer] (MSC service thread 1-4) JBAS016005: Starting Services for CDI deployment: currency-ear.ear
14:52:05,737 INFO  [org.jboss.weld.Version] (MSC service thread 1-4) WELD-000900: 2.1.2 (Final)
14:52:05,782 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010417: Started Driver service with driver-name = currency-ear.ear_oracle.jdbc.OracleDriver_12_1
14:52:05,783 INFO  [org.jboss.weld.deployer] (MSC service thread 1-3) JBAS016008: Starting weld service for deployment currency-ear.ear
14:52:07,320 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-1) Initializing Mojarra 2.2.5-jbossorg-3 20140128-1641 for context '/currency-web'
14:52:08,935 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-1) JBAS017534: Registered web context: /currency-web
14:52:09,046 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "ojdbc7-12.1.0.1.0.jar" (runtime-name : "ojdbc7-12.1.0.1.0.jar")
14:52:09,047 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "currency-ear.ear" (runtime-name : "currency-ear.ear")
14:52:09,175 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:10090/management
14:52:09,175 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:10090
14:52:09,176 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 11254ms - Started 524 of 595 services (115 services are lazy, passive or on-demand)

Jboss客户端配置: 我在Wildfly 8服务器端创建一个应用程序用户并将密码转换为base64并将其放在jboss客户端standalone.xml中:

    <security-realms>
        <security-realm name="ejb-security-realm">
            <server-identities>
                <secret value="YWRtaW4y"/>
            </server-identities>
        </security-realm>

我添加了出站连接:

    <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="admin" 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>

和出站套接字绑定:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
    <socket-binding name="ajp" port="8009"/>
    <socket-binding name="http" port="8080"/>
    <socket-binding name="https" port="8443"/>
    <socket-binding name="osgi-http" interface="management" port="8090"/>
    <socket-binding name="remoting" port="4447"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
    <outbound-socket-binding name="remote-ejb">
        <remote-destination host="localhost" port="8180"/>
    </outbound-socket-binding>
</socket-binding-group>

我创建了jboss-ejb-client.xml并将其放在客户端JSP项目META-INF上:

<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>

运行客户端Jboss AS 7:

./ standalone.sh -Djboss.node.name = nodeB     ================================================== =======================

  JBoss Bootstrap Environment

  JBOSS_HOME: /home/amin/Programs/AS/client/jboss-as-7.1.1.Final

  JAVA: /home/amin/Programs/jdk1.7.0_67/bin/java

  JAVA_OPTS:  -server -XX:+UseCompressedOops -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml

=========================================================================

15:08:26,841 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
15:08:27,006 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
15:08:27,056 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
15:08:27,892 INFO  [org.xnio] XNIO Version 3.0.3.GA
15:08:27,899 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
15:08:27,906 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
15:08:27,926 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
15:08:27,985 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
15:08:28,002 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
15:08:28,049 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
15:08:28,111 INFO  [org.jboss.as.connector] (MSC service thread 1-1) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
15:08:28,120 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
15:08:28,128 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
15:08:28,135 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
15:08:28,142 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
15:08:28,177 INFO  [org.jboss.as.security] (MSC service thread 1-4) JBAS013100: Current PicketBox version=4.0.7.Final
15:08:28,212 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
15:08:28,263 INFO  [org.jboss.as.naming] (MSC service thread 1-2) JBAS011802: Starting Naming Service
15:08:28,265 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-3) JBAS015400: Bound mail session [java:jboss/mail/Default]
15:08:28,464 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-3) JBoss Web Services - Stack CXF Server 4.0.2.GA
15:08:28,561 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-4) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080
15:08:28,842 INFO  [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on /127.0.0.1:4447
15:08:28,843 INFO  [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:9999
15:08:28,883 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) JBAS015012: Started FileSystemDeploymentService for directory /home/amin/Programs/AS/client/jboss-as-7.1.1.Final/standalone/deployments
15:08:28,888 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found currencyJspClient.war in deployment directory. To trigger deployment create a file called currencyJspClient.war.dodeploy
15:08:28,954 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
15:08:28,994 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "currencyJspClient.war"
15:08:35,796 INFO  [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /currencyJspClient
15:08:35,813 INFO  [org.jboss.as] (MSC service thread 1-4) JBAS015951: Admin console listening on http://127.0.0.1:9990
15:08:35,813 INFO  [org.jboss.as] (MSC service thread 1-4) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 9189ms - Started 174 of 254 services (79 services are passive or on-demand)
15:08:35,925 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "currencyJspClient.war"

当我转到下面的链接时:

http://localhost:8080/currencyJspClient/

我有这个错误:

15:10:37,868 INFO  [org.jboss.ejb.client] (http--127.0.0.1-8080-1) JBoss EJB Client version 1.0.5.Final
15:10:42,877 ERROR [stderr] (http--127.0.0.1-8080-1) java.lang.IllegalStateException: No EJB receiver available for handling [appName:currency-ear,modulename:currency-ejb,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@36ae4b6f
15:10:42,878 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
15:10:42,880 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
15:10:42,881 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
15:10:42,882 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
15:10:42,883 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
15:10:42,884 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
15:10:42,885 ERROR [stderr] (http--127.0.0.1-8080-1)    at com.sun.proxy.$Proxy10.currencyLogFindAllRemote(Unknown Source)
15:10:42,886 ERROR [stderr] (http--127.0.0.1-8080-1)    at currencyJspClient.Farakhani.farakh(Farakhani.java:25)
15:10:42,886 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.jsp.index_jsp._jspService(index_jsp.java:67)
15:10:42,887 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
15:10:42,888 ERROR [stderr] (http--127.0.0.1-8080-1)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
15:10:42,889 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
15:10:42,890 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326)
15:10:42,890 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253)
15:10:42,891 ERROR [stderr] (http--127.0.0.1-8080-1)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
15:10:42,892 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
15:10:42,892 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
15:10:42,893 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
15:10:42,893 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
15:10:42,894 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
15:10:42,894 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
15:10:42,896 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
15:10:42,897 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
15:10:42,897 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
15:10:42,904 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
15:10:42,904 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
15:10:42,904 ERROR [stderr] (http--127.0.0.1-8080-1)    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
15:10:42,905 ERROR [stderr] (http--127.0.0.1-8080-1)    at java.lang.Thread.run(Thread.java:745)

我还将Wildfly 8客户端库添加到lib文件夹

这是我的jsp客户端应用程序部署的war文件树:

├── index.jsp
├── META-INF
│   ├── jboss-ejb-client.xml
│   └── MANIFEST.MF
└── WEB-INF
    ├── classes
    │   ├── currencyJspClient
    │   │   └── Farakhani.class
    │   ├── ir
    │   │   └── jnf
    │   │       └── currency
    │   │           ├── model
    │   │           │   ├── currency
    │   │           │   │   └── Currency.class
    │   │           │   └── currencylog
    │   │           │       └── CurrencyLog.class
    │   │           └── service
    │   │               └── currencylog
    │   │                   └── CurrencyLogServiceRemote.class
    │   └── main
    │       └── Main.class
    └── lib
        ├── eclipselink-2.5.0.jar
        ├── javax.persistence-2.1.0.jar
        ├── jboss-client.jar
        └── jboss-ejb-api_3.1_spec-1.0.2.Final.jar

谢谢你。

3 个答案:

答案 0 :(得分:1)

我的查找代码:

public void farakh() {
    try {
        Properties properties = new Properties();
        properties.put(Context.URL_PKG_PREFIXES,
                "org.jboss.ejb.client.naming");
        Context context = new InitialContext(properties);

        String name = "ejb:currency-ear/currency-ejb/CurrencyLogService!ir.jnf.currency.service.currencylog.CurrencyLogServiceRemote";
        CurrencyLogServiceRemote bean = (CurrencyLogServiceRemote) context
                .lookup(name);
        System.out.println(bean.currencyLogFindAllRemote());

    } catch (Exception e) {
        e.printStackTrace();
    }
}

答案 1 :(得分:0)

在战争部署中,jboss-ejb-client.xml预计会放在.war/WEB-INF/文件夹中。

另见EJB invocations from a remote server instance

修改

经过多次测试,我得出了这些结果。

<强>上下文

  • 在JBoss 7.1.1中运行的Ejb应用程序
  • 在Wildfly 8.1中运行的Ejb客户端(Web应用程序)

您是对的,jboss-ejb-client.xml必须放在Web应用程序的WEB-INF/META-INF文件夹中(文档不正确)。

无法使用远程身份验证启用调用,在远程执行之间存在不兼容性。这会在身份验证期间产生此错误:

在客户端服务器中:

Remote connection failed: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed

在Ejb服务器中:

TRACE [org.jboss.sasl.digest.server] (Remoting "test-ejb" task-2) Username: ejb
TRACE [org.jboss.sasl.digest.server] (Remoting "test-ejb" task-2) Client negotiated realm: ApplicationRealm
TRACE [org.jboss.sasl.digest.server] (Remoting "test-ejb" task-2) Client negotiated qop: auth
TRACE [org.jboss.sasl.digest.server] (Remoting "test-ejb" task-2) DIGEST87:digest URI: remoting/localhost
TRACE [org.jboss.remoting.remote.server] (Remoting "test-ejb" task-2) Server sending authentication rejected (javax.security.sasl.SaslException: DIGEST-MD5: digest response format violation. Mismatched URI: remoting/localhost; expecting: remote/localhost)

也可以:Remote EAP 6.3 does not accept passwordJBoss EAP 6.3 clients can not authenticate with a username and password (Digest auth) against older EAP 6 versions

此问题的解决方法是停用远程处理身份验证,您可以执行此操作,从security-realm="ApplicationRealm"删除username="ejb"属性以及security-realm="ejb-security-realm"remote-outbound-connection属性。

<强>例如

服务器

<subsystem xmlns="urn:jboss:domain:remoting:1.1">
    <connector name="remoting-connector" socket-binding="remoting"/>
</subsystem>

客户端(服务器):

<remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" protocol="remote">
    <properties>
        <property name="SASL_POLICY_NOANONYMOUS" value="false"/>
        <property name="SSL_ENABLED" value="false"/>
    </properties>
</remote-outbound-connection>

或者在两台服务器上使用相同版本的JBoss。如果在JBoss 7.1.1中运行Ejb客户端,则会出现相同的probem

示例应用程序:https://github.com/fedesierr/remote-ejb-wildfly-jboss7

答案 2 :(得分:0)

当然,即使您的客户端部署在Wildfly实例中,您也可以调用部署在JBoss EAP 6.x / AS 7中的远程ejb。

由于JBoss AS 7 / EAP 6.x使用remote作为其远程协议,因此您可以在Wildfly实例的protocol="remote"属性中添加remote-outbound-connection属性。

<remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="admin" security-realm="ejb-security-realm" protocol="remote">
    <properties>
        <property name="SASL_POLICY_NOANONYMOUS" value="false"/>
        <property name="SSL_ENABLED" value="false"/>
    </properties>
</remote-outbound-connection>