Hi.
First of all, I'm using JBoss 4.0.1 and Eclipse 3.0.1M6 with MyEclipse.
I've deployed a Stateless Session Bean in the server and it's ok. In fact, when 
I see the jmx-console in the JNDI view I can see the values for the EJB 
deployed.
The issue is that when I try to access the EJB through a client (in my case a 
JUnit Test Case class, but also I've tried with a standalone application), 
always I get a ClassCastException.
The method of the client code I'm calling is:

  | public void testClientEJB(){
  |   Properties props = new Properties();
  |   props.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.jnp.interfaces.NamingContextFactory");
  |   props.put(Context.URL_PKG_PREFIXES, 
"org.jboss.naming:org.jnp.interfaces");
  |   props.put(Context.PROVIDER_URL, "localhost:3332");
  |   try{
  |     InitialContext ctx = new InitialContext(props);
  |     assertTrue(ctx!=null);
  |     Object ref = ctx.lookup("ejb/HelloWorld");
  |     System.out.println("Got a reference to the EJB");
  |     HelloWorldHome pruebaHome = (HelloWorldHome)   
PortableRemoteObject.narrow(ref,HelloWorldHome.class);
  |     assertTrue(pruebaHome!=null);
  |     HelloWorld pruebaServer = (HelloWorld) pruebaHome.create();
  |     System.out.println(pruebaServer.execute());
  |   }catch (Exception e){
  |     e.printStackTrace();
  |   }
  | }
  | 
And the console output is:

  | Got a reference to the EJB
  | java.lang.ClassCastException
  |     at 
client.HelloWorldClientTest.testClientEJB(HelloWorldClientTest.java:29)
  |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |     at java.lang.reflect.Method.invoke(Method.java:324)
  |     at junit.framework.TestCase.runTest(TestCase.java:154)
  |     at junit.framework.TestCase.runBare(TestCase.java:127)
  |     at junit.framework.TestResult$1.protect(TestResult.java:106)
  |     at junit.framework.TestResult.runProtected(TestResult.java:124)
  |     at junit.framework.TestResult.run(TestResult.java:109)
  |     at junit.framework.TestCase.run(TestCase.java:118)
  |     at junit.framework.TestSuite.runTest(TestSuite.java:208)
  |     at junit.framework.TestSuite.run(TestSuite.java:203)
  |     at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:474)
  |     at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:342)
  |     at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:194)
  | 
Note: The line 29 in testClient is when I try to obtain the Remote Interface 
from the create method of the home interface,i.e.,

  | HelloWorld pruebaServer = (HelloWorld) pruebaHome.create();
  | 

Of course, I have in the classpath client the jbossall-client.jar
I've had the Eclipse EJB Project linked as a Project required on the build path 
(to make the interfaces classes available to the application) and the error was 
there.
I've tried to export a jar with the classes of the EJB and include this jar in 
the classpath of the application and the error continued there.

Someone has experienced this kind of error? 

Thanks a lot

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3874789#3874789

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3874789


-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime info,
new features, or free trial, at: http://www.businessobjects.com/devxi/728
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to