User development,
A new message was posted in the thread "Context Lookup vs. Injection":
http://community.jboss.org/message/523890#523890
Author : jaikiran pai
Profile :
http://community.jboss.org/people/jaikiran
Message:
--------------------------------------------------------------
Sorry, forgot about this discussion.
mailto:andy.miller@jboss.com wrote:
I tried that, but it didn't work. Just get a NullPointerException when I try to
reference the factory. Specifically, the following wiki shows how to do it the old way:
http://community.jboss.org/docs/DOC-11223
I tried this today and it worked fine for me. Here's the EJB3 SLSB into which
i am injecting this as a @Resource:
public interface KeyGenerator
{
Object generateKey();
}
@Stateless
@Remote(KeyGenerator.class)
@RemoteBinding(jndiBinding = SimpleSLSB.JNDI_NAME)
public class SimpleSLSB implements KeyGenerator
{
public static final String JNDI_NAME =
"KeyGeneratorFactoryInjectionTestBean";
@Resource (mappedName="UUIDKeyGeneratorFactory")
private KeyGeneratorFactory keygenFactory;
public Object generateKey()
{
if (this.keygenFactory == null)
{
throw new RuntimeException("Key generator factory was not injected");
}
try
{
return this.keygenFactory.getKeyGenerator().generateKey();
}
catch (Exception e)
{
throw new RuntimeException("Could not generate key: ", e);
}
}
}
And then a testcase which invokes on this bean, which then internally uses the
keygenfactory to create a keygen and then the key:
public class KeyGeneratorFactoryInjectionTestCase extends JBossTestCase
{
private static Logger logger =
Logger.getLogger(KeyGeneratorFactoryInjectionTestCase.class);
public KeyGeneratorFactoryInjectionTestCase(String name)
{
super(name);
}
public static Test suite() throws Exception
{
return getDeploySetup(KeyGeneratorFactoryInjectionTestCase.class,
"keygenfactory-injection.jar");
}
public void testKeyGeneration() throws Exception
{
KeyGenerator keyGenerator = (KeyGenerator)
this.getInitialContext().lookup(SimpleSLSB.JNDI_NAME);
Object key = keyGenerator.generateKey();
logger.info("Generated key: " + key);
assertNotNull("Key generator generated a null key", key);
}
}
Passes:
[junit] Running
org.jboss.test.ejb3.keygenfactory.injection.unit.KeyGeneratorFactoryInjectionTestCase
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.178 sec
And here's the generated key:
2010-02-03 18:31:59,388 INFO
[org.jboss.test.ejb3.keygenfactory.injection.unit.KeyGeneratorFactoryInjectionTestCase]
Generated key: 93EC42DA7F00000101C47F7C5549F6EB
--------------------------------------------------------------
To reply to this message visit the message page:
http://community.jboss.org/message/523890#523890