-
Bug
-
Resolution: Done
-
Major
-
7.4.21.GA
-
False
-
None
-
False
-
-
-
-
-
-
+
-
-
With EJB with the local business interface:
@javax.ejb.Local public interface My { public void process(String dies); public void process(String dies, String[] das); }
The EJB itself is defined as SLSB in the ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd" version="3.2"> <module-name>aa_jboss_ejb</module-name> <enterprise-beans> <session> <ejb-name>My</ejb-name> <business-local>de.My</business-local> <ejb-class>de.MyBeanImpl</ejb-class> <session-type>Stateless</session-type> </session> </enterprise-beans> <assembly-descriptor> <interceptor-binding> <ejb-name>My</ejb-name> <interceptor-class>de.MyInterceptor</interceptor-class> <method> <method-name>process</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </method> </interceptor-binding> <interceptor-binding> <ejb-name>My</ejb-name> <interceptor-class>de.MyInterceptor</interceptor-class> <method> <method-name>process</method-name> <method-params> <method-param>java.lang.String</method-param> <method-param>java.lang.String[]</method-param> </method-params> </method> </interceptor-binding> </assembly-descriptor> </ejb-jar>
This leads to a failed deployment:
16:28:26,495 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."aa_jboss_interceptor_ejb-1.0.0-SNAPSHOT.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."aa_jboss_interceptor_ejb-1.0.0-SNAPSHOT.jar".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment "aa_jboss_interceptor_ejb-1.0.0-SNAPSHOT.jar" at org.jboss.as.server@15.0.40.Final-redhat-00002//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:189) at org.jboss.msc@1.4.13.Final-redhat-00001//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739) at org.jboss.msc@1.4.13.Final-redhat-00001//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701) at org.jboss.msc@1.4.13.Final-redhat-00001//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559) at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990) at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEJB0261: Could not find method de.MyBeanImpl.process with parameter types [java.lang.String, java.lang.String[]] referenced in ejb-jar.xml at org.jboss.as.ejb3@7.4.21.GA-redhat-00001//org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorInterceptorBindingsProcessor.deploy(DeploymentDescriptorInterceptorBindingsProcessor.java:222) at org.jboss.as.server@15.0.40.Final-redhat-00002//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:182) ... 8 more
When changing the ejb-jar.xml to:
<?xml version="1.0" encoding="UTF-8"?> ... <interceptor-binding> <ejb-name>My</ejb-name> <interceptor-class>de.MyInterceptor</interceptor-class> <method> <method-name>process</method-name> <method-params> <method-param>java.lang.String</method-param> <method-param>[Ljava.lang.String;</method-param> </method-params> </method> </interceptor-binding> </assembly-descriptor> </ejb-jar>
The deployment is sucessful.
This looks to be a bug in DeploymentDescriptorInterceptorBindingsProcessor.java where a wrong comparison seem to be made if the paramter is an array?
- incorporates
-
WFLY-20432 EJB: String[] method parameter and overriden methods in ejb-jar.xml interceptor-binding is failing to deploy
-
- Closed
-
- is cloned by
-
JBEAP-29492 [GSS](8.1.0.GA) WFLY-20432 - EJB: String[] method parameter in ejb-jar.xml interceptor-binding is failing to deploy
-
- Verified
-
-
JBEAP-29491 [GSS](8.0.z) WFLY-20432 - EJB: String[] method parameter in ejb-jar.xml interceptor-binding is failing to deploy
-
- Verified
-