Hi, Romain,
I am not using Tomcat, just openEJB 3.1.4, ejb jar is copied into app
folder. I tried : properties.put(Context.PROVIDER_URL,
"ejbd://localhost:4201"), still doesn't work.
//////////////
C:\openejb-3.1.4\bin>openejb start
Apache OpenEJB 3.1.4 build: 20101112-03:32
http://openejb.apache.org/
log4j:WARN No appenders could be found for logger
(org.apache.openejb.resource.activemq.ActiveMQResourceAdapter).
log4j:WARN Please initialize the log4j system properly.
[init] OpenEJB Remote Server
** Starting Services **
NAME IP PORT
httpejbd 127.0.0.1 4204
admin thread 127.0.0.1 4200
ejbd 127.0.0.1 4201
ejbd 127.0.0.1 4203
hsql 127.0.0.1 9001
telnet 127.0.0.1 4202
-------
Ready!
///////////////////
error message is
///////////
Exception in thread "main" javax.naming.NamingException: Cannot lookup
'/CalculatorImplRemote'. [Root exception is java.rmi.RemoteException:
Cannot deternmine server protocol version: Received null/0.0; nested
exception is:
java.io.IOException: Unable to read protocol version. Reached the
end of the stream.]
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:240)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.Test.main(Test.java:20)
Caused by: java.rmi.RemoteException: Cannot deternmine server protocol
version: Received null/0.0; nested exception is:
java.io.IOException: Unable to read protocol version. Reached the
end of the stream.
at org.apache.openejb.client.Client.processRequest(Client.java:151)
at org.apache.openejb.client.Client.request(Client.java:42)
at org.apache.openejb.client.JNDIContext.request(JNDIContext.java:87)
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:234)
... 2 more
Caused by: java.io.IOException: Unable to read protocol version.
Reached the end of the stream.
at
org.apache.openejb.client.ProtocolMetaData.readExternal(ProtocolMetaData.java:89)
at org.apache.openejb.client.Client.processRequest(Client.java:148)
... 5 more
///////////////////
Thanks.
Edward
On 5/10/2011 1:20 AM, Romain Manni-Bucau wrote:
Hi Edward,
i guess yo are trying to lookup an object in tomcat (because of the http
url), if tomcat is on the 4204 port the url should be
http://localhost:4204/<openejb
context name>/ejb, it is often http://localhost/openejb/ejb.
If you are not using tomcat can you please explain us how you run your
server.
- Romain
2011/5/10 edward<[email protected]>
Hi, ALL,
I am trying to write a standalone EJB client, but failed.
I have a standalone OpenEJB in C drive, I place simple-stateless-1.0.jar
into its app folder. This jar is from OpenEjb example. It works, from log I
can see,
///////////////
2011-05-09 21:07:30,825 - INFO - Jndi(name=CalculatorImplLocal) -->
Ejb(deployment-id=CalculatorImpl)
2011-05-09 21:07:30,827 - INFO - Jndi(name=CalculatorImplRemote) -->
Ejb(deployment-id=CalculatorImpl)
2011-05-09 21:07:30,856 - INFO - Created Ejb(deployment-id=CalculatorImpl,
ejb-name=CalculatorImpl, container=My Stateless Container)
2011-05-09 21:07:30,856 - INFO - Deployed
Application(path=C:\openejb-3.1.4\apps\simple-stateless-1.0.jar)
///////////////
Now the clinent is
//////////////////////
Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.RemoteInitialContextFactory");
//properties.put("java.naming.provider.url",
"ejbd://localhost:4201");
properties.put("java.naming.provider.url", "
http://localhost:4204/ejb");
InitialContext initialContext = new InitialContext(properties);
Object object = initialContext.lookup("CalculatorImplRemote");
/////////////////////////////
It always give me error:
/////////////////
Exception in thread "main" javax.naming.NamingException: Cannot lookup
'/CalculatorImplRemote'. [Root exception is java.rmi.RemoteException: Cannot
open object input stream to server (OEJP/3.1) : null; nested exception is:
java.io.EOFException]
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:240)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.Test.main(Test.java:20)
Caused by: java.rmi.RemoteException: Cannot open object input stream to
server (OEJP/3.1) : null; nested exception is:
java.io.EOFException
at org.apache.openejb.client.Client.processRequest(Client.java:159)
at org.apache.openejb.client.Client.request(Client.java:42)
at org.apache.openejb.client.JNDIContext.request(JNDIContext.java:87)
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:234)
... 2 more
Caused by: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown
Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at
org.apache.openejb.client.EjbObjectInputStream.<init>(EjbObjectInputStream.java:31)
at org.apache.openejb.client.Client.processRequest(Client.java:156)
... 5 more
////////
I am using openejb-itests-standalone-client-3.0.jar as its reference api.
Please help me on this.
Thanks
Edward