[jboss-user] [EJB 3.0] - Question about injecting env-entry into interceptor

mark.bramnik do-not-reply at jboss.com
Tue Sep 5 06:10:06 EDT 2006


Hi
I'm a newbie in the JBOSS world and I've got a problem with env-entry declaration.
I have an ejb-jar.xml with declared interceptor for EJB3 SLSB.
I'm trying to inject the environment entry into the interceptor, and it doen't work.
It seems like jboss merely ignores this declaration- interception mechanism works fine but injection doesn't.
When I'm trying to inject the same env-entry declaration into SLSB bean everything works just fine.
As far as I understand xsd allows me to do such an injection into interceptor.

I'm using JBOSS 4.0.4 GA + EJB3-RC8 on Windows 2000 OS.

Any help is highly appreciated



Thanks in advance.

Mark Bramnik

The relevant code looks like this:

ejb-jar.xml

  | <?xml version="1.0"?>
  | <ejb-jar xmlns="http://http://java.sun.com/xml/ns/javaee"
  |          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  |          http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
  |          version="3.0">
  |  <enterprise-beans>
  |    <session>
  |      <ejb-name>SampleDataServiceEJB</ejb-name>
  |      <ejb-class>xxx.LocalDataServiceEJB</ejb-class>
  |      <env-entry>
  |        <env-entry-name>maxExceptions</env-entry-name>
  |        <env-entry-type>java.lang.Integer</env-entry-type>
  |        <env-entry-value>15</env-entry-value>
  |        <injection-target>
  |           <injection-target-class>xxx.SampleDataServiceEJB</injection-target-class>
  |           <injection-target-name>maxExceptions</injection-target-name>
  |        </injection-target>
  |       </env-entry>
  |    </session>
  |  </enterprise-beans>
  | 
  |  <interceptors> 
  |    <interceptor>
  |      <interceptor-class>xxx.SampleLoggingContextInterceptor</interceptor-class>
  |      <around-invoke>
  |         <method-name>interceptLog</method-name>
  |      </around-invoke>
  |      <env-entry>
  |        <env-entry-name>minExceptions</env-entry-name>
  |        <env-entry-type>java.lang.Integer</env-entry-type>
  |        <env-entry-value>10</env-entry-value>
  |        <injection-target>
  |           <injection-target-class>xxx.SampleLoggingContextInterceptor</injection-target-class>
  |           <injection-target-name>minExceptions</injection-target-name>
  |        </injection-target>
  |       </env-entry>
  |    </interceptor>      
  |  </interceptors>
  | 
  | 
  |  <assembly-descriptor>
  |    <interceptor-binding>
  |      <ejb-name>*</ejb-name>
  |      <interceptor-class>xxx.SampleLoggingContextInterceptor</interceptor-class>      
  |    </interceptor-binding>
  |  </assembly-descriptor>
  | </ejb-jar>    
  | 
SLSB:
package xxx;
  | 
  | import javax.ejb.Stateless;
  | import javax.ejb.Local;
  | import javax.annotation.Resource;
  | 
  | @Stateless
  | @Local(SampleDataService.class)
  | public class SampleDataServiceEJB implements SampleDataService {
  |   @Resource(name="maxExceptions")
  |   private int maxExceptions;
  | 
  |   public int getMaxExceptions() {
  |     return maxExceptions;
  |   } 
  | 
  |   public void setMaxExceptions(int maxExceptions) {
  |     this.maxExceptions = maxExceptions;
  |   }
  | 
  |   public void sampleExecutionMethod() {
  |     //......
  |   }
  |    
  | }
  | 

The Interceptor


package xxx;
  | 
  | import javax.annotation.Resource;
  | import javax.interceptor.InvocationContext;
  | 
  | public class SampleLoggingContextInterceptor {
  |   @Resource(name="minExceptions") 
  |   private int minExceptions = 1;
  | 
  |   public int getMinExceptions() {
  |      return minExceptions;
  |   }
  | 
  |   public void setMinExceptions(int minExceptions) {
  |      this.minExceptions = minExceptions;
  |   }
  | 
  |   public Object interceptLog(InvocationContext inv) throws Exception {
  |     //......
  |   }
  | }

P.S. I copied the code above manually (not copy-pasted) so it may contain some insignificant syntax mistakes...

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969416#3969416

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969416



More information about the jboss-user mailing list