[jboss-jira] [JBoss JIRA] (WFLY-12462) Incompatible conflicting binding Exception and EJB naming
Jaikiran Pai (Jira)
issues at jboss.org
Wed Sep 4 08:30:00 EDT 2019
[ https://issues.jboss.org/browse/WFLY-12462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13779155#comment-13779155 ]
Jaikiran Pai commented on WFLY-12462:
-------------------------------------
[~usharik], I have followed almost the exact steps that you mention with the application that you shared. I haven't used maven WildFly plugin for deployment, but I have manually copied the war into the standalone/deployments directory when the server was up and running. I haven't see any issues. I don't think the Maven WildFly plugin is playing a role in this.
So I went and looked in a bit more detail, the WildFly code where this java:jboss/exported bindings are done for the EJBs (it's in org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor). Unlike other bindings, this one has some special code to handle the binding, so it's one hint that there might really be a potential issue here. The code here uses a "wrapped" binding depending on whether or not "request-controller" subsystem is active. Default installations of WildFly have that subsystem active. Then, there's another piece of code (org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor) where there's a check for equality for the "source" of these bindings and that's where this check is failing and logging the exception for you:
{quote}
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 at 73fbe2f8
at org.jboss.as.ee at 17.0.1.Final//org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.addJndiBinding(ModuleJndiBindingProcessor.java:298)
at org.jboss.as.ee at 17.0.1.Final//org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:122)
at org.jboss.as.server at 9.0.2.Final//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:176)
... 8 more
{quote}
It's been a while since I have looked into this code so I have more than one question (for myself) to understand what this code is doing and why, but there seem to be enough hints to suggest that you might indeed be running into some sort of a bug.
We might need your help to debug this further. Is this consistently reproducible for you? If yes, it's a good sign. In that case, can you edit your standalone-full.xml file which currently will have something like this:
{code}
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
{code}
As a first step, stop your server, then edit this file and delete that line from that file. Then start your server and deploy the application. Let us know what happens and whether or not your application deployment succeeds. Try it a few times to get some consistent results.
It won't solve anything but will give us enough hints to focus in the right place.
> Incompatible conflicting binding Exception and EJB naming
> ---------------------------------------------------------
>
> Key: WFLY-12462
> URL: https://issues.jboss.org/browse/WFLY-12462
> Project: WildFly
> Issue Type: Bug
> Components: CDI / Weld, EJB
> Affects Versions: 17.0.1.Final
> Environment: MacOS High Sierra
> Reporter: Alexey Usharovski
> Assignee: Cheng Fang
> Priority: Minor
> Attachments: server.log.zip, simplewebapp-lesson-6-ejb.zip, war-content.txt.zip
>
>
> Wired exception for very simple EJB with @Remote annotated interface in time of deploy to WildFly 17.0.1.Final
> {code:java}
> @Stateless
> public class UserServiceImpl implements UserServiceRemote {
> @Override
> public List<UserRepr> getAllUsers() {
> return null;
> }
> }
> @Remote
> public interface UserServiceRemote {
> List<UserRepr> getAllUsers();
> }
> {code}
> The exception is
> {code}
> 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 at 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]" ] }
> {code}
> Notice that problem could be resolved by undeploy and Wildfly server restart. May be something wrong with JNDI content?
> I've tried to look through the web console but found nothing interesting.
> Full application code on GitHub https://github.com/usharik/simplewebapp/tree/lesson-6-ejb
--
This message was sent by Atlassian Jira
(v7.13.5#713005)
More information about the jboss-jira
mailing list