[jboss-user] [EJB 3.0 Users] - tuning ejb3 calling
redlight
do-not-reply at jboss.com
Tue Nov 17 15:58:26 EST 2009
hi ,
i got in project i call the ejb this way
|
| Properties props = new Properties();
| props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
| props.setProperty("java.naming.provider.url", "jnp://192.168.0.10:1099");
| props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
| props.setProperty("jnp.socket.Factory", "org.jnp.interfaces.TimedSocketFactory");
| Context context = new InitialContext(props);
|
| TraxManager TraxManager = (TraxManager)context.lookup("TraxService/remote");
|
the problem is that i got this line:
| TraxManager TraxManager = (TraxManager)context.lookup("TraxService/remote");
|
instanciated in each of my managed bean .... (i'm using jsf) , it's not optimal like solution
so i have created a generic class :
| package com.voipover.utils;
|
| import java.util.Properties;
|
| import javax.naming.Context;
| import javax.naming.InitialContext;
| import javax.naming.NamingException;
|
| public class EJBHomeFactory {
|
|
|
| public static Object lookup(String jndiName) {
| Context context = null;
| try {
| Properties props = new Properties();
| props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
| props.setProperty("java.naming.provider.url", "jnp://192.168.0.10:1099");
| props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
| props.setProperty("jnp.socket.Factory", "org.jnp.interfaces.TimedSocketFactory");
| context = new InitialContext(props);
| //context = new InitialContext();
| return context.lookup(jndiName);
| } catch (NamingException ex) {
| throw new IllegalStateException("Cannot connect to bean: " + jndiName + " Reason: " + ex, ex.getCause());
| } finally {
| try {
| context.close();
| } catch (NamingException ex) {
| throw new IllegalStateException("Cannot close InitialContext. Reason: " + ex, ex.getCause());
| }
| }
| }
|
| }
|
so now i'm trying to call my service like that :
| TraxManager TraxManager = (TraxManager) EJBHomeFactory.lookup("TraxService/remote");
|
but when i test receive the following error :
| Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
| at java.lang.ClassLoader.defineClass1(Native Method)
| at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
| at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
| at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
| at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
| at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
| at java.security.AccessController.doPrivileged(Native Method)
| at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Class.java:242)
| at org.jboss.remoting.loading.RemotingClassLoader.loadClassDelegate(RemotingClassLoader.java:106)
| at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:80)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at java.lang.Class.forName0(Native Method)
| at java.lang.Class.forName(Class.java:242)
| at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveProxyClass(ObjectInputStreamWithClassLoader.java:250)
| at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1500)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1463)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
| at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:119)
| at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1755)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1717)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
| at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
| at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
| at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:238)
| at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:138)
| at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:123)
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:1215)
| at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:845)
| at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:160)
| at org.jboss.remoting.Client.invoke(Client.java:1708)
| at org.jboss.remoting.Client.invoke(Client.java:612)
| at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
| at org.jboss.ejb3.proxy.remoting.IsLocalProxyFactoryInterceptor.invoke(IsLocalProxyFactoryInterceptor.java:72)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
| at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
| at $Proxy0.createProxyBusiness(Unknown Source)
| at org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory.createProxy(SessionProxyObjectFactory.java:129)
| at org.jboss.ejb3.proxy.objectfactory.session.stateless.StatelessSessionProxyObjectFactory.getProxy(StatelessSessionProxyObjectFactory.java:79)
| at org.jboss.ejb3.proxy.objectfactory.ProxyObjectFactory.getObjectInstance(ProxyObjectFactory.java:156)
| at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
| at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1447)
| at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1464)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:818)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:682)
| at javax.naming.InitialContext.lookup(InitialContext.java:351)
| at com.voipover.utils.EJBHomeFactory.lookup(EJBHomeFactory.java:23)
| at com.voipover.utils.vtraxClientTest.main(vtraxClientTest.java:35)
|
|
|
any idea?
and thanks a lot
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4266172#4266172
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4266172
More information about the jboss-user
mailing list