Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-10277

Unable to parse EJB client connections when running using app-client and wildfly-config.xml

XMLWordPrintable

      Running an EJB client using app-client.
      contents of wildfly-config.xml:

      <configuration>                                                                                                                                                                               
          <authentication-client xmlns="urn:elytron:1.0">
              <authentication-rules>
                  <rule use-configuration="default"/>
              </authentication-rules>
              <authentication-configurations>
                  <configuration name="default">
                      <allow-sasl-mechanisms names="DIGEST-MD5"/>
                      <forbid-sasl-mechanisms names="JBOSS-LOCAL-USER"/>
                      <set-user-name name="joe"/>
                      <credentials>
                          <clear-password password="joeIsAwesome2013!"/>
                      </credentials>
                  </configuration>
              </authentication-configurations>
          </authentication-client>
          <jboss-ejb-client xmlns="urn:jboss:wildly-client-ejb:3.0">
              <connections>
                  <connection uri="remote+http://127.0.0.8:8080" />
              </connections>
          </jboss-ejb-client>
      </configuration>
      

      The client code (in the main method) initializes an InitialContext by just specifying the WildFlyInitialContextFactory class name, without PROVIDER_URL, and then attempts to invoke EJBs.

      If the <jboss-ejb-client> element is present in the wildfly-config.xml, it fails with

      09:13:40,798 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.ejb3.ejbClientContext.default: org.jboss.msc.service.StartException in service jboss.ejb3.ejbClientContext.default: Failed to start service
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1978) [jboss-msc-1.2.7.SP1-redhat-1.jar:1.2.7.SP1-redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_65]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_65]
      	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_65]
      Caused by: java.lang.ExceptionInInitializerError
      	at org.jboss.ejb.client.EJBClientContext.<clinit>(EJBClientContext.java:106) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.ejb.client.EJBClientContext$Builder.build(EJBClientContext.java:650) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.as.ejb3.remote.EJBClientContextService.start(EJBClientContextService.java:122)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032) [jboss-msc-1.2.7.SP1-redhat-1.jar:1.2.7.SP1-redhat-1]
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955) [jboss-msc-1.2.7.SP1-redhat-1.jar:1.2.7.SP1-redhat-1]
      	... 3 more
      Caused by: java.lang.IllegalArgumentException: Illegal namespace index 0; current scope only has 0 namespace declarations.
      	at com.ctc.wstx.sr.InputElementStack.throwIllegalIndex(InputElementStack.java:1057) [woodstox-core-5.0.3.redhat-1.jar:5.0.3.redhat-1]
      	at com.ctc.wstx.sr.InputElementStack.getLocalNsURI(InputElementStack.java:1050) [woodstox-core-5.0.3.redhat-1.jar:5.0.3.redhat-1]
      	at com.ctc.wstx.sr.BasicStreamReader.getNamespaceURI(BasicStreamReader.java:837) [woodstox-core-5.0.3.redhat-1.jar:5.0.3.redhat-1]
      	at org.wildfly.client.config.BasicXMLStreamReader.getNamespaceURI(BasicXMLStreamReader.java:240)
      	at org.wildfly.client.config.AbstractDelegatingXMLStreamReader.getNamespaceURI(AbstractDelegatingXMLStreamReader.java:188)
      	at org.wildfly.client.config.AbstractDelegatingXMLStreamReader.getNamespaceURI(AbstractDelegatingXMLStreamReader.java:188)
      	at org.jboss.ejb.client.ConfigurationBasedEJBClientContextSelector.parseConnectionType(ConfigurationBasedEJBClientContextSelector.java:221) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.ejb.client.ConfigurationBasedEJBClientContextSelector.parseConnectionsType(ConfigurationBasedEJBClientContextSelector.java:205) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.ejb.client.ConfigurationBasedEJBClientContextSelector.parseEJBClientType(ConfigurationBasedEJBClientContextSelector.java:108) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.ejb.client.ConfigurationBasedEJBClientContextSelector.parseEJBClientConfiguration(ConfigurationBasedEJBClientContextSelector.java:83) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.ejb.client.ConfigurationBasedEJBClientContextSelector.loadConfiguration(ConfigurationBasedEJBClientContextSelector.java:63) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	at org.jboss.ejb.client.ConfigurationBasedEJBClientContextSelector.<clinit>(ConfigurationBasedEJBClientContextSelector.java:53) [jboss-ejb-client-4.0.0.Beta24-redhat-1.jar:4.0.0.Beta24-redhat-1]
      	... 8 more
      

      The authentication context from the wildfly-config.xml is parsed and applied correctly, but the EJB client connections are not.

      Ready-to-use reproducer project is at https://github.com/jmartisk/mock-artifacts/tree/5eeec93f6592a32d361d0ce579687b08480010af/ejbclient/appclient with instructions included.

              dlloyd@redhat.com David Lloyd
              jmartisk@redhat.com Jan Martiska
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: