John D. Ament created TOMEE-599: ----------------------------------- Summary: TomEE exposing Remote JNDI names not per Key: TOMEE-599 URL: https://issues.apache.org/jira/browse/TOMEE-599 Project: TomEE Issue Type: Bug Components: Compliance Checks Affects Versions: 1.5.0 Reporter: John D. Ament
Section 4.4.2.2 of the EJB 3.1 spec states that the following JNDI locations should be populated for "other client views," which includes remote. TomEE is instead exposing it as BeanName + Remote. This was shown with the following test material @Remote public interface RemoteDatabaseIntegrator { public void runQuery(String query) throws SQLException; } @Remote(RemoteDatabaseIntegrator.class) @Stateless(name="RemoteDatabaseIntegrator") public class RemoteDatabaseIntegratorImpl implements RemoteDatabaseIntegrator { @Resource(name="jdbc/AppDS") private DataSource ds; private Connection conn; @PostConstruct public void init() throws SQLException { this.conn = ds.getConnection(); } @PreDestroy public void cleanup() throws SQLException { this.conn.close(); } public void runQuery(String query) throws SQLException { this.conn.createStatement().execute(query); } } @RunWith(Arquillian.class) @RunAsClient public class RemoteDatabaseIntegratorTest { @Deployment(testable=false) public static JavaArchive createTestArchive() { return ShrinkWrap.create(JavaArchive.class,"test.jar") .addClasses(RemoteDatabaseIntegrator.class,RemoteDatabaseIntegratorImpl.class); } @ArquillianResource private URL deploymentURL; private static final String JNDI_LOC = "RemoteDatabaseIntegratorRemote"; @Test public void testDbServiceInjectionFailure() throws Exception{ Properties p = new Properties(); p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory"); String providerUrl = String.format("http://%s:%s/tomee/ejb",deploymentURL.getHost(),deploymentURL.getPort()); p.put("java.naming.provider.url", providerUrl); Context context = new InitialContext(p); RemoteDatabaseIntegrator dbIntegrator = (RemoteDatabaseIntegrator)context.lookup(JNDI_LOC); dbIntegrator.runQuery("select 1"); } } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira