Alexey  Usharovski
Alexey Usharovski

Reputation: 1442

WFLYEE0047: Incompatible conflicting binding at

Got wired exception for very simple EJB with @Remote annotated interface in time of deploy to WildFly 17.0.1.Final

@Stateless
public class UserServiceImpl implements UserServiceRemote {

   @Override
   public List<UserRepr> getAllUsers() {
      return null;
   }
}
@Remote
public interface UserServiceRemote {

    List<UserRepr> getAllUsers();
}

The exception is

Caused by: java.lang.IllegalArgumentException: WFLYEE0047: Incompatible conflicting binding at java:jboss/exported/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote source: org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor$2@6aba1c4b"},
    "WFLYCTL0412: Required services that are not installed:" => [
        "jboss.deployment.unit.\"simple-webapp.war\".beanmanager",
        "jboss.deployment.unit.\"simple-webapp.war\".WeldStartService"
    ],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.unit.\"simple-webapp.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"simple-webapp.war\".beanmanager]",
        "jboss.deployment.unit.\"simple-webapp.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"simple-webapp.war\".beanmanager, jboss.deployment.unit.\"simple-webapp.war\".WeldStartService]"
    ]
}

Could you help with some common explanation of what could be wrong here? Which bindings are conflicting?

At least what the meaning of this kind of exception? I don't know how to interpret it.

UPD. If I rename UserServiceImpl to UserServiseRemImpl it works. WTH is here?))))

UPD. Fragment from server logs with this exception

17:58:33,380 INFO  [org.jboss.as.jpa] (MSC service thread 1-5) WFLYJPA0002: Read persistence.xml for ds
17:58:33,451 INFO  [org.jboss.weld.deployer] (MSC service thread 1-1) WFLYWELD0003: Processing weld deployment simple-webapp.war
17:58:33,489 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-1) WFLYEJB0473: JNDI bindings for session bean named 'UserRepository' in deployment unit 'deployment "simple-webapp.war"' are as follows:

    java:global/simple-webapp/UserRepository!ru.geekbrains.persist.UserRepository
    java:app/simple-webapp/UserRepository!ru.geekbrains.persist.UserRepository
    java:module/UserRepository!ru.geekbrains.persist.UserRepository
    ejb:/simple-webapp/UserRepository!ru.geekbrains.persist.UserRepository
    java:global/simple-webapp/UserRepository
    java:app/simple-webapp/UserRepository
    java:module/UserRepository

17:58:33,489 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-1) WFLYEJB0473: JNDI bindings for session bean named 'RoleService' in deployment unit 'deployment "simple-webapp.war"' are as follows:

    java:global/simple-webapp/RoleService!ru.geekbrains.jsf.RoleService
    java:app/simple-webapp/RoleService!ru.geekbrains.jsf.RoleService
    java:module/RoleService!ru.geekbrains.jsf.RoleService
    ejb:/simple-webapp/RoleService!ru.geekbrains.jsf.RoleService
    java:global/simple-webapp/RoleService
    java:app/simple-webapp/RoleService
    java:module/RoleService

17:58:33,491 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 379) WFLYJPA0010: Starting Persistence Unit (phase 1 of 2) Service 'simple-webapp.war#ds'
17:58:33,497 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-1) WFLYEJB0473: JNDI bindings for session bean named 'UserServiceImpl' in deployment unit 'deployment "simple-webapp.war"' are as follows:

    java:global/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceLocal
    java:app/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceLocal
    java:module/UserServiceImpl!ru.geekbrains.jsf.UserServiceLocal
    ejb:/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceLocal
    java:global/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote
    java:app/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote
    java:module/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote
    java:jboss/exported/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote
    ejb:/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote

17:58:33,497 INFO  [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool -- 379) HHH000204: Processing PersistenceUnitInfo [
    name: ds
    ...]
17:58:33,577 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service jboss.deployment.unit."simple-webapp.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."simple-webapp.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "simple-webapp.war"
    at [email protected]//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:183)
    at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1737)
    at [email protected]//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1699)
    at [email protected]//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1557)
    at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalArgumentException: WFLYEE0047: Incompatible conflicting binding at java:jboss/exported/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote source: org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor$2@73fbe2f8
    at [email protected]//org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.addJndiBinding(ModuleJndiBindingProcessor.java:298)
    at [email protected]//org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:122)
    at [email protected]//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:176)
    ... 8 more

17:58:33,579 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 12) WFLYCTL0013: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"simple-webapp.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"simple-webapp.war\"
    Caused by: java.lang.IllegalArgumentException: WFLYEE0047: Incompatible conflicting binding at java:jboss/exported/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote source: org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor$2@73fbe2f8"},
    "WFLYCTL0412: Required services that are not installed:" => [
        "jboss.deployment.unit.\"simple-webapp.war\".beanmanager",
        "jboss.deployment.unit.\"simple-webapp.war\".WeldStartService"
    ],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.unit.\"simple-webapp.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"simple-webapp.war\".beanmanager, jboss.deployment.unit.\"simple-webapp.war\".WeldStartService]",
        "jboss.deployment.unit.\"simple-webapp.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"simple-webapp.war\".beanmanager]"
    ]
}
17:58:33,579 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 379) WFLYJPA0011: Stopping Persistence Unit (phase 1 of 2) Service 'simple-webapp.war#ds'
17:58:33,592 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0028: Stopped deployment simple-webapp.war (runtime-name: simple-webapp.war) in 12ms
17:58:33,593 ERROR [org.jboss.as.server] (management-handler-thread - 12) WFLYSRV0014: Replacement of deployment "simple-webapp.war" by deployment "simple-webapp.war" was rolled back with the following failure message:
{
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"simple-webapp.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"simple-webapp.war\"
    Caused by: java.lang.IllegalArgumentException: WFLYEE0047: Incompatible conflicting binding at java:jboss/exported/simple-webapp/UserServiceImpl!ru.geekbrains.jsf.UserServiceRemote source: org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor$2@73fbe2f8"},
    "WFLYCTL0412: Required services that are not installed:" => [
        "jboss.deployment.unit.\"simple-webapp.war\".beanmanager",
        "jboss.deployment.unit.\"simple-webapp.war\".WeldStartService"
    ],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.unit.\"simple-webapp.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"simple-webapp.war\".beanmanager, jboss.deployment.unit.\"simple-webapp.war\".WeldStartService]",
        "jboss.deployment.unit.\"simple-webapp.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"simple-webapp.war\".beanmanager]"
    ]
}
17:58:33,593 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "simple-webapp.war" (runtime-name: "simple-webapp.war")
17:58:34,214 INFO  [org.jboss.as.jpa] (MSC service thread 1-1) WFLYJPA0002: Read persistence.xml for ds
17:58:34,235 INFO  [org.jboss.weld.deployer] (MSC service thread 1-7) WFLYWELD0003: Processing weld deployment simple-webapp.war
17:58:34,239 INFO  [org.jboss.as.jpa] (ServerService Thread Pool -- 379) WFLYJPA0010: Starting Persistence Unit (phase 1 of 2) Service 'simple-webapp.war#ds'
17:58:34,239 INFO  [org.hibernate.jpa.internal.util.LogHelper] (ServerService Thread Pool -- 379) HHH000204: Processing PersistenceUnitInfo [
    name: ds
    ...]
17:58:34,260 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-7) WFLYEJB0473: JNDI bindings for session bean named 'UserServiceBean' in deployment unit 'deployment "simple-webapp.war"' are as follows:

    java:global/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceLocalBean
    java:app/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceLocalBean
    java:module/UserServiceBean!ru.geekbrains.jsf.UserServiceLocalBean
    ejb:/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceLocalBean
    java:global/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceRemoteBean
    java:app/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceRemoteBean
    java:module/UserServiceBean!ru.geekbrains.jsf.UserServiceRemoteBean
    java:jboss/exported/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceRemoteBean
    ejb:/simple-webapp/UserServiceBean!ru.geekbrains.jsf.UserServiceRemoteBean

17:58:34,260 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-7) WFLYEJB0473: JNDI bindings for session bean named 'UserRepository' in deployment unit 'deployment "simple-webapp.war"' are as follows:

    java:global/simple-webapp/UserRepository!ru.geekbrains.persist.UserRepository
    java:app/simple-webapp/UserRepository!ru.geekbrains.persist.UserRepository
    java:module/UserRepository!ru.geekbrains.persist.UserRepository
    ejb:/simple-webapp/UserRepository!ru.geekbrains.persist.UserRepository
    java:global/simple-webapp/UserRepository
    java:app/simple-webapp/UserRepository
    java:module/UserRepository

17:58:34,260 INFO  [org.jboss.as.ejb3.deployment] (MSC service thread 1-7) WFLYEJB0473: JNDI bindings for session bean named 'RoleService' in deployment unit 'deployment "simple-webapp.war"' are as follows:

    java:global/simple-webapp/RoleService!ru.geekbrains.jsf.RoleService
    java:app/simple-webapp/RoleService!ru.geekbrains.jsf.RoleService
    java:module/RoleService!ru.geekbrains.jsf.RoleService
    ejb:/simple-webapp/RoleService!ru.geekbrains.jsf.RoleService
    java:global/simple-webapp/RoleService
    java:app/simple-webapp/RoleService
    java:module/RoleService

17:58:34,322 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) WFLYJCA0005: Deploying non-JDBC-compliant driver class com.mysql.cj.jdbc.Driver (version 8.0)

Upvotes: 4

Views: 8088

Answers (5)

In my case, it arose from inconsistencies around the declared db name in the service beans.

Resolve these discrepancies and restart jboss wildfly. The .ear should install.

Upvotes: 0

octavian09
octavian09

Reputation: 159

I had this situation and I solved it by deleting TMP and DATA folders from ../wildfly_path/myApp/ folder and then restart myApp.

Upvotes: 3

Daniele Licitra
Daniele Licitra

Reputation: 1608

I've the same issue with Wildfly 16.

I'am merging two library version and I forgot to copy an implementation of an interface.

For instance I've Packet_interface with AInterface and Packet_EJB with AImplementation. In BImplementation I use AInterface.

I forgot to copy AImplementation during merge.

The first launch of the application say:

not found a class implementing AInterface, used in BImplementation

I copy the forgotten clas, compile the EAR and deploy.

Now the error is

Caused by: java.lang.IllegalArgumentException: WFLYEE0047: Incompatible conflicting binding at ... refer to another EJB randomly

If i restart and redeploy the EAR, it say that i forgot CImplementation.

So, if you forgot a class or you have an unimplemented interface, correct the problem and restart wildfly.

Upvotes: 1

merry
merry

Reputation: 11

I just encounter the same issue today: Incompatible conflicting binding at java:jboss/exported/cloud/billing/CsOt125SkuProfileServiceImplRemote source

After removing the lib from the Artifacts war, and redeploy it works well!

Upvotes: 1

VMA
VMA

Reputation: 119

I was facing a similar issue where I was running into

"Caused by: java.lang.IllegalArgumentException: WFLYEE0047: Incompatible conflicting binding at" exception

I have my Session EJBs packaged in separate ejb artifact. I used the maven-ejb-plugin in ejb artifact POM.xml file:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <configuration>
      <ejbVersion>3.0</ejbVersion>
      <generateClient>true</generateClient>
      <clientExcludes>
        <clientExclude>**/*Bean.class</clientExclude>
      </clientExcludes>
    </configuration>
  </plugin>

In your case, you can try out:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <configuration>
      <ejbVersion>3.0</ejbVersion>
      <generateClient>true</generateClient>
      <clientExcludes>
        <clientExclude>**/*Impl.class</clientExclude>
      </clientExcludes>
    </configuration>
  </plugin>

Upvotes: 1

Related Questions