[jboss-user] [EJB3] - injecting env-entry into interceptor by @Resource does not work

gunter zeilinger do-not-reply at jboss.com
Thu Jun 28 09:21:43 EDT 2012


gunter zeilinger [https://community.jboss.org/people/gunterze] created the discussion

"injecting env-entry into interceptor by @Resource does not work"

To view the discussion, visit: https://community.jboss.org/message/744771#744771

--------------------------------------------------------------
I use an Interceptor to initialize a POJO Service deployed as EJB Singleton:

public class LdapDicomConfigurationInterceptor {

    @Resource(name="ldapURL") String ldapURL;
    @Resource(name="userDN") String userDN;
    @Resource(name="password") String password;
    @Resource(name="baseDN") String baseDN;

    @PostConstruct
    void init(InvocationContext ctx) {
        LdapDicomConfiguration dc = (LdapDicomConfiguration) ctx.getTarget();
        LdapEnv env = new LdapEnv();
        env.setUrl(ldapURL);
        env.setUserDN(userDN);
        env.setPassword(password);
        try {
            dc.init(env, baseDN);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    @PreDestroy
    void close(InvocationContext ctx) {
        LdapDicomConfiguration dc = (LdapDicomConfiguration) ctx.getTarget();
        dc.close();
    }
}

ejb-jar.xml:

<ejb-jar
  xmlns=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
  version="3.1">
  <enterprise-beans>
    <session>
      <ejb-name>DicomConfiguration</ejb-name>
      <ejb-class>org.dcm4che.conf.ldap.LdapDicomConfiguration</ejb-class>
      <session-type>Singleton</session-type>
      <init-on-startup>true</init-on-startup>
    </session>
  </enterprise-beans>
  <interceptors>
    <interceptor>
      <interceptor-class>org.dcm4chee.conf.ldap.LdapDicomConfigurationInterceptor</interceptor-class>
      <env-entry>
        <env-entry-name>ldapURL</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>ldap://localhost:389</env-entry-value>
      </env-entry>
      <env-entry>
        <env-entry-name>userDN</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>cn=admin,dc=nodomain</env-entry-value>
      </env-entry>
      <env-entry>
        <env-entry-name>password</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>admin</env-entry-value>
      </env-entry>
      <env-entry>
        <env-entry-name>baseDN</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>dc=nodomain</env-entry-value>
      </env-entry>
    </interceptor>
  </interceptors>
  <assembly-descriptor>
    <container-transaction>
      <method>
      <ejb-name>DicomConfiguration</ejb-name>
      <method-name>*</method-name>
      </method>
      <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    <interceptor-binding>
      <ejb-name>DicomConfiguration</ejb-name>
      <interceptor-class>org.dcm4chee.conf.ldap.LdapDicomConfigurationInterceptor</interceptor-class>
    </interceptor-binding>
  </assembly-descriptor>
</ejb-jar>

But LdapDicomConfigurationInterceptor fields does not get injected.

Specifiying injection fields in ejb-jar.xml by

      <env-entry>
        <env-entry-name>password</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>admin</env-entry-value>
+        <injection-target>+
+          <injection-target-class>org.dcm4chee.conf.ldap.LdapDicomConfigurationInterceptor</injection-target-class>+
+          <injection-target-name>password</injection-target-name>+
+        </injection-target>+
      </env-entry>

instead of @Resource works.


AS: jboss-as-7.1.1.Final 
JAVA: OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode
OS: Linux amd64 3.3.7-1-ARCH
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/744771#744771]

Start a new discussion in EJB3 at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20120628/98ab66e4/attachment.html 


More information about the jboss-user mailing list