[jboss-jira] [JBoss JIRA] (WFLY-2978) Wildfly ignores jboss-ejb-client.xml

Alan Chung (JIRA) issues at jboss.org
Mon Dec 8 13:25:39 EST 2014


    [ https://issues.jboss.org/browse/WFLY-2978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13026000#comment-13026000 ] 

Alan Chung commented on WFLY-2978:
----------------------------------

I have the same issue (jboss-ejb-client.xml is ignored by Wildfly). I use Wildfly 8.1.0. 

This works.
If client on server 1 is pure java client using jboss-ejb-client.properties then the         context.lookup("ejb://....") on server 1 will find the remote EJB on server 2.

This does not work.
If client on server 1 is Wildfly client serve instance using jboss-ejb-client.xml then 
the context.lookup("ejb://....") on server 1 failed to find the remote EJB on server 2.
The return object is always the local object on server 1.
Actually the  jboss-ejb-client.xml is totally ignored by Wildfly remoting. Wildfly is not even attempting to access  jboss-ejb-client.xml. I tried with/without
jboss-ejb-client.xml the result is the same. It always returns the local object on server 1. 

Your help would be much appreciated.

This is my client server configuration on server 1.

jboss-ejb-client.xml is placed under 
client-app.ear
|
|--- META-INF
|        |
|        |--- jboss-ejb-client.xml
|
|--- web.war
|        |
|        |--- WEB-INF/classes
|        |        |
|        |        |---- // classes in the web app

standalone-full.xml:
        <subsystem xmlns="urn:jboss:domain:remoting:2.0">
            <endpoint worker="default"/>
            <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
            <outbound-connections>
                <remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="wildfly" security-realm="ejb-security-realm" protocol="http-remoting">
                    <properties>
                        <property name="SASL_POLICY_NOANONYMOUS" value="false"/>
                        <property name="SSL_ENABLED" value="false"/>
                    </properties>
                </remote-outbound-connection>
            </outbound-connections>
        </subsystem>
        ..........<!--- 10.1.64.68 is server 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.1.64.68" port="8080"/>
        </outbound-socket-binding>




> Wildfly ignores jboss-ejb-client.xml
> ------------------------------------
>
>                 Key: WFLY-2978
>                 URL: https://issues.jboss.org/browse/WFLY-2978
>             Project: WildFly
>          Issue Type: Bug
>          Components: EJB, Naming, Remoting
>    Affects Versions: 8.0.0.Final
>         Environment: Spring 4.0.2, EJB
>            Reporter: ofbiz brazil
>            Assignee: Stuart Douglas
>            Priority: Critical
>
> Hi all,
> I have a project with remote EJB's running in one Wildfly server and the're some war client projects that invoked those EJB's in another Wildfly server. Even adding the descriptor  jboss-ejb-client.xml into war client projects Widlfly always says:  "No EJB receiver available for handling....". That seems Wildfly is ignoring the descriptor no matter if the file exists in WEB-INF, by the way in JBoss 7.1.1 it works perfectly.
> I added into client war projects the descripor jboss-ejb-client.xml
> {code:xml}
> <jboss-ejb-client>
> 	<client-context>
>  		<ejb-receivers>
> 			<remoting-ejb-receiver outbound-connection-ref="remote-ejb-connection" />
> 		</ejb-receivers>
> 	</client-context>
> </jboss-ejb-client>
> {code}
> In Wildfly server running EJB's the standalone.xml
> {code:xml}
> <security-realm name="ejb-security-realm">
>    <server-identities>
>            <secret value="c2Fvb3JhY2xlZGV2cGFzcw=="/>
>    </server-identities>
> </security-realm>
> {code}
> {code:xml}
> <subsystem xmlns="urn:jboss:domain:remoting:2.0">
>             <endpoint worker="default"/>
>             <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
>             <outbound-connections>
>                 <remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="ejbuser" security-realm="ejb-security-realm">
>                     <properties>
>                         <property name="SSL_ENABLED" value="false"/>
>                         <property name="SASL_POLICY_NOANONYMOUS" value="true"/>
>                         <property name="SASL_POLICY_NOPLAINTEXT" value="false"/>
>                     </properties>
>                 </remote-outbound-connection>
>             </outbound-connections>
>  </subsystem>
> {code}
> {code:xml}
>     <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
>         <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:7029}"/>
>         <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:7030}"/>
>         <socket-binding name="http" port="${jboss.http.port:7021}"/>
>         <socket-binding name="https" port="${jboss.https.port:7022}"/>
>         <socket-binding name="txn-recovery-environment" port="7025"/>
>         <socket-binding name="txn-status-manager" port="7026"/>
>         <outbound-socket-binding name="remote-ejb">
>             <remote-destination host="myserver.com" port="7021"/>
>         </outbound-socket-binding>
>     </socket-binding-group>
> {code}
> Console exception:
> {noformat}
> 10:41:20,761 INFO  [io.undertow.servlet] (MSC service thread 1-9) Initializing Spring root WebApplicationContext
> 10:41:22,540 INFO  [org.jboss.ejb.client] (MSC service thread 1-9) JBoss EJB Client version 2.0.0.Final
> 10:41:22,853 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-9) JBAS017534: Registered web context: /orca
> 10:41:22,884 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "SBBORCA.war" (runtime-name : "SBBORCA.war")
> 10:41:22,900 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://0.0.0.0:7029/management
> 10:41:22,900 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://0.0.0.0:7029
> 10:41:22,900 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 12312ms - Started 413 of 466 services (93 services are lazy, passive or on-demand)
> 10:41:45,533 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /orca/j_spring_cas_security_check: java.lang.RuntimeException: java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:SBBUserAccess, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext at 19ba64
> 	at com.sbb.spring.security.CustomUserDetailsService.loadUserByUsername(CustomUserDetailsService.java:63) [utils-1.0.0.jar:]
> 	at org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper.loadUserDetails(UserDetailsByNameServiceWrapper.java:51) [spring-security-core-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.cas.authentication.CasAuthenticationProvider.loadUserByAssertion(CasAuthenticationProvider.java:185) [spring-security-cas-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.cas.authentication.CasAuthenticationProvider.authenticateNow(CasAuthenticationProvider.java:141) [spring-security-cas-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.cas.authentication.CasAuthenticationProvider.authenticate(CasAuthenticationProvider.java:126) [spring-security-cas-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156) [spring-security-core-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$AuthenticationManagerDelegator.authenticate(WebSecurityConfigurerAdapter.java:431) [spring-security-config-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.cas.web.CasAuthenticationFilter.attemptAuthentication(CasAuthenticationFilter.java:242) [spring-security-cas-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:211) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) [spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) [spring-security-web-3.2.1.RELEASE.jar:3.2.1.RELEASE]
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) [spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) [spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177) [spring-orm-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) [spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
> 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
> 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
> 	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
> Caused by: java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:SBBUserAccess, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext at 19ba64
> 	at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:749) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:253) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:198) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:181) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:144) [jboss-ejb-client-2.0.0.Final.jar:2.0.0.Final]
> 	at com.sun.proxy.$Proxy89.findByUserProfile(Unknown Source)
> 	at com.sbb.spring.security.UserProfileGrantedAuthoritiesLoader.loadAuthorities(UserProfileGrantedAuthoritiesLoader.java:44) [utils-1.0.0.jar:]
> 	at com.sbb.spring.security.CustomUserDetailsService.loadUserByUsername(CustomUserDetailsService.java:55) [utils-1.0.0.jar:]
> 	... 52 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.8#6338)


More information about the jboss-jira mailing list