Status: Open (View Workflow)
Affects Version/s: None
Fix Version/s: None
Similar Issues:Show 10 results
SOLDER-114 Error on the documentation about the logging SOLDER-64 Make Solder portable to Resin's CDI implementation SOLDER-216 Review all deviations from the original JSR-299 draft spec SOLDER-76 Incorporate use of amended Logging Tools Annotation Processor with Solder/Seam specific extension SOLDER-90 Make extension constructors public SOLDER-242 Extension classes should have a public constructor SOLDER-322 Solder Servlet extensions clashing with CDI 1.1 SOLDER-290 Rethrown checked exception should not be wrapped within ObserverException SOLDER-28 Add logging to AnnotatedTypeBuilder SOLDER-61 Write documentation for JBoss Logging
Seam-solder uses jboss-logging in the class ServletLogger (solder-impl-3.1.0.jar).
The implementation of this ServletLogger interface, was generated at the compilation time of solder-impl by using jboss-logging-generator. This generated the class ServletLogger_$logger also included in the solder-impl-3.1.0.jar.
Some classes, like ImplicitServletObjectsHolder @Inject the ServletLogger.
This is possible if and only if the ServletLogger implementation class is recognized by the CDI container. (In my case OpenWebBeans from the IBM websphere 8 container).
This ServletLogger_$logger implementation class is however no valid CDI managed bean as specified in the JSR299 specification in section: 3.1.1:
A managed bean must have an appropriate constructor - either: a) the class has a constructor with no parameter, or b) the class declares a constructor annotated @Inject.
The generated class ServletLogger_$logger has a non-default constructor (with argument 'Logger log') but does not specify the necessary @Inject on the constructor.
The result is that the class is not identified by the CDI container en thus no valid injectable managed bean is found.
(some more info can be found on: https://community.jboss.org/message/727773#727773)