[
https://issues.jboss.org/browse/AS7-5172?page=com.atlassian.jira.plugin.s...
]
John Mazzitelli commented on AS7-5172:
--------------------------------------
Can you point which EE spec document says something about META-INF
being a location for classes?
If it's not a standard one, then this issue shouldn't be fixed.
This issue isn't to allow *classes* to be loadable from within META-INF. Rather, the
file "services/org.jboss.msc.service.ServiceActivator" under META-INF is not
being picked up from within a WAR. At least, that's the issue that I had which caused
me to write this JIRA. It didn't involve Java classes per-se.
cannot define service activator in WAR META-INF, must be in WAR
WEB-INF/classes/META-INF
----------------------------------------------------------------------------------------
Key: AS7-5172
URL:
https://issues.jboss.org/browse/AS7-5172
Project: Application Server 7
Issue Type: Bug
Affects Versions: 7.1.1.Final
Reporter: John Mazzitelli
Priority: Minor
Attachments: AS7-5172-fix.diff, AS7-5172-testcase.diff, ManagementService.java
(note: I talked to dmlloyed on this in #jboss-as7 - he thinks its a bug, hence why I am
filing this JIRA)
I have a WAR. I want it to have a service activator in it (I want it to install an MSC
service). So, in the WAR's META-INF directory, I create a
"services/org.jboss.msc.service.ServiceActivator" file with the appropriate
content.
The service fails to activate.
However, if I put that same META-INF content in my WAR's WEB-INF/classes directory
(that is, my WAR has a
WEB-INF/classes/META-INF/services/org.jboss.msc.service.ServiceActivator), my service
activates fine.
I will attach a .war file that you can use to test this. To see what I'm taking
about, take the attached war and explode it inside the standalone/deployments directory in
AS 7.1.1.Final. Run the app server - you will see in the output this:
INFO [stdout] (MSC service thread 1-5) $$$$$$$$$$$$$$$$ SERVICE ACTIVATING!
(this output comes from my ServiceActivator's activate() method - it does a
System.out.println as soon as activate() is entered).
This shows the WEB-INF/classes/META-INF/services being honored. Now shutdown the app
server, cd to the deployments directory and cd down into the exploded war directory. Now
move that services/ content directly up to the WAR's own META-INF directory:
mv WEB-INF/classes/META-INF/services META-INF/
Now run the app server again. Notice you do NOT see the "SERVICE ACTIVATING"
message.
So it appears the WAR's META-INF/services is ignored when looking for service
activators, but when the same services marker file is in
WEB-INF/classes/META-INF/services, it works fine.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira