Weblogic/rmi/extensions/server/Stub
Hello,
I have a small batch program trying to connect to WLS8.1 but get following Exception. I do have weblogic.jar in my CLASSPATH.
Any ideas guys?
java.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stub
Thanks
A B <> writes:
There were some changes in the stub architecture between 8.1 and 9.0, not sure if this is what you are running into - but it might be
andy
Hello,
I have a small batch program trying to connect to WLS8.1 but get following Exception. I do have weblogic.jar in my CLASSPATH.
Any ideas guys?
java.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stub
Thanks
Similar Messages
-
Hi,
I'm trying to run examples.jdbc.datasource.simplesql with Weblogic 5.1sp8,
but am hitting this problem when it executes:
An exception was caught. javax.naming.NamingException [Root exception is
weblogic.rmi.ServerError: A Rem
oteException occurred in the server method
- with nested exception:
[java.lang.NoSuchMethodError: weblogic.rmi.extensions.WRMIOutputStream:
method writeObject(Ljava/lang/Ob
ject;)V not found]]
An exception was caught. java.lang.NullPointerException:
Any pointers would be appreciated.
Thanks,
-TrietHi..
I guess itzz more of the service pack problems.
Jars built on the later version won't work in the previous version (service packs) of weblogic.
Try building a jar on the oldest version (service pack) u have and then try deploying it to the later version , i think it won't give u any problems.
Try it out and let me know if u face any problems -
Weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
Hi,
I am using a remote client program to look up data source via JNDI and access a database connection. Here's part of the code:
Hashtable h = new Hashtable();
h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://hostname:12345");
Context ctx = new InitialContext(h);
DataSource ds = (DataSource)ctx.lookup("myDS");
Connection conn = ds.getConnection(); //thrwing exception at this line
weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
Pl help ASAPHi,
Can u please post the complete stackTrace...because there may be many reasons behind "*weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception*"..That will really help to understand the root cause.
If you dont find much StackTrace at Client end then at the sametimestamp ..may be on the Server Log you will find more details.
Thanks
Jay SenSharma
http://jaysensharma.wordpress.com (WebLogic Wonders Are Here)
Edited by: Jay SenSharma on Feb 25, 2010 8:55 PM -
hello,everyone.
I have a problem.please help me.
My application is running on weblogic 9.2. My oracle is oracle10g. system:linux redhat4.
my weblogic's log have a problem.
java.sql.SQLException: weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
at weblogic.jdbc.rmi.SerialStatement.close(SerialStatement.java:109)
at com.goldpalm.common.jdbc.DBController.releaseConn(DBController.java:273)
at com.goldpalm.sale.team.TeamXml.exeTeamLog(TeamXml.java:762)
at jsp_servlet._ctssale.__teamline_show._jspService(__teamline_show.java:264)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:230)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at filters.AuthFilter.doFilter(AuthFilter.java:95)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3200)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1844)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)Hi
Looking at the error stack trace, you are getting this error when trying to close the statement object from your own java code (not weblogic code...) - DBController.releaseConn(...)
at com.goldpalm.common.jdbc.DBController.releaseConn(DBController.java:273)
java.sql.SQLException: weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
at weblogic.jdbc.rmi.SerialStatement.close(SerialStatement.java:109)
at com.goldpalm.common.jdbc.DBController.releaseConn(DBController.java:273)
at com.goldpalm.sale.team.TeamXml.exeTeamLog(TeamXml.java:762)
Well check the code you have at this location. Usually the way we release/close the db resources are like first close ResultSet, then Statement, then Connection. But if you close connection first, then try to close the Statement object, it throws errors like what you see.
I am giving 2 methods code snippet. One method is caleld like closeAll(..). This method gets called in finally block of all other db methods that does the actual db code to connect and get data etc etc.
// Sample main method that does all db stuff...This is just code snippet only and NOT the full code. Focus on try catch finally block
public static void getCustomerProfile(long custId) throws Exception {
Connection aConnection = getConnection();
CallableStatement aCallableStatement = null;
ResultSet aResultSet = null;
try {
aCallableStatement = aConnection.prepareCall("{ call someFunction(?, ?) }");
aCallableStatement.execute();
aResultSet = (ResultSet) aCallableStatement.getObject("variable_name_from_sp");
while(aResultSet.next()) {
// get all data for each record etc...
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
closeAll(aConnection, aCallableStatement, aResultSet);
// While closing RS, Statment, Connection, enclose them in their own try/catch block and ofcourse check for nulls first
public static void closeAll(Connection aConn, Statement aStmt, ResultSet aRS) {
if (aRS != null) {
try {
aRS.close();
} catch (Exception e) {
System.out.println("Not Able To Close The ResultSet");
//e.printStackTrace();
if (aStmt != null) {
try {
aStmt.close();
} catch (Exception e) {
System.out.println("Not Able To Close The Statement");
//e.printStackTrace();
if (aConn != null) {
try {
aConn.close();
} catch (Exception e) {
System.out.println("Not Able To Close The Connection");
//e.printStackTrace();
}Thanks
Ravi Jegga -
Hi,
I am trying to deploy ejb3.0 on weblogic 10 server. I am able to find the JNDI name of the stateless session bean correctly, but getting an exception while narrowing it down. My ejb3.0 client is a standalone java client. I am trying to access the stateless session ejb3.0 bean.Please help me. i have been trying it for many days.
thanks in advance,
Sanjeev
[sanpraka@localhost certEjb]$ java -cp ./:/usr/weblogic/bea/wlserver_10.0/server/lib/weblogic.jar:/usr/weblogic/bea/wlserver_10.0/server/lib/wlclient.jar com.titan.clients.Client
Object is weblogic.rmi.internal.BasicRemoteRef - hostID: '5337880647112897730S:127.0.0.1:[7001,7001,-1,-1,-1,-1,-1]:wl_server:examplesServer', oid: '302', channel: 'null'
java.lang.ClassCastException: Cannot narrow remote object weblogic.rmi.internal.BasicRemoteRef - hostID: '5337880647112897730S:127.0.0.1:[7001,7001,-1,-1,-1,-1,-1]:wl_server:examplesServer', oid: '302', channel: 'null' to com.titan.travelagent.TravelAgentRemote
at weblogic.corba.server.naming.ReferenceHelperImpl.narrow(ReferenceHelperImpl.java:206)
at weblogic.rmi.extensions.PortableRemoteObject.narrow(PortableRemoteObject.java:88)
at weblogic.iiop.PortableRemoteObjectDelegateImpl.narrow(PortableRemoteObjectDelegateImpl.java:32)
at javax.rmi.PortableRemoteObject.narrow(Unknown Source)
at com.titan.clients.Client.main(Client.java:24)
[sanpraka@localhost certEjb]$We have a similar problem. We have a web application (on server A) that invokes an EJB on a remote server (server B). This works fine, until we deploy another web application to server A at which point the existing web application starts to throw java.lang.ClassCastException when narrowing the remote EJB interface. The exception starts to be thrown at the moment the latter web application is deployed - start is not required.
The latter web application contains (actually in APP-INF/lib) the old version of the EJB remote interface, that somehow gets to be loaded into the classpath of the existing web application. The solution is to delete the old version of the EJB remote interface from APP-INF/lib of the latter web application (we didn't need it anyway), but it would be interesting to know in which circumstances classes can get mixed between enterprise applications.
I failed to reproduce the error in simple scenario, so this does not happen always. -
Help: weblogic.ejb.extensions.LockTimedOutException
Dear All:
I got this exception in our EJB app:
weblogic.ejb.extensions.LockTimedOutException. Please see attached error
message below. It is not happening every time you call the bean. It is
reproducable with patience.
Have you had this kind of problem and more importantly, how to avoid it?
Our env is: Wl51 with sp 10, jdk1.3.02, Sun Solaris Unix, a cluster contains
2 wl instance
Thanks.
Wed Jun 19 14:26:53 EDT 2002:<I> <TX> Transaction (TxC (5488304, xid =
1024502557372_6636, timeout = 300, txState = Marked Rollback, root = null)
rolled back after 300 sec.
[GC 99080K->85533K(130688K), 0.0227977 secs]
Wed Jun 19 14:26:54 EDT 2002:<I> <EJB JAR deployment
/webapp/dtshc/dts/nmc/ejb/nmcejb.jar> Transaction: '1024502557372_6636'
rolled back due to EJB exception:
weblogic.ejb.extensions.LockTimedOutException: Lock for
primaryKey:com.mm.nmc.entity.ProducerOneYearPlanPK@1700fc timed out after
300000 ms.
at
weblogic.ejb.internal.LockManagerImpl.waitForLock(LockManagerImpl.java:53)
at weblogic.ejb.internal.LockManagerImpl.lock(LockManagerImpl.java:146)
at weblogic.ejb.internal.LockManagerImpl.lock(LockManagerImpl.java:81)
at weblogic.ejb.internal.StatefulEJBCache.bind(StatefulEJBCache.java:456)
at
weblogic.ejb.internal.StatefulEJBObject.getContextForInvoke(StatefulEJBObjec
t.java:162)
at weblogic.ejb.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:476)
at
com.mm.nmc.entity.ProducerOneYearPlanEJBEOImpl.getData(ProducerOneYearPlanEJ
BEOImpl.java:979)
at
com.mm.nmc.session.PersonalTacticalSessionEJB.getTacticalPlanGoals(PersonalT
acticalSessionEJB.java:200)
at
com.mm.nmc.session.PersonalTacticalSessionEJB.getPersonalTacticalPlan(Person
alTacticalSessionEJB.java:165)
at
com.mm.nmc.session.PersonalTacticalSessionEJB.getPersonalTacticalPlan(Person
alTacticalSessionEJB.java:155)
at
com.mm.nmc.session.PersonalTacticalSessionEJBEOImpl.getPersonalTacticalPlan(
PersonalTacticalSessionEJBEOImpl.java:340)
at
com.mm.nmc.session.PersonalTacticalSessionEJBEOImpl_WLSkel.invoke(PersonalTa
cticalSessionEJBEOImpl_WLSkel.java:167)
at
weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAda
pter.java:347)
at
weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandle
r.java:86)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:1
5)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
Jiancai He
http://www.hefamily.com
Thanks for your message:
In our case, it is entity EJB. The problem only happens in clustered env,
and only happens in one of the servers.
Question: can wl51 use database to manage the concurrent access of entity
EJBs?
Thanks.
Jiancai
Jiancai He
http://www.hefamily.com
"ludovic le goff" <[email protected]> wrote in message
news:[email protected]...
> Hello,
>
> Basically, it means two (or more) different threads are trying to get an
> exclusive lock on the same entity bean or stateful session bean at the
same
> time. One of the locks eventually times out and this exception is thrown.
>
> There are several things that could cause this, for instance:
>
> - Two threads trying to invoke a method on the same stateful session bean
at
> the same time. The EJB 1.1 spec states that the server must detect this
> condition and throw a RemoteException to all subsequent callers.
> LockTimedOutException is a sub-class of java.rmi.RemoteException.
>
> - Two threads are trying to access the same entity bean instance inside a
> single server in the cluster, and the caller holding the lock does not
> finish fast enough.
>
> You might want to check if you have declared the Remote and home interface
> in your jsp/servlet as global variable. And since it's global, instance
> getting overridden every time. That's why both the two request end up in
> using the same EJBObject.
>
> You should changed your code and make the remote/home interface variable
> declaration as local i.e. within the scope of a single request.
> Then you should not see any problem. Both the threads will use different
> EJBObjects and hence you should not see any exceptions.
>
> You need to code in such a way as to avoid deadlocks. For instance, if
> more than one client accesses the EJBs in different order, a deadlock may
> occur. This deadlock is detected and after a certain timeout (5 minutes by
> default), the deadlock is removed and one of the clients gets a
> LockTimedOutException. For example, if one request in your application has
> entity Account 1 (by doing an ejbFindByPrimaryKey) and is then about to
get
> Customer 1, and if at the same time another request in another business
> method has got Customer 1 and is waiting for Account 1, you'll get a
> deadlock and a LockTimedOutException after 5 minutes. You could avoid
this
> by include the code in a synchronized block. You could also get a
deadlock
> if you're making a reentrant call, e.g., A calls B which calls back to A.
>
> If you haven't already seen this, here's a blurb from "Locking Model for
> Entity EJBs" at
>
http://www.weblogic.com/docs51/classdocs/API_ejb/EJB_environment.html#108796
> 7 that you might find interesting:
>
> The EJB 1.1 container in WebLogic Server Version 5.1 uses a pessimistic
> locking mechanism for entity EJB instances. As clients enlist an EJB or
EJB
> method in a transaction, WebLogic Server places an exclusive lock on the
EJB
> instance or method for the duration of the transaction. Other clients
> requesting the same EJB or method block until the current transaction
> completes.
>
> This method of locking provides reliable access to EJB data, and avoids
> unnecessary calls to ejbLoad() to refresh the EJB instance's persistent
> fields. However, in certain circumstances pessimistic locking may not
> provide the best model for concurrent access to the EJB's data. Once a
> client has locked an EJB instance, other clients are blocked from the
EJB's
> data even if they intend only to read the persistent fields.
>
> In a Nutshell the first exception is a consequence of the second.
>
> Hope this helps,
> Ludovic.
> Developer Relations Engineer
> BEA Customer Support
> "newsgroups.bea.com" <[email protected]> a écrit dans le message news:
> [email protected]...
> > Dear All:
> >
> > I got this exception in our EJB app:
> > weblogic.ejb.extensions.LockTimedOutException. Please see attached error
> > message below. It is not happening every time you call the bean. It is
> > reproducable with patience.
> >
> > Have you had this kind of problem and more importantly, how to avoid it?
> >
> > Our env is: Wl51 with sp 10, jdk1.3.02, Sun Solaris Unix, a cluster
> contains
> > 2 wl instance
> >
> > Thanks.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > Wed Jun 19 14:26:53 EDT 2002:<I> <TX> Transaction (TxC (5488304, xid =
> > 1024502557372_6636, timeout = 300, txState = Marked Rollback, root =
null)
> > rolled back after 300 sec.
> >
> > [GC 99080K->85533K(130688K), 0.0227977 secs]
> >
> > Wed Jun 19 14:26:54 EDT 2002:<I> <EJB JAR deployment
> > /webapp/dtshc/dts/nmc/ejb/nmcejb.jar> Transaction: '1024502557372_6636'
> > rolled back due to EJB exception:
> >
> > weblogic.ejb.extensions.LockTimedOutException: Lock for
> > primaryKey:com.mm.nmc.entity.ProducerOneYearPlanPK@1700fc timed out
after
> > 300000 ms.
> >
> > at
> >
weblogic.ejb.internal.LockManagerImpl.waitForLock(LockManagerImpl.java:53)
> >
> > at weblogic.ejb.internal.LockManagerImpl.lock(LockManagerImpl.java:146)
> >
> > at weblogic.ejb.internal.LockManagerImpl.lock(LockManagerImpl.java:81)
> >
> > at
weblogic.ejb.internal.StatefulEJBCache.bind(StatefulEJBCache.java:456)
> >
> > at
> >
>
weblogic.ejb.internal.StatefulEJBObject.getContextForInvoke(StatefulEJBObjec
> > t.java:162)
> >
> > at weblogic.ejb.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:476)
> >
> > at
> >
>
com.mm.nmc.entity.ProducerOneYearPlanEJBEOImpl.getData(ProducerOneYearPlanEJ
> > BEOImpl.java:979)
> >
> > at
> >
>
com.mm.nmc.session.PersonalTacticalSessionEJB.getTacticalPlanGoals(PersonalT
> > acticalSessionEJB.java:200)
> >
> > at
> >
>
com.mm.nmc.session.PersonalTacticalSessionEJB.getPersonalTacticalPlan(Person
> > alTacticalSessionEJB.java:165)
> >
> > at
> >
>
com.mm.nmc.session.PersonalTacticalSessionEJB.getPersonalTacticalPlan(Person
> > alTacticalSessionEJB.java:155)
> >
> > at
> >
>
com.mm.nmc.session.PersonalTacticalSessionEJBEOImpl.getPersonalTacticalPlan(
> > PersonalTacticalSessionEJBEOImpl.java:340)
> >
> > at
> >
>
com.mm.nmc.session.PersonalTacticalSessionEJBEOImpl_WLSkel.invoke(PersonalTa
> > cticalSessionEJBEOImpl_WLSkel.java:167)
> >
> > at
> >
>
weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerObjectAda
> > pter.java:347)
> >
> > at
> >
>
weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicRequestHandle
> > r.java:86)
> >
> > at
> >
>
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:1
> > 5)
> >
> > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
> >
> >
> >
> >
> >
> >
> > --
> > Jiancai He
> > http://www.hefamily.com
> >
> >
>
>
-
Libraries needed for a IDE (RMI) - weblogic 10.3 server lookup
Hi
Just a simple question, which .jar files do a need to do a simple rmi lookup from my IDE (Intellij in this case) to a weblogic 10.3 server ?
The weblogic.jar files doesn't seem to cut it anymore
/LabanThe weblogic.jar ist still a good place to start with :)
You could also try the %bea_home%\wlserver_10.0\server\lib\wlclient.jar
edocs wrote:
The thin client jar contains the necessary J2EE interface classes, such as javax.ejb, so no other jar files are necessary on the client.
Server-side components are deployed in the usual fashion. Client stubs can be generated at either deployment time or runtime.To generate stubs when deploying, run appc with the -iiop > > and -basicClientJar options to produce a client jar suitable for use with the thin client. Otherwise, WebLogic Server will generate stubs on demand at runtime and serve them to the client. > Downloading of stubs by the client requires that a suitable security manager be installed. The thin client provides a default light-weight security manager. For rigorous security requirements, a > > different security manager can be installed with the command line options -Djava.security.manager -Djava.security.policy==policyfile.
The thin client jar replaces some classes in weblogic.jar, if both the full jar and the thin client jar are in the CLASSPATH, the thin client jar should be first in the path. Note however that > > weblogic.jar is not required to support the thin client.
/edocsMore information here: http://e-docs.bea.com/wls/docs103/client/basics.html#wp1072941 -
Weblogic RMI -- detecting the server address?
Hello,
Is there any way for an Weblogic RMI client to detect to which server it is connecting
in a clustered environment?
I have two WLS6.0sp1 servers and several RMI clients written with JFC/Swing.
I'd like to write the server address in a client's log files.
Regards,
shun
Hello,
Is there any way for an Weblogic RMI client to detect to which server it is connecting
in a clustered environment?
I have two WLS6.0sp1 servers and several RMI clients written with JFC/Swing.
I'd like to write the server address in a client's log files.
Regards,
shun
-
RMI server stub could not find in remote machine
i have a code set
http://www.devpub.net/java.rar
when i run it in local machine it works fine.
but i run the client part, it return
ClassNotFoundException : Could not find Class (server stub) at codebaseThe client part needs to include the stub, the remote interface itself, and any of your classes named in the remote interface, and so on to closure.
-
Dear all,
I am using weblogic rmi. When I run the client, the following error
appeared:
java.rmi.UnmarshalException: failed to unmarshal class
java.lang.Object; nested
exception is:
java.lang.ClassNotFoundException: Hello_WLStub
--------------- nested within: ------------------
weblogic.rmi.MarshalException: Remapped jndi exception
- with nested exception:
[java.rmi.UnmarshalException: failed to unmarshal class
java.lang.Object; nested
exception is:
java.lang.ClassNotFoundException: Hello_WLStub]
at weblogic.rmi.Naming.toWeblogicRmiException(Naming.java:289)
at weblogic.rmi.Naming.lookup(Naming.java:78)
at HelloClient.main(HelloClient.java:40)
Server and client are 2 separate machine.However, when I copy
Hello_WLStub.class to the client machine, it runs without problem.
When weblogic do not download the stub class to client instead?
Moreover, I found that all my startup classes must be placed inside
E:\bea\wlserver6.0, otherwise those startup classes will not work. How
to change this default location?Thanks!Dear all,
I am using weblogic rmi. When I run the client, the following error
appeared:
java.rmi.UnmarshalException: failed to unmarshal class
java.lang.Object; nested
exception is:
java.lang.ClassNotFoundException: Hello_WLStub
--------------- nested within: ------------------
weblogic.rmi.MarshalException: Remapped jndi exception
- with nested exception:
[java.rmi.UnmarshalException: failed to unmarshal class
java.lang.Object; nested
exception is:
java.lang.ClassNotFoundException: Hello_WLStub]
at weblogic.rmi.Naming.toWeblogicRmiException(Naming.java:289)
at weblogic.rmi.Naming.lookup(Naming.java:78)
at HelloClient.main(HelloClient.java:40)
Server and client are 2 separate machine.However, when I copy
Hello_WLStub.class to the client machine, it runs without problem.
When weblogic do not download the stub class to client instead?
Moreover, I found that all my startup classes must be placed inside
E:\bea\wlserver6.0, otherwise those startup classes will not work. How
to change this default location?Thanks! -
Hello,
I'm planning to create some client-server applications using the WebLogic
RMI implementation but I'm a little bit worried about the security issues
that can be raised.
Basically, I don't know whether or not WebLogic provides dynamic class
loading (RMIClassLoader). If so, how to prevent this to happen, since I want
to make it sure that no hostile client will be able to hack my application
in that it will download some classes that will mess with my data.
Anybody has any comments on that?
Thanks in advance for any help.
Andre Mendonca
[email protected]Just to make things clearer, this is the RMI specification from Javasoft
(very interesting, by the way):
"When parameters and return values for a remote method invocation are
unmarshalled to become live objects in the receiving JVM, class definitions
are required for all of the types of objects in the stream. The
unmarshalling process first attempts to resolve classes by name in its local
class loading context (the context class loader of the current thread). RMI
also provides a facility for dynamically loading the class definitions for
the actual types of objects passed as parameters and return values for
remote method invocations from network locations specified by the
transmitting endpoint. This includes the dynamic downloading of remote stub
classes corresponding to particular remote object implementation classes
(and used to contain remote references) as well as any other type that is
passed by value in RMI calls, such as the subclass of a declared parameter
type, that is not already available in the class loading context of the
unmarshalling side."
My question is: If a client invokes a method in the object residing in the
weblogic server, passing as a parameter an object that the server doesn't
know, will weblogic try to download the class from the client location?
Continuing: later in the specification, one can read:
"For every class descriptor read from an RMI marshal stream, the
resolveClass method reads a single object from the stream. If the object is
a String (and the value of the java.rmi.server.useCodebaseOnly property is
not true), then resolveClass returns the result of calling
RMIClassLoader.loadClass with the annotated String object as the first
parameter and the name of the desired class in the class descriptor as the
second parameter. Otherwise, resolveClass returns the result of calling
RMIClassLoader.loadClass with the name of the desired class as the only
parameter."
So, can I set this property to false in the StartWebLogic.cmd file and
expect weblogic not to download any unknown code? Will weblogic classloader
understand it? What's the default behavior of weblogic server?
By the way, I'm using WLS 4.5.1, in a windows NT environment.
Thanks in advance.
Andre Mendonca
[email protected]
"Andre Mendonca" <[email protected]> wrote in message
news:[email protected]...
Hello,
I'm planning to create some client-server applications using the WebLogic
RMI implementation but I'm a little bit worried about the security issues
that can be raised.
Basically, I don't know whether or not WebLogic provides dynamic class
loading (RMIClassLoader). If so, how to prevent this to happen, since Iwant
to make it sure that no hostile client will be able to hack my application
in that it will download some classes that will mess with my data.
Anybody has any comments on that?
Thanks in advance for any help.
Andre Mendonca
[email protected] -
Hi
I've a few questions on WL RMI that I couldn't figure out from the
documentation.
Suppose I have a cluster containing Weblogic servers server1 and server2.
Server1 hosts an RMI object o1 that is bind to the cluster wide JNDI tree.
O1 implements remote interface i1 that has a method m1 which takes as an
argument an object o2 implementing remote interface i2. That is:
public class o1 implements i1 {...}
public interface i1 extends weblogic.rmi.Remote {
public void m1 (i2 _o2);
public class o2 implements i2 {...}
public interface i2 extends weblogic.rmi.Remote {...}
Now if inside server2 I create o2 using the default constructor, lookup a
reference to o1 and call method m1, will o2 get passed by value or by
reference? Is there any way to control this? What if I don't use the
constructor to create the object but the object is hosted in server2 and I
get a reference to the object using JNDI lookup? In short, how does WL RMI
decide when to pass an object by reference and when by value.
I'm trying to increase the scalability of a system by distributing its
modules as RMI objects to several machines running Weblogic server, and I
need to know the details on how WL RMI works. The documentation seems to be
rather inadequate...
Thanks for reading this far :)
- Juha
Actually, O2 will always be passed by reference because it is an RMI object
(i.e., it implements weblogic.rmi.Remote). If O2 were a non-RMI object, it would
be passed by value if O1 is in a different process and by reference if O1 and O2
are in the same process.
Edwin Marcial wrote:
> My 2 cents on this:
>
> I believe in this case, since O2 is a remote object, it will get passed by
> reference. If it were not a remote object, it would be passed by value.
>
> Edwin
>
> "Juha Lindström" wrote:
>
> > Hi
> >
> > I've a few questions on WL RMI that I couldn't figure out from the
> > documentation.
> > Suppose I have a cluster containing Weblogic servers server1 and server2.
> > Server1 hosts an RMI object o1 that is bind to the cluster wide JNDI tree.
> > O1 implements remote interface i1 that has a method m1 which takes as an
> > argument an object o2 implementing remote interface i2. That is:
> >
> > public class o1 implements i1 {...}
> >
> > public interface i1 extends weblogic.rmi.Remote {
> > public void m1 (i2 _o2);
> > }
> >
> > public class o2 implements i2 {...}
> >
> > public interface i2 extends weblogic.rmi.Remote {...}
> >
> > Now if inside server2 I create o2 using the default constructor, lookup a
> > reference to o1 and call method m1, will o2 get passed by value or by
> > reference? Is there any way to control this? What if I don't use the
> > constructor to create the object but the object is hosted in server2 and I
> > get a reference to the object using JNDI lookup? In short, how does WL RMI
> > decide when to pass an object by reference and when by value.
> >
> > I'm trying to increase the scalability of a system by distributing its
> > modules as RMI objects to several machines running Weblogic server, and I
> > need to know the details on how WL RMI works. The documentation seems to be
> > rather inadequate...
> >
> > Thanks for reading this far :)
> >
> > - Juha
-
RMI Connector Server not running in java 1.4
I have an application using sun JDMK implementation which is running fine in java 1.3 As I go to java 1.4, the RMI connector server is not running, the state goes to OFFLINE. I don't see any exception except that the server doesn't stay alive. Any idea on the problem ?
If you have the possibility of changing your application so that it uses the RMI connector defined by the JMX Remote API, then I would strongly encourage you to do so. You can get an implementation from http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/download.jsp (look for JMX Remote API Reference Implementation).
If you don't have the option of doing this in the short term, then you could try turning on JDMK traces by calling com.sun.jdmk.TraceManager.parseTraceProperties() in the main method of your application, and specifying -DLEVEL_DEBUG on the command-line. You will probably see some logging information that will help you diagnose your problem.
�amonn McManus -- JMX Spec Lead -- http://weblogs.java.net/blog/emcmanus -
Weblogic 8.1 server : Nullpointer exception and clascast exception ?
We are getting this Nullpointer and class cast exception from Weblogic and our application fails.Any idea why we are getting and how to resolve it.
After we restart the server everything is good,but it comes back after 4 or 5 days.
com.telus.api.TelusAPIException:
at com.telus.provider.account.TMAccountManager.findSubscriberByPhoneNumber(TMAccountManager.java:743)
at com.telus.offermanagement.cmd.subscriber.impl.RetrieveSubscriberByMobileCmdImpl.execute(RetrieveSubscriberByMobileCmdImpl.java:49)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
----- Caused by -----
java.lang.NullPointerException
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)
2009-08-17 11:45:40,265 DEBUG [ExecuteThread: '55' for queue: 'weblogic.kernel.Default'] com.telus.offermanagement.webapp.action.InitClientAction - Kowbility authentication start:23075
2009-08-17 11:45:40,388 ERROR [ExecuteThread: '55' for queue: 'weblogic.kernel.Default'] com.telus.offermanagement.webapp.action.InitClientAction - TelusAPI authentication failed:TelusAPIException:23075
com.telus.api.TelusAPIException:
at com.telus.provider.TMProvider.<init>(TMProvider.java:348)
at com.telus.provider.TMProvider.<init>(TMProvider.java:212)
at sun.reflect.GeneratedConstructorAccessor163.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
----- Caused by -----
java.lang.ClassCastException
at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248)
at com.telus.eas.utility.ejb.ReferenceDataHelper_cegd99_EOImpl_816_WLStub.authenticate(Unknown Source)
at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Edited by: Manjit on Aug 21, 2009 3:51 PMBut here is the issue.We had same weblogic server installed before and after our deployment.The only thing that has changed is our marketing application.Hence wondering if our new changes has made weblogic to crash.Our older version of application has been running in the server for 6 years without any issue !!
Before I open a defect again Weblogic support I want to be 100% sure that our team (our application) is not responsible for crash. -
Weblogic.jdbc.extensions.PoolLimitSQLException
Hi,
I am using JDeveloper 11.1.2.4 in this case. Basically I am testing my application by deleting part of the URL of my application for example, if I have:
http://localhost:7103/myApp/faces/pages/myPage.jsf?_afrLoop=714583137314224…
I will delete everything after the question mark;
http://localhost:7103/myApp/faces/pages/myPage.jsf
So I can restart the application. The issue is that after several attempts, I get
weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool myDB to allocate to applications, please increase the size of the pool and retry..
I know I could rise the pool size but is there anything I can do to get rid of this problem in a best practice way?
RegardsIf you wait long enough the problem will solve itself. The problem is that if you start a new session without to close (invalidate) the old one, the resources remain active until they get collected during the session timeout in conjunction with the pooling parameters set for your application module.
You can tweak the framework to minimize the effect. For this you minimize the time the resource are hold, by tweaking the pooling parameters in correlation with the session timeout.
One thing you can do it to configure the application module to return the jdbc connection to the pool directly after the request is finished. This means the connection has to be set up for each request when it's checked out from the pool. On the other side the connection isn't attached to the application module until the application module is 'garbage collected' (which takes some time). For this you can set the 'Release Application Module upon release' to true (set the mark in the checkbox in the configuration of the application module. Then you should read the docs about the other pooling parameters and set them to values which suit your application (sorry there is no set of values which works for all applications).
Use the controlling dashboard (http://server:port/console/dashboard) from the admin console and check the connection and application modules.
Some links for more info: http://www.jobinesh.com/2013/06/did-you-notice-new-am-configuration.html
http://andrejusb.blogspot.de/2011/10/experimenting-with-adf-bc-application.html
Timo
Maybe you are looking for
-
Hi All, Is there is any way to display the japanese character in the application.We have made a smart sync application which is working fine for English language but when we use the application for Japanese user for japanese data..the data is coming
-
Does apple tv hook up to sony str k840p
DOes sonyreciver hook up to str k840p hookup to apple tv 2. I want to use the surround sound.
-
Hi, We are planning to apply the support package 10, we are on ecc5.00. Let me know after applying that support package, what kind of trnasaction to be tested to check the validity of the transactions and make sure that support package is working p
-
Can I publish all drafts at once?
I cannot get it to publish all. it recognizes a few linked pages but not all. this is really a pain in the you know what. shannon
-
HT4864 How do I set up my iCloud email account to also receive my outlook or gmail email?
How do I setup my iCloud email account to also receive email going to my window pc outlook email account and also my gmail account? Thanks, greywhale2