EJB Clients
How can i invoke EJBs in a different JVM
you have to package your remote interfaces up and use them to compile the client. Something along the lines of:
Context ic = getContext();
Object o = ic.lookup("com/fergusontra/ClientHandlerBean");
com.fergusontra.ClientHandlerRemoteHome home = (com.fergusontra.ClientHandlerRemoteHome) PortableRemoteObject.narrow(o, com.fergusontra.ClientHandlerRemoteHome.class);
com.fergusontra.ClientHandlerRemote clientHandler = home.create();
String serverVersion = clientHandler.getClientVersion();My getContext method simply makes a jndi context for whatever server I want to connect to, I tend to use my own class for this so I can just replace the implementation whenever I switch application servers, for JBoss I would use:
package com.fergusontra.client;
import javax.naming.*;
import javax.rmi.*;
import java.rmi.*;
import javax.ejb.*;
import java.util.*;
import java.util.Properties;
import org.jnp.interfaces.NamingContextFactory;
public class JNDIContextLookup {
private Context cxt;
private String hostname;
private int port;
public boolean valid;
public JNDIContextLookup() {
this.valid = true;
public JNDIContextLookup(String hostname, int port) {
this.valid = true;
try {
this.cxt = getContext(hostname, port);
} catch(NamingException e) {
this.valid = false;
public Context getContext() throws NamingException {
if(cxt == null) {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://" + hostname + ":" + port);
cxt = new javax.naming.InitialContext(environment);
return cxt;
public Context getContext(String hostname, int port) throws NamingException {
this.hostname = hostname;
this.port = port;
cxt = null;
cxt = getContext();
return cxt;
}I'm sure there is probably some example code in the tutorials for doing this.
Let me know if you need any other help.
Thanks,
travis (at) overwrittenstack.com
Similar Messages
-
Using JarSettings to generate EJB client jar, but supported classes missed
Appreciated for any comments in advance.
I am using @jarSetting to generate EJB client jar file from workshop 9.2. The remote method of EJB has one input parameter that is defined as an interface. The interface is included in client jar, but the implementation of this interface is not.
Please advise how I can add the implementation of this interface to client jar?
Best Regards,
JamesHi James,
I believe the algorithm for creating the client jar is to simply inspect the EJB interfaces using reflection and to include all user defined classes and exceptions that are referenced by the interfaces. In your case, it sounds like a class is not being included because it is not directly referenced by one of the EJB interfaces.
I think the client jar creation algorithm can be described as "best effort" and unfortunately, it does not always end up including all classes needed by the client. I would recommend you add the additional classes manually using the jar tool.
- Matt -
How can I run EJB Client in other computer ?
Hello,
I'm trying to run converter examples.
if ejb client pgm resides on a same machine with j2ee server , it works fine.
But when I put client pgm on a different maching
below message show.
No application client descriptors defined for: ConverterClinet
I put ConverterApp.ear, ConverterAppClient.jar and ConverterClient.class on the machine and
set APPCPATH=ConverterAppClient.jar
set VMARGS=-Dorg.omg.CORBA.ORBInitialHost=xxx.xxx.xx.xx
What should I do to run ejb client on different machine?Hi SangHPark,
I had the same problem but have solved it and it works.
I ran the client remotely from a win98 box.
Keep two things in mind
1> Deploy the applications to an ip address and not to the local host using the deploy too. Use the deploy tool Gui to add a new server and then deploy the application to this ip address.
2> I am running j2ee version 1.3 and jsdk 1.3
Use the following code but instead of using "java:comp/env/ejb/SimpleConverter" use the jndi name of the object: "MyConverter" as specified in the tutorial.
Properties prop = new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
prop.setProperty(Context.PROVIDER_URL,"IIOP://xxx.xx.x.xxx:1050");
System.out.println("Attempting to create context...");
Context initial = new InitialContext(prop);
// Instead of this use the below line of code
//Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter");
Object objref = initial.lookup("MyConverter");
// MyConverter is the Jndi name of the ConverterBean as per the tutorial
You need to do the following things.
1> After making changes to the code recompile using Ant and redeploy it.
2> Copy the j2ee.jar, ConverterAppClient.jar and ConverterClient.class file to the machine that u want to run the client from.
3> create a directory called "config" on the remote machine where you copied the files in step two.
4> Copy to this directory the files ejb.properties and security.properties from your j2ee_home\config\ directory.
For example you copied the files in step 2 on the remote machine in the c:\test directory. Create c:\test\config directory and copy the files from step 4 into this directory.
5> Run the following command from the directory where u copied the client files
java -Dorg.omg.CORBA.ORBInitialHost="host name" -classpath .\j2ee.jar;.;.\ConverterAppClient.jar ConverterClient
Monal -
Error in running EJB Client on a remote machine
I delploy my beans and can run the EJB Client locally. However when I try to run the Client on another machine, there are errors.
Here is the errors
Syntax error
Out of environment space
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/enterprise/appclient/Main
I have follow the step in the j2ee tutorial and set the env variables according. Here is the bat file I write
set APPCPATH=CBSAppClient.jar
set VMARGS=-Dj2eelogin.name=guest -Dj2eelogin.password=guest123 -Dorg.omg.CORBA.ORBInitialHost=192.168.0.2
runclient -client CBSApp.ear -name CBSClient -textauth
Do anyone facing the same problem with me?
And how can I solve the problems?
This is really URGENT, please helpYou are running on Windows 9x or Me, right? The darn OS has 300 or so bytes allocated for environment by default.
Try setting the Initial environment to 4096 in the Properties|Memory tab for the batch file. That will get rid of "Out of environment space". The syntax error is another matter; Windows (except NT and derivatives) shells do not allow '=' in an environment variables value. You cannot overcome that. Some software (Sybase for instance) interprets # as = just because of that. Unfortunately, the JVM doesn't take such an approach.
Better, grab copies of Unix utilities for Windows (www.gnu.org) including the wonderful shell 'bash' and write .sh scripts, which are inherently more powerful. -
Steps to deploy an ejb application and running an ejb client in weblogic server6.1
steps to deploy an ejb application and steps to run an ejb client in weblogic server6.1
if the client is an simple java application and if the client is a servletHi.
Check out the beanManaged example that ships with WLS and read the accompanying docs. This
is a simple EJB with a servlet that invokes it.
Michael
shekhar sachdev wrote:
steps to deploy an ejb application and steps to run an ejb client in weblogic server6.1
if the client is an simple java application and if the client is a servlet--
Michael Young
Developer Relations Engineer
BEA Support -
EJB Client Access From JDeveloper9iR2
I seem to be running into a lot of problems when trying to get a simple EJB client to talk to an EJB on our 9IAS platform. I have developed a simple session bean (just to test) which simply returns a string. When I create the default client code this works fine using the embedded OC4J server in Jdeveloper but I can't run a similar client against 9IAS when I deploy the code. When I go through the client wizard it seems to produce the same code as the standalone EJB OC4J client. I simply changed the name of the server (Context.PROVIDER_URL, "ormi://pe2500/). This is the parameter code I use:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "admin");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
env.put(Context.PROVIDER_URL, "ormi://pe2500:23891/MyEJBs");
This is the output I receive:
D:\jdeveloper9ir2\jdk\bin\javaw.exe -ojvm -classpath D:\javadev\ejbservlet\ejbservlet\WEB-INF\classes;D:\jdeveloper9ir2\jdev\lib\jdev-rt.jar;D:\jdeveloper9ir2\j2ee\home\lib\ojsp.jar;D:\jdeveloper9ir2\j2ee\home\jsp\lib\taglib\ojsputil.jar;D:\jdeveloper9ir2\j2ee\home\oc4j.jar;D:\jdeveloper9ir2\j2ee\home\lib\servlet.jar;D:\jdeveloper9ir2\jdev\lib\ojc.jar;D:\jdeveloper9ir2\j2ee\home\lib\activation.jar;D:\jdeveloper9ir2\j2ee\home\lib\ejb.jar;D:\jdeveloper9ir2\j2ee\home\lib\jaas.jar;D:\jdeveloper9ir2\j2ee\home\lib\jaxp.jar;D:\jdeveloper9ir2\j2ee\home\lib\jcert.jar;D:\jdeveloper9ir2\j2ee\home\lib\jdbc.jar;D:\jdeveloper9ir2\j2ee\home\lib\jms.jar;D:\jdeveloper9ir2\j2ee\home\lib\jndi.jar;D:\jdeveloper9ir2\j2ee\home\lib\jnet.jar;D:\jdeveloper9ir2\j2ee\home\lib\jsse.jar;D:\jdeveloper9ir2\j2ee\home\lib\jta.jar;D:\jdeveloper9ir2\j2ee\home\lib\mail.jar;D:\jdeveloper9ir2\j2ee\home\oc4j.jar;D:\jdeveloper9ir2\lib\xmlparserv2.jar;D:\jdeveloper9ir2\lib\xmlcomp.jar;D:\jdeveloper9ir2\j2ee\home\oc4j.jar;D:\jdeveloper9ir2\j2ee\home\lib\servlet.jar Samplemypackage6.ctejb1Client3
javax.naming.NamingException: Lookup error: java.net.ConnectException: Connection refused: connect; nested exception is:
java.net.ConnectException: Connection refused: connect
java.lang.Object com.evermind.server.rmi.RMIContext.lookup(java.lang.String)
RMIContext.java:134
java.lang.Object javax.naming.InitialContext.lookup(java.lang.String)
InitialContext.java:350
void Samplemypackage6.ctejb1Client3.main(java.lang.String[])
ctejb1Client3.java:18
Process exited with exit code 0.
Can anyone tell me if this is the correct communication method for client EJB's talking to the 9IAS server?
Any help really appreciated.
Chris Taylorhi Chris Taylor, did you find the solution for this error. i too get this error and i am looking for the answer. if you find any answer please share with me too. if i get any answer for this i will reply you too.
-
Hi, I use jdev 10g. I created a session bean with wizards and after that I created I Ejb client for that bean. When I start the embedded server and run the client java file I get the following error :
com.evermind.server.rmi.OrionRemoteException: jazn.com/admin is not allowed to call this EJB method, check your security settings (method-permission in ejb-jar.xml and security-role-mapping in orion-application.xml).
at denemeSessionHome_StatelessSessionHomeWrapper1.create(denemeSessionHome_StatelessSessionHomeWrapper1.java:41)
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 com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
at connection to localhost/127.0.0.1 as admin
at com.evermind.server.rmi.RMIConnection.EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER(RMIConnection.java:1527)
at com.evermind.server.rmi.RMIConnection.invokeMethod(RMIConnection.java:1480)
at com.evermind.server.rmi.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:55)
at com.evermind.server.rmi.RecoverableRemoteInvocationHandler.invoke(RecoverableRemoteInvocationHandler.java:22)
at __Proxy0.create(Unknown Source)
at ejbpackage.denemeSessionClient.main(denemeSessionClient.java:21)
Process exited with exit code 0.
all settings are the default ones.
Anyone has any idea???hi
There was no problem with that... the AdviceClient is not in the package... I needed j2ee.jar and AdviceAppClient.jar to run the client and hte AdviceClient is in C\java\Projects\Advice directory.... can anyone help me with what is wrong with my first command which didnt work ...
java -classpath c:\Sun\AppServer\lib\j2ee.jar;c:\java\Projects\Advice;c:\java\Projects\AdviceAppClient.jar AdviceClient
This one worked though....
java -cp {$CLASSPATH}:"C:\java\Projects\Advice";AdviceAppClient.jar;c:\Sun\AppServer\lib\j2ee.jar; AdviceClient
I dont know what makes the difference...
vidhya -
We've got problems with respect to the number of EJB client threads (ExecuteThread) spawned by WebLogic in a client JVM. As the number of threads increase (~1700 in a JVM with 512Mb of memory and 2 hours of uptime), the JVM performance degrades substantially - although almost all these threads are waiting for requests, as one can see in the thread dump attached bellow.
This problem happens in an integration scenario involving both WebLogic (8.1 and 6.1 as service providers) and webMethods Integration Server (version 6.0.1); the webMethods EJB adapter (version 1.2) acts like EJB client from the WebLogic instances, and the "EJB client spawning threads" can be detected by thread dumps extracted from the Integration Server JVM. The URL property from the wm EJB adapter has been setup as t3://server:port. The Integration Server runs with Java HotSpot(TM) Server VM (build 1.4.2 1.4.2.02-040225-19:18-PA_RISC2.0 PA2.0 (aCC_AP), mixed mode) JRE in HP-UX (11.11) environment.
Although we couldn't reproduce this problem in a prod like environemnt, we'd identified that initially, WebLogic (weblogic.jar from WebLogic 6.1) spawns 5 ExecuteThreads plus 3 additional threads (TimeEventGenerator, SpinnerRandomSource and HighPriority TimeEventGenerator) in the first access of an EJB not matter the instance used, as well as two new threads (ExecuteThread) for each access to new WebLogic instances (different from previously accessed WebLogic instances). With weblogic.jar from the WebLogic 8.1 SP4 the behavior is slightly different: from the second instance access toward, only two new Threads (ExecuteThread in weblogic.JavaSocketReaders queue) are created.
We have also noticed that this problem should not be reflect of context classloaders because the counter of the ExecuteThread for the default pool only increases; in case of a pool cached in separate context classloaders, we should see "duplicate" threads with the same counter (starting with 0), which is not the case.
The questions are 1) why weblogic is spawning so much threads; 2) is there any setup/config to limit the number of WebLogic threads in the client context ?
Excerpt from the thread dump:
Full thread dump Java HotSpot(TM) Server VM (1.4.2 1.4.2.02-040225-19:18-PA_RISC2.0 PA2.0 (aCC_AP) mixed mode):
"ExecuteThread: '1749' for queue: 'default'" daemon prio=10 tid=05734140 nid=4813 lwp_id=583942 in Object.wait() [0x0dfbe000..0x0dfbe4f0]
at java.lang.Object.wait(Native Method)
- waiting on <4a5ef9f0> (a weblogic.common.internal.DynaQueue)
at weblogic.common.internal.DynaQueue.getW(DynaQueue.java:228)
- locked <4a5ef9f0> (a weblogic.common.internal.DynaQueue)
at weblogic.socket.JavaSocketMuxer.processSockets2(JavaSocketMuxer.java:252)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:233)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '1742' for queue: 'default'" daemon prio=10 tid=04c263f0 nid=4812 lwp_id=583845 runnable [0x06449000..0x064494f0]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at weblogic.socket.JavaSocketMuxer.processSockets2(JavaSocketMuxer.java:281)
- locked <4a5ee690> (a java.net.Socket)
at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:233)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '1735' for queue: 'default'" daemon prio=10 tid=05733fd8 nid=4811 lwp_id=583784 in Object.wait() [0x064ca000..0x064ca4f0]
at java.lang.Object.wait(Native Method)
- waiting on <4c40a6b8> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4c40a6b8> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1734' for queue: 'default'" daemon prio=10 tid=01ecd940 nid=4810 lwp_id=583783 in Object.wait() [0x0654b000..0x0654b4f0]
at java.lang.Object.wait(Native Method)
- waiting on <4c40a728> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4c40a728> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1733' for queue: 'default'" daemon prio=10 tid=05733e70 nid=4806 lwp_id=583777 in Object.wait() [0x066ce000..0x066ce4f0]
at java.lang.Object.wait(Native Method)
- waiting on <4c40a798> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4c40a798> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1732' for queue: 'default'" daemon prio=10 tid=01ecd7d8 nid=4801 lwp_id=583771 in Object.wait() [0x065cc000..0x065cc4f0]
at java.lang.Object.wait(Native Method)
- waiting on <4c40a808> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4c40a808> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1731' for queue: 'default'" daemon prio=10 tid=05733d08 nid=4798 lwp_id=583766 in Object.wait() [0x067d0000..0x067d04f0]
at java.lang.Object.wait(Native Method)
- waiting on <4c40a878> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4c40a878> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
... (cut for brevity)
"ExecuteThread: '2' for queue: 'default'" daemon prio=10 tid=009251b8 nid=172 lwp_id=569500 in Object.wait() [0x3d61f000..0x3d61f4f0]
at java.lang.Object.wait(Native Method)
- waiting on <4a5b4498> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4a5b4498> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: 'default'" daemon prio=10 tid=00924ee8 nid=171 lwp_id=569499 in Object.wait() [0x3d6a0000..0x3d6a04f0]
at java.lang.Object.wait(Native Method)
- waiting on <4a5b40f0> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4a5b40f0> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: 'default'" daemon prio=10 tid=00925050 nid=170 lwp_id=569498 in Object.wait() [0x3d7a2000..0x3d7a24f0]
at java.lang.Object.wait(Native Method)
- waiting on <4a5b3d48> (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:429)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
- locked <4a5b3d48> (a weblogic.kernel.ExecuteThread)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"Thread-2" daemon prio=10 tid=00bec5f0 nid=18 lwp_id=569246 in Object.wait() [0x41e2e000..0x41e2e4f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c14ff0> (a com.wm.app.repov4.server.RepoServer$RepoLockTimeoutMgr)
at com.wm.app.repov4.server.RepoServer$RepoLockTimeoutMgr.run(RepoServer.java:1533)
- locked <46c14ff0> (a com.wm.app.repov4.server.RepoServer$RepoLockTimeoutMgr)
"Thread-1" daemon prio=10 tid=00bec488 nid=17 lwp_id=569244 in Object.wait() [0x41eaf000..0x41eaf4f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c150a8> (a com.wm.driver.queue.data.DataQueue)
at java.lang.Object.wait(Object.java:429)
at com.wm.driver.queue.data.DataQueue.dequeue(DataQueue.java:310)
- locked <46c150a8> (a com.wm.driver.queue.data.DataQueue)
at com.wm.driver.queue.data.DataQueue.dequeueCommit(DataQueue.java:260)
- locked <46c150a8> (a com.wm.driver.queue.data.DataQueue)
at com.wm.driver.queue.data.DataQueue.dequeueCommit(DataQueue.java:254)
- locked <46c150a8> (a com.wm.driver.queue.data.DataQueue)
at com.wm.app.repov4.server.RepoServerBase$RepoEventManager.run(RepoServerBase.java:224)
"Log Thread" prio=10 tid=00bec320 nid=16 lwp_id=569243 in Object.wait() [0x41f30000..0x41f304f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c15120> (a com.wm.util.sync.SimpleQueue)
at com.wm.util.sync.SimpleQueue.deq(SimpleQueue.java:171)
- locked <46c15120> (a com.wm.util.sync.SimpleQueue)
at com.wm.util.sync.SimpleQueue.deq(SimpleQueue.java:126)
- locked <46c15120> (a com.wm.util.sync.SimpleQueue)
at com.wm.app.b2b.server.ServerLogHandler$LogThread.run(ServerLogHandler.java:268)
"Cron Daemon" prio=10 tid=00bec1b8 nid=15 lwp_id=569241 in Object.wait() [0x41fb1000..0x41fb14f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c15190> (a java.util.Vector)
at com.wm.util.Cron.run(Cron.java:424)
- locked <46c15190> (a java.util.Vector)
at java.lang.Thread.run(Thread.java:534)
"Cron Daemon Pool2" prio=10 tid=00bec050 nid=14 lwp_id=569240 in Object.wait() [0x42032000..0x420324f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c15268> (a com.wm.util.pool.PooledThread)
at java.lang.Object.wait(Object.java:429)
at com.wm.util.pool.PooledThread.run(PooledThread.java:103)
- locked <46c15268> (a com.wm.util.pool.PooledThread)
at java.lang.Thread.run(Thread.java:534)
"Cron Daemon Pool1" prio=10 tid=00bebee8 nid=13 lwp_id=569239 in Object.wait() [0x420b3000..0x420b34f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c152d0> (a com.wm.util.pool.PooledThread)
at java.lang.Object.wait(Object.java:429)
at com.wm.util.pool.PooledThread.run(PooledThread.java:103)
- locked <46c152d0> (a com.wm.util.pool.PooledThread)
at java.lang.Thread.run(Thread.java:534)
"webMethods Integration Server" prio=10 tid=000870e0 nid=12 lwp_id=569238 in Object.wait() [0x42134000..0x421344f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c152f0> (a com.wm.app.b2b.server.Server)
at java.lang.Object.wait(Object.java:429)
at com.wm.app.b2b.server.Server.run(Server.java:353)
- locked <46c152f0> (a com.wm.app.b2b.server.Server)
"Signal Dispatcher" daemon prio=10 tid=00086f78 nid=7 lwp_id=569231 waiting on condition [0x00000000..0xffffffff]
"Finalizer" daemon prio=10 tid=00086e10 nid=5 lwp_id=569229 in Object.wait() [0x4293b000..0x4293b4f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c15668> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
- locked <46c15668> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:188)
"Reference Handler" daemon prio=10 tid=00086ca8 nid=4 lwp_id=569228 in Object.wait() [0x429bc000..0x429bc4f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c15340> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:120)
- locked <46c15340> (a java.lang.ref.Reference$Lock)
"main" prio=10 tid=00086b40 nid=1 lwp_id=569222 in Object.wait() [0x68ff3000..0x68ff24f0]
at java.lang.Object.wait(Native Method)
- waiting on <46c152f0> (a com.wm.app.b2b.server.Server)
at java.lang.Thread.join(Thread.java:1001)
- locked <46c152f0> (a com.wm.app.b2b.server.Server)
at java.lang.Thread.join(Thread.java:1054)
at com.wm.app.b2b.server.Server.start(Server.java:141)
at com.wm.app.b2b.server.Main.main(Main.java:40)
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 com.wm.proxy.Proxy.invokeStaticMethod(Proxy.java:166)
at com.wm.app.server.ServerProxy.ServerMain_main(ServerProxy.java:77)
at com.wm.app.server.ServerApp.start(ServerApp.java:105)
at com.wm.app.Application.launch(Application.java:490)
at com.wm.app.server.Main.main(Main.java:50)
"VM Thread" prio=7 tid=000167f8 nid=3 lwp_id=569227 runnable
"VM Periodic Task Thread" prio=8 tid=00016908 nid=11 lwp_id=569235 waiting on condition
"Suspend Checker Thread" prio=10 tid=00016880 nid=6 lwp_id=569230 runnableWe already opened a case. Actually, we did reproduce the problem: it happens because there is a hardware load balancing between the client and the WebLogic Server.
As far as I know, EJB load balancing can be done only with WebLogic clusters. Could you confirm that ? -
Changing a method in an EJB object without recompiling EJB-Clients
Hi!
I have 4 Web (JSP) applications using the same EJBs., deployed to a BEA Weblogic application server.I want to know if there is a way to change the code in a method in one of my EJB objects (no interface change) without recompiling and redeploying my EJB-clients and Web apps.
Regards,
Per - Chr.Hello,
I have 4 Web (JSP) applications using the same EJBs.,
deployed to a BEA Weblogic application server.I want
to know if there is a way to change the code in a
method in one of my EJB objects (no interface change)
without recompiling and redeploying my EJB-clients and
Web apps.You can change the EJB's without recompiling the clients as long as the interfaces and the classes used by both the EJB's and clients are not changed.
For example, if you don't change the interfaces but change the exception implementation thrown by a method of the bean, then you have to recompile the clients with the new version of the exception class.
Kexkey -
EJB Client JAR Creation - Workspace Studio (ALSB 3.0/WLS 10)
hi
I'm trying to create an EJB Client JAR for an 2.1 Session Bean EJB Created in a WLS 10 domain using BEA Workspace Studio (i.e. this is the Aqualogic Service Bus 3.0 Product install).
I'm doing this in preparation for testing the ALSB EJB Transport which requires a client JAR.
I simply can't get a useful JAR from the facility provided in the Workspace IDE. The Workspace help is pointing to an IBM generated page and I'm following the procedure there.
I have configured the EJB for an EJB Client Project.
If I export an EAR from the Application containing the EJB, the EAR only contains the EJB JAR (with a Manifest entry to a non-existent Client JAR).
If I export the EJB Client Project to a JAR the JAR is simply empty i.e. contains some descriptor type artefacts but no classes.
I have tried this quite a few times with the same outcome. Can anyone from BEA or the user community confirm whether or not this facility actually works!
Thanks
Jim Nicolsonhttp://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/ejbTransport/ejbtransport.html#wp1079062 . This is document for OSB 10xx and yours is a a version or two older than this (So it will be applicable).
Can you please check if your EJB are complying to 2.1specification?
However the latest version of service has support for both EJB 2.1 and EJB 3.0 specification
http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/ejb.htm#CCGIFFCI
Thanks
Manoj -
Problems by creating EJB Client
Hello,
I tried to create a EJB Client for OC4J in IDE Eclipse.
but I got the exception
javax.naming.NoInitialContextException: Cannot instantiate class: com.evermind.server.rmi.RMIInitialContextFactory. Root exception is java.lang.ClassNotFoundException: com.evermind.server.rmi.RMIInitialContextFactory
I don't know which classes or packages or jars i need to get my application started. I tried to find class
com.evermind.server.rmi.RMIInitialContextFactory
manually but I didn't find it.
Best regards
GeorgeHi,
you will find the class in ${ora9ias_install}/j2ee/home/oc4jclient.jar
Greetings,
Frank -
How to hide password in EJB client
I have created an EJB client and it's initial context code is as below.
Hashtable env = new Hashtable();
env.put( Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.naming.ApplicationClientInitialContextFactory" );
env.put( Context.SECURITY_PRINCIPAL, "scott" );
env.put( Context.SECURITY_CREDENTIALS, "welcome1" );
env.put(Context.PROVIDER_URL, "ormi://132.100.5.248:23791/ejbhr");
The password is shown within the code. Please advise how I can hide this password, thanks.
SKHi Mike,
Thanks for your information. From the documentation, password indirection applies to data-sources.xml, ra.xml, rmi.xml, jms.xml. My case is that the password is contained inside a Java program. Would you please provide me an example on how to apply password indirection for EJB client Java program? Much thanks.
SK -
URGENT : ejb client in Oracle 8
We developed a EJB client. This client should be called from an Oracle Database 8.1 (ejb compliant). But, each time we tried to load weblogic.jar, we have several errors into Oracle (ie : ORA-29534 NamingContext could not be resolved)
Do you have an idea why ? Someone already developed an ejb client into Oracle 8.1 ?They are reccomended because the next step going from your simple single EJB
to anything interesting, like adding more EJB's adding web-apps, adding
web-services etc etc involves ears. If the setup and overhead for an EAR is
easy, then just start there.
But no if you just doing helloworld you of course dont have to ears.
cheers
mbg
"Christopher R. Gardner" <[email protected]> wrote in message
news:3fc0560e$[email protected]..
>
"Mark Griffith" <[email protected]> wrote:
You can still run ejbc from the command line its still there. And you
can
still run weblogic.Deployer. (I dont ever reccomend jaring up in dev,
it
just takes longer, do exploded its easier and faster).
But ear's are easy, see:So ears are recommended even if you're just doing EJBs (e.g., a simpleHello World)
and no web apps (none needed for the Hello World or a PC client)?
http://www.niffgurd.com/mark/work/blog/
Cheers
mbg
"Christopher R. Gardner" <[email protected]> wrote in message
news:3fbfd6c6$[email protected]..
My understanding is ejbc has been deprecated and replaced with appc.Moreover,
BEA is encourgaging developers to deploy ear files. All I want todo is
to use
ant to deploy a jar file with a single EJB in it. I'm not findingthe WL
documentation
very helpful. Hopefully, you'll have better luck than I.
"skmurali" <[email protected]> wrote:
Hi
In order deploy EJB application in Weblogic 8.1, is it necessary
to compile
the application in WebLogic.ejbc. I did not find such files in
WebLogic
8.1
In weblogic 7.0 versiion has such files.
The present procedure is as follows.
1. Create a jar file contains all class files.
2. Create a jar file contains class jar files, plus .xml files
3. Deploy into weblogic 8.1 server EJB Deployment utility.
==================
Please help me.
Murali -
Hi,
I've got an EJB system that until now have been packaging as just a
bean jar and not bothering with a ejb-client.jar. I now want to
package as follows
a). A bean EAR file (containing bean jar, and dependency jars) - for
deploying on EJB server.
b). An app EAR file (containing WAR, containing ejb-client.jar).
The first part is done. The second raised questions about the contents
of the ejb-client.jar. I have packaged the Home/Remote interfaces and
all necessary utility classes (i.e omitting the Local/LocalHome/EJB
classes). What I need to know is what goes in there in terms of
descriptors.
Do I just package the exact same ejb-jar.xml, jboss.xml,
jbosscmp-jdbc.xml, weblogic-ejb-jar.xml, weblogic-cmp-rdbms-jar.xml ?
or do I have to change these in some way ?
Do I also add the ejb-client-jar tag to the ejb-jar.xml ? (would this
also go in the ejb-jar.xml that goes in the bean jar ?) ... and indeed
what would I put in there ... just the name of ejb-client-jar file
even though its only being packaged into any application WAR (what
purpose does it serve) ?
TIAThe ejb-link value should include pathnames relative to the top level of the EAR
file.
<ejb-link>../my_beans-client.jar#CurrencyExchange</ejb-link>
Andy Jefferson <[email protected]> wrote:
Deepak Vohra wrote:
An ejb-client.jar contains the class files, the home and remote interfaces
and the primary key class, a client program needs to call the EJBs
contained in the ejb-jar file.
Also, ejb-client.jar contains a copy of any classes from the ejb-jarfile
that
are referenced by the home and remote interfaces and the primary key
class. Deployment descriptors are not required in the ejb-client.jar.
ejb-client-jar element is not a required element in ejb-jar.xml. If
ejb-client-jar.xml is specified in ejb-jar.xml ejbc generates the
ejb-clent.jar file.
Thx. I'm not interested in using any server-specific tools (like ejbc)
since
I'm deploying to multiple servers and so am generating the ejb-client
jar
myself in my build process. In this context, what purpose does the
<ejb-client-jar> tag in the ejb-jar.xml descriptor have ? Why does the
beans jar need to know anything about where the client stubs are ?
As far as I can tell I'm including the right things in my ejb-client.jar,
and I've tried deploying my web-app EAR to WebLogic 7.0 and I always
get
that it can't find the ejb-link elements. What i've got in my EAR is
my_app.war
META-INF/application.xml
and in the WAR
my JSP files
WEB-INF/web.xml
WEB-INF/jboss-web.xml
lib/my_beans-client.jar
In the WEB-INF I have ejb-ref's like the following
<ejb-ref >
<ejb-ref-name>ejb/CurrencyExchangeHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>my_domain.CurrencyExchangeHome</home>
<remote>my_domain.CurrencyExchangeRemote</remote>
<ejb-link>my_beans-client.jar#CurrencyExchange</ejb-link>
</ejb-ref>
Should I be putting the my_beans-client.jar in the EAR and not the WAR
Seems I am missing something, but not sure what exactly. -
ClassCastException exception while running EJB Client
Folks,
I am getting following exception while running the EJB Client.. I am
using WLS 5.1
Exception in thread "main" java.lang.ClassCastException
at
javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:319)
at FirstStatelessEJBClient.Client.lookupHome(Client.java:149)
at FirstStatelessEJBClient.Client.<init>(Client.java:44)
at FirstStatelessEJBClient.Client.main(Client.java:82)
Can anybody throw a light on this.
Thanks
AshishHi Eduardo,
Below is my classpath. The stubs are in first_statlessSession.jar file.
CLASSPATH=C:\weblogic\myserver\first_statelessSession.jar;
C:\jdk1.2.2\lib\tools.jar;C:\weblogic\license;C:\weblogic\classes;C:\weblogi
c\lib\weblogicaux.jar;
C:\weblogic\myserver\clientclasses;C:\weblogic\myserver\serverclasses
Also, I am just compiling and deploying the
C:\weblogic\examples\ejb\basic\statelessSession myself and testing it. I
am
using the build.cmd files to compile and deploy the above EJB. If I use the
jars provided by weblogic it works fine with same above classpath.
I don't know what to do next. I have invested the whole day to solve this
problem and couldn't.
Please let me know if I am doing anything wrong.
Appreciate your help.
Thanks,
Ashish
Eduardo Ceballos wrote:
Try putting the stubs into the client class path.
"Ashish N. Shah" wrote:
Folks,
I am getting following exception while running the EJB Client.. I am
using WLS 5.1
Exception in thread "main" java.lang.ClassCastException
at
javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:319)
at FirstStatelessEJBClient.Client.lookupHome(Client.java:149)
at FirstStatelessEJBClient.Client.<init>(Client.java:44)
at FirstStatelessEJBClient.Client.main(Client.java:82)
Can anybody throw a light on this.
Thanks
Ashish -
Hello,
I am getting to know EJB and have started with it from a Pocket Book and has started to implement and example suggested by this website: http://www.laliluna.de/articles/ejb-3-tutorial-jboss.html.
Coming to the client part, maybe incorrectly by my part or particular to the cited website's example, I see a strong coupling on the EJB client to the Remote Interface and the actual SessionBean which I could only see sufficed by having the client on the same "project" of the EJB. Therefore I ask you, is there a way to have the EJB client on a different project, even on a different app. server than the Session Bean?
Thank you for your help,
TSthe only thing you need in the client is the remote interface.
So to share this interface between a client and a server application, you could put those interfaces in a separate library jar and share that between the two projects.
Maybe you are looking for
-
Standard report for BLOCKED SALES ORDERS
Hey friends, Do any one of you know whether there is any standard report that shows the Blocked sales orders..?? thanks in advance, Regards, Anvita.
-
My iPod (1G) was working with the internet just fine this morning, then stopped. Tried Rebooting, the restarting the router, then reformatting iPod. Result is the same: Settings>WiFi>Connected to [Network] Check mark on the network I ALWAYS use 3 (FU
-
Hi, I could see that lot of TechNet articles are being updated recently with the information on Samsung Knox. Tried to check the email profile configurations in the SCCM console, could not find Android platform in the supported platforms. I could see
-
Applying Frames and Edges to picture
Okay I am using Photoshop CS2 on Windows. I downloaded some jpg frame images from the net. They are black and white mask image http://www1.istockphoto.com/file_thumbview_approve/1270337/2/istockphoto_1270337_black_gru nge_frame_mask.jpg I want to app
-
How to return a lost ipad?
I found an ipad at the airport on thursday and i'm having a tough time returning it. I contacted the airline and they were no help, and I called Apple and they said there's nothing they can do to help. Any suggestions?