Technical bean implementation won't lookup any ejb-external-ref, unless there
is some ejb-ref
---------------------------------------------------------------------------------------------
Key: XDT-1626
URL: http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1626
Project: XDoclet
Type: Bug
Components: EJB Module
Versions: 1.2.3
Reporter: R. Lemos
Assigned to: xdoclet-devel (Use for new issues)
The <session> subtask for the following session bean won't work as expected:
public class SomeSessionBean implements javax.ejb.SessionBean {
/**
* @ejb.ejb-external-ref
* ref-name = "ejb/ExternalRefName"
* home = "externalRefPackage.ExternalRefHome"
* business = "externalRefPackage.ExternalRef"
* type = "Session"
* jndi-name = "ExternalRefNameJNDIName"
* view-type = "remote"
*/
protected SomeExternalRefHome externalRef;
}
It is expected that the following lines are generated (inside
setSessionContext(...) method):
javax.naming.Context namingCtx = null;
try
{
namingCtx = new javax.naming.InitialContext();
{
Object obj = namingCtx.lookup("java:comp/env/ejb/ExternalRefName");
externalRef =
(externalRefPackage.ExternalRefHome)javax.rmi.PortableRemoteObject.narrow(obj,
externalRefPackage.ExternalRefHome.class);
}
}
catch(javax.naming.NamingException e)
{
throw new javax.ejb.EJBException("lookup failed", e);
}
finally {
if (namingCtx != null)
{
try
{
namingCtx.close();
}
catch(javax.naming.NamingException e)
{
e.printStackTrace();
}
}
}
But in fact, setSessionContext(...) is empty.
Is you add a second field, with @ejb.ejb-ref (instead of @ejb.ejb-external-ref)
then everything works ok (including the external ref).
The problem is a <XDtEjbEnv:ifHasTag ...> near the begining of
xdoclet/modules/ejb/src/xdoclet/modules/ejb/env/resources/env-lookups.xdt,
which searches for some annotations.
But "ejb.ejb-external-ref" is incorrectly written as "ejb.external-ref", which
ends the "if" block prematurely (before forAllEjbMemberTags, which works fine).
Proposed patch (straight forward)
---------------------- cut here ----------------------
---
xdoclet-1.2.3-original/modules/ejb/src/xdoclet/modules/ejb/env/resources/env-lookups.xdt
2005-04-10 13:50:08.000000000 -0300
+++
xdoclet-1.2.3/modules/ejb/src/xdoclet/modules/ejb/env/resources/env-lookups.xdt
2006-04-05 08:27:16.000000000 -0300
@@ -1,5 +1,5 @@
- <XDtEjbEnv:ifHasTag
tagName="ejb.env-entry,ejb.resource-ref,ejb.resource-env-ref,ejb.destination-ref,ejb.ejb-service-ref,ejb.ejb-ref,ejb.external-ref">
+ <XDtEjbEnv:ifHasTag
tagName="ejb.env-entry,ejb.resource-ref,ejb.resource-env-ref,ejb.destination-ref,ejb.ejb-service-ref,ejb.ejb-ref,ejb.ejb-external-ref">
javax.naming.Context namingCtx = null;
try
{
---------------------- cut here ----------------------
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
xdoclet-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel