I'm trying to call a stateful session bean (Bean B) from another stateful
session bean (Bean A). The code for the call is within the ejbCreate method
for Bean A.
i.e.
public void ejbCreate() throws CreateException
{
try
{
Context beanHome = new InitialContext();
EventLoggerHome home =
(EventLoggerHome)beanHome.lookup("java:comp/env/EventLogger");
EventLogger eventLogger = home.create();
}
catch(Exception e)
{
System.out.println("Whoa: " + e.toString());
}
}
I have defined in the Jboss.xml and ejb-jar.xml files for Bean A the
following:
for ejb-jar.xml
<ejb-ref>
<description></description>
<ejb-ref-name>EventLogger</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.mytest.eventlogger.EventLoggerHome</home>
<remote>org.mytest.eventlogger.EventLogger</remote>
</ejb-ref>
for jboss.xml
<session>
.
.
.
<ejb-ref>
<ejb-ref-name>EventLogger</ejb-ref-name>
<jndi-name>EventLogger</jndi-name>
</ejb-ref>
</session>
In the jboss.xml for Bean B, I have the following:
<session>
<ejb-name>EventLogger</ejb-name>
<jndi-name>EventLogger</jndi-name>
<resource-ref>
<res-ref-name>EventLoggerPool</res-ref-name>
<resource-name>EventLoggerPool</resource-name>
</resource-ref>
</session>
<secure>false</secure>
</enterprise-beans>
Bean B works when I call it from a client.
When I call it from Bean A, I get the following error:
[MyTest] Whoa: javax.naming.CommunicationException [Root exception is
java.net.MalformedURLException: no protocol:
Files/jboss2/tmp/deploy/tmpejbjar8719.jar]
This error occurs during execution of the line:
EventLoggerHome home =
(EventLoggerHome)beanHome.lookup("java:comp/env/EventLogger");
The jboss logs indicate the beans deploy and bind to the correct names (I
think):
[Container factory] Deploying MyTest
[Container factory] Container Invoker Optimize='false'
[Container factory] Binding an EJBReference EventLogger
[Container factory] Binding EventLogger to external JNDI source: EventLogger
[Container factory] Using default DataSource:EventLoggerPool
[Container factory] Storing sessions for MyTest in:database\MyTest
[Container factory] 0 old sessions removed
[Container factory] Bound MyTest to MyTest
[Container factory] Deployed application: file:/C:/Program
Files/jboss2/deploy/mytest.jar
[Container factory] Deploying EventLogger
[Container factory] Container Invoker Optimize='false'
[Container factory] Storing sessions for EventLogger in:database\EventLogger
[Container factory] 0 old sessions removed
[Container factory] Bound EventLogger to EventLogger
[Container factory] Deployed application: file:/C:/Program
Files/jboss2/deploy/eventlogger.jar
Now I'm stumped and would really appreciate some pointers on what I am doing
wrong here.
Thanks,
Jon.
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Problems?: [EMAIL PROTECTED]