Saaj classloader issues on Websphere
I am getting the dreaded error on application startup.
E WSSERVLET11: failed to parse runtime descriptor: java.lang.NoSuchMethodError: javax/xml/soap/MessageFactory.newInstance(Ljava/lang/String;)Ljavax/xml/soap/MessageFactory;
java.lang.NoSuchMethodError: javax/xml/soap/MessageFactory.newInstance (Ljava/lang/String;)Ljavax/xml/soap/MessageFactory;
Has anyone been successful deploying the JAXWS stack on WAS 6.1? I tried setting it to use the application classloader first, but to no avail. There is a feature pack for WAS 6.1, but I think it only supports JAXWS 2.0 and I was hoping to use 2.1.
Hi Sabha,
I somehow feel dynamic proxies have an answer for this. didn;t do much of
research for realization of thought.
ofcourse given the fact there should be some external means to intimate the
server that the file has changed and from where to pickup the new version of
interface implementation from.
Does that make sense??
- Rajeev
"Sabha" <[email protected]> wrote in message news:[email protected]..
>
"Rajeev Dave" <[email protected]> wrote in message
news:[email protected]..
Hi EJB/Classloader gurus,
Environment: weblogic 5.1 sp 9, windows NT
1. I redploy a EJB by using the hot deploy facility
2. All clients who are using the bean are thrown Redployment Exception
3. The bean implementation class definition is immidiately replaced by
the
new class file
What I want is that the clients using this bean during the processs of
redployment should not be thrown an exception but be served by theprevious
version of the bean itself. Any new clients logging into the site shouldbe
servled by the new class files. So in essence, the bean should be slowly
phased out rather than a instantaneous replacement.
Weblogic currently does not support graceful shutdown and redeployment of
the Applications during redeployment.
Now taking this on a general note,
1. CustomClassloader1 loads class A
2. I want to replace the class A by a newer version of it in which justthe
implementation inside a couple of methods of class A are changed.
Once a class has been loaded by a classloader, another version of the same
class cannot be loaded nor can the class be unloaded.
One has to unload the entire classloader and instantiate a new classloader
to load the newer version of the class to achive this.
Is it possible to achieve this. I have been breaking my head on this forno
avail. Or any other approach to achieve this.
Any ideas are welcome.
- Rajeev Dave
-Sabha
Similar Messages
-
Best Practice for Resolving OAS 10g R3 Classloading Issues
What's the best practices for eliminating classloading issues for shared libraries that are loaded by default (apache.commons.logging, oracle.toplink, etc) in OAS 10g R3?
So far it looks like my options are to exclude the conflicting JARs in my deployed applications or manually remove the entries from the application.xml and system-application.xml files in the OC4J instance config directory.
I know that I can override the shared libraries loaded from the system-application.xml by using the <web-app-class-loader search-local-classes-first="true"/> element in my orion-web.xml but is that the best practice? Also note that this solution does not override the apache.commons.logging shared library loaded from the container's application.xml.
So what is the best practice?What's the best practices for eliminating classloading issues for shared libraries that are loaded by default (apache.commons.logging, oracle.toplink, etc) in OAS 10g R3?
So far it looks like my options are to exclude the conflicting JARs in my deployed applications or manually remove the entries from the application.xml and system-application.xml files in the OC4J instance config directory.
I know that I can override the shared libraries loaded from the system-application.xml by using the <web-app-class-loader search-local-classes-first="true"/> element in my orion-web.xml but is that the best practice? Also note that this solution does not override the apache.commons.logging shared library loaded from the container's application.xml.
So what is the best practice? -
Java.lang.ClassNotFoundException - classloader issue ?
Hi All
We tried to deploy our ADF ear file to 10.3.6 weblogic.
Our app uses 3rd party jars put in WEB-INF/lib in war which in turn is in our app ear file.
Our web.xml is configured
<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
When we deploy our ear app, we get this error:
Is this a classloader issue ? If it is, at what level of classloader this is failing ?
What file should we configure ?
Where should we put our third-party jars as we do not have control over the install weblogic servers owned by another team.
Any help is appreciated.
Sincerely
####<Sep 18, 2013 10:54:50 AM PDT> <Error> <Console> <host> <AdminServer> <[ACTIVE] ExecuteThread: '16' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <085fcd85a0c1669b:64c5b0f5:141284171fa:-8000-00000000000001eb> <1379526890738> <BEA-240003> <Console encountered the following error weblogic.management.DeploymentException: [Deployer:149233]An unexpected error was encountered during the deployment process.
at weblogic.deploy.internal.targetserver.DeployHelper.handleException(DeployHelper.java:385)
at weblogic.deploy.internal.targetserver.DeployHelper.convertThrowableForTransfer(DeployHelper.java:511)
at weblogic.deploy.internal.targetserver.DeploymentManager.notifyCommitFailure(DeploymentManager.java:1442)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:457)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.ClassNotFoundException: ch.qos.cal10n.MessageConveyorException
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:52)
at ch.qos.cal10n.MessageConveyor.lookup(MessageConveyor.java:115)
at ch.qos.cal10n.MessageConveyor.getMessage(MessageConveyor.java:77)
at org.jboss.weld.logging.WeldMessageConveyor.getMessage(WeldMessageConveyor.java:66)
at org.jboss.weld.exceptions.WeldExceptionKeyMessage.getAsString(WeldExceptionKeyMessage.java:67)
at org.jboss.weld.exceptions.WeldException.getMessage(WeldException.java:87)
at org.jboss.weld.exceptions.WeldException.getLocalizedMessage(WeldException.java:82)
at java.lang.Throwable.toString(Throwable.java:343)
at com.bea.logging.ThrowableWrapper.<init>(ThrowableWrapper.java:26)
at com.bea.logging.ThrowableWrapper.<init>(ThrowableWrapper.java:29)
at com.bea.logging.BaseLogRecord.setThrown(BaseLogRecord.java:172)
at com.bea.logging.BaseLogRecord.<init>(BaseLogRecord.java:100)
at weblogic.logging.WLLogRecord.<init>(WLLogRecord.java:63)
at weblogic.logging.JDKLoggerFactory.createBaseLogRecord(JDKLoggerFactory.java:85)
at com.bea.logging.LoggingService.log(LoggingService.java:234)
at weblogic.i18n.logging.Loggable.log(Loggable.java:158)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.complete(AbstractOperation.java:429)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:326)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)Please check if the clas ch.qos.cal10n.MessageConveyorException is available.
check permissions.
check if exist.
check if the directory is into JAVA_CLASSPATH. -
I place my WAR file for deployment in the domain/applications directory for automatic deployment when the Weblogic server starts. This usually works fine. But, for unkown reasons, I am now getting a ClassNotFoundException after I added some new JARS to the appliation's WEB-INF/lib directory. The Class that it complains about is in one of the new JARs, the package name is correct, and the JAR is getting deployed. When I deploy the application manually, I the problem goes away. Deploying manually means that I make the applicatoin directory myself under domain/applications and the unwar it into that directory.
I'm using Weblogic 8.1 SP3 on a Windows Server 2000.Hi
The problem with t3config and disableWeblogicClassPath (described below) also
seems to exist in WLS 5.1 - sp2.
Regards
Steffen Bering Jensen
Systems Architect * Nordija ApS * Denmark
[email protected] wrote:
I hope that it is fixed in post 4.5.0 versions.
[email protected] wrote:
Steffen
I ran into the same problem with 4.5.0 while using t3config
I would like to know the version you are working with.
Support, please tell me it can be fixed.
Madhu
"Steffen B. Jensen" wrote:
Hi
Due to some classloader issues we start up WebLogic with the following
system property:
-Dweblogic.system.disableWeblogicClassPath=true
and no weblogic.class.path property.
However, when trying to set this up for an NT service using wlconfig,
wlconfig seems to insist on a weblogic.class.path system property. When
that property exists (although empty) WebLogic will not boot.
It seems that you can't run weblogic as an NT service with
weblogic.system.disableWeblogicClassPath=true?
Regards
Steffen Bering Jensen
Systems Architect * Nordija ApS * Denmark -
OIA - Clustered deployment issue in Websphere
Hi,
In our environment, we have OIA 11g BP6 11.1.1.3.6 to be deployed in a clustered environment. The deployment is completed successfully but only one of the instance is accessible, the other instance is failing to connect to the database. But when I deploy it as a standalone, instances on both the nodes work properly. Did anyone face such issue in Websphere? Were you able to resolve this through a workaround? pls let me know.
Below is my software versions
OIA 11g BP6 11.1.1.3.6
Oracle 11.2.0
Websphere 7.0.0,.7
Thanks,
JayaHi Sam
1. Just curious, for ReDeployment, why are you UnDeploying existing process and application. This sounds little scary specially the undeploying of process. Because if process is undeployed from EM Console, it is supposed to remove the instances of that process and clean up the soa_infra database. Ideally speaking say we deployed HelloWorld Process, we did testing and once undeployed we expect all the instances to be removed. It may not be doing that right now, but still it sounds scary. We never did Undeployment. We just keep redeploying the process. Sometimes, if there are major changes, we change the version number and deploy the new version of process. We are using BPM 11.5 + FP.
2. Coming to your issue with Task not going to next state, I would say first look into the logs for any errors or exceptions. Then look into EM Console, the FlowTrace and see the task flow. Generally this happens, if there are any errors. Also from JDeveloper, select your TaskForms project, right click -> Project Properties -> Deployment -> Select your deployment profile and see what is the WebApplications Context Root. There are 2 options. One is default out of box which is something like "MyApp-MyTaskForms-context-root" and the other is "/workflow/MyTaskForms". See which radio button is checked. I use, the second more user friendly one. Go to your EM Console, select your Process. Click on any of the tasks included in that process. Go to Administration tab. Look the values for Host, port and mainly for URI which in my case is: /workflow/MyTaskForms/faces/adf.task-flow?xxxxxxxx
3. Where exactly are you changing the context root to fix this. We don't have to do this everytime we redeploy. It may be working due to some other reasons.
Thanks
Ravi Jegga -
CUSTOM CLASSLOADER ISSUES WITH APPLET
HELP WOULD BE MUCH APPRECIATED FROM ANYONE KNOWING ABOUT CLASSLOADER ISSUES
I have an applet that must be dynamically extensible at run time. I am using
the URLClassLoader to support dynamic class loading for the modules the
applet must contain on the specific page.
Each jar file contains:
* The class files, icons and other resources for the module
* a file called META-INF/ext.initializers
The initializers file contains a list of classes which implement my
ExtensionInitializer interface. I am using
ClassLoader.getResources("META-INF/ext.initializers") to obtain these lists.
This works fine.
Each class implementing ExtensionInitializer is responsible for attaching
various objects to the main applet i.e extra GUI items, information
processors etc...
The problem I am getting is that although the class loader will load
resources ok, it WILL NOT LOAD the damn classes!!!
Here's the snippet of code where it runs into trouble:
while (it.hasNext())
String name = (String)it.next();
Class c = classLoader.loadClass(name);
ExtensionInitializer initializer =
(ExtensionInitializer)c.newInstance();
initializer.preInitialize(session);
System.out.println("Pre Initialized: " + initializer);
// Remember we initialized this so we can call postInitialize
later
initializers.add(initializer);
The output proving that the URLs were infact added and the ext.initializers
list was processed (containing the class name
com.katalyzt.toolbox.ext.cm.gui.CaseInitializer):
Extension URLs
file:/C:/java/Katalyzt/lib/ext/Case.jar
file:/C:/java/Katalyzt/lib/ext/WorkArea.jar
Found initializer:
jar:file:/C:/java/Katalyzt/lib/ext/Case.jar!/META-INF/ext.initializers
java.lang.ClassNotFoundException:
com.katalyzt.toolbox.ext.cm.gui.CaseInitializer
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at
com.katalyzt.toolbox.gui.AppletExtensionLoader.loadExtensions(AppletExtensio
nLoader.java:97)
at
com.katalyzt.toolbox.gui.ToolboxSessionPanel.preInitialize(ToolboxSessionPan
el.java:70)
at
com.katalyzt.toolbox.gui.ToolboxSessionApplet.init(ToolboxSessionApplet.java
:28)
at sun.applet.AppletPanel.run(AppletPanel.java:344)
at java.lang.Thread.run(Thread.java:484)
java.lang.ClassNotFoundException:
com.katalyzt.toolbox.ext.cm.gui.CaseInitializer
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at
com.katalyzt.toolbox.gui.AppletExtensionLoader.loadExtensions(AppletExtensio
nLoader.java:97)
at
com.katalyzt.toolbox.gui.ToolboxSessionPanel.preInitialize(ToolboxSessionPan
el.java:70)
at
com.katalyzt.toolbox.gui.ToolboxSessionApplet.init(ToolboxSessionApplet.java
:28)
at sun.applet.AppletPanel.run(AppletPanel.java:344)
at java.lang.Thread.run(Thread.java:484)
Found initializer:
jar:file:/C:/java/Katalyzt/lib/ext/Case.jar!/META-INF/ext.initializersIt is the standard secure java.net.URLClassLoader that I am using to load the classes. I create an instance of this with a URL[] specifying the urls of dynamic extension jars. Someone suggested that security restrictions may be to blame but it also occurs with the applet viewer with all class loading restrictions turned off. The resource files contained in the jars do become available. Someone suggested was signing the jars which I will check today.
-
EJB deployment issue in websphere
EJB deployment issue in websphere
I have created an EJB project in eclipse and created a stateless session bean successfully.
I created Enterprise application project and added the EJB project.
I tried to check it using Universal test client.
When I click the JNDI explorer>>sample.HelloWorldEJBHome
I get error IWAD0401E Unknown type of JNDI object
But when I install an EJB jar using administrator console after exporting the jar file for the EJB project
It is working file
I like to reduce the number of steps by right clicking the server publish and test.
Do any one have come across the same issue please help me
Thanks in advance.Hi,
i have not done any changes to any process. I have created new DC and created new process.
new DC is not getting deployed with error "Adapter com.sap.glx.adapter.internal.Transformer didn't comply with configuration". If you will check error log above then you will find it their. -
Hi,
I have an application where I use JAF(Java Activation Framework) source code for my purpose. My application works fine with jdk1.5. When I run my application with jdk1.6, it does not work properly.
The cause is JAF is included in JRE1.6 and my application refers to the JAF present in the JRE not the one in my application.
My question is by any means can I ignore the JAF present in JRE1.6 and use the one present with my application?
Any help is appriciated.
Champakcutecolt wrote:
I need to deploy a java application in a unix box.Deploy?
Do you just mean "run" or "launch" - or do you mean deploy under an AppServer framework?
when i wanted to execute the same application in the unix box, I get NoClassDefFound for the library jars though i have set the classpath and the write permissions are there for the lib jar files.NoClassDefFound for the library jars?
Do you mean you get NoClassDefFound for the class containing "main()" or some other specific class?
You don't get NoClassDefFound for jars...
But i found the issue may be in the JRE conflict. I have 2 jre's available in the box. You can have several JREs installed. That does not cause conflicts.
When i type java -version, it is showing, 1.4.2_08 but my application was compatible with jdk 1.5 and infact 1.5.0 is also available in the machine.This just means that your 1.4.2 JRE is on your PATH and is the first place the shell found "java".
I tried to exectue the program by changing to the jdk 1.5.0 path like /app/instals/jdk1/5/bin/java -cp /lib/hibernate.jar abc. so i didn't get the unsupportedversionexception.You mean by launching java using the fully qualified name.
But none of the jars in the classpath wasn't loaded. Huh?
I think there is some classloading issue associated with JRE. Unlikely.
How i use the 1.5.0 jre? Same way as the 1.4.2 JRE.
Btw, there are some application running in the box so i may not be able to switch to 1.5 entirely.Not relevant. -
Classloader issue when deploying a war file
Hello,
Using Jdev 11.1.1.3 with WebLogic 10.3.2.0 when we deploy a new version of our war file we get a ClassCastException for an entity class that cannot be cast on itself ! We are using standalone JPA for persistence.
Caused by: javax.faces.el.EvaluationException: java.lang.ClassCastException: gouv.micc.intimm.pers.model.entite.Personne cannot be cast to gouv.micc.intimm.pers.model.entite.Personne
It looks like a classloader cache issue. This happend even if we first delete the war file before we upload a new one. The only way to solve this is to restart WebLogic. Any idea?Seems like a WebLogic issue - try asking on that forum:
http://forums.oracle.com/forums/category.jspa?categoryID=193 -
AuditProvider classloading issues
Hi all,
We are implementing an AuditProvider for WLS that communicates via SOAP with a custom application that provides secure audit storage.
We have followed the following example to implement the base of the provider:
https://codesamples.projects.dev2dev.bea.com/servlets/Scarab?id=S189
After that, we used the clientgen Ant task to generate the SOAP access code, and packaged everything in an MJF file using MBeanMaker.
We copy the MJF to WL_HOME/server/lib/mbeantypes, configure the MBean using the admin console.
However, when restarting stuff, during our AuditProvider initialization we get:
javax.xml.rpc.ServiceException: weblogic client internal deployment descriptor com/kroopier/bea/sap/soap/BEAAuditLogService_internaldd.xml not found. Please make sure all clientgen generated files are in the classpath.
at weblogic.wsee.jaxrpc.ServiceImpl.loadWeblogicDD(ServiceImpl.java:397)
at weblogic.wsee.jaxrpc.ServiceImpl.loadInternalDD(ServiceImpl.java:346)
at weblogic.wsee.jaxrpc.ServiceImpl.<init>(ServiceImpl.java:110)
at com.kroopier.bea.sap.soap.BEAAuditLogService_Impl.<init>(BEAAuditLogService_Impl.java:21)
at com.kroopier.bea.sap.soap.BEAAuditLogService_Impl.<init>(BEAAuditLogService_Impl.java:17)
Truncated. see log file for complete stacktraceUpon further research, it seems that the SOAP code generated by clientGen uses Thread.currentThread().getContextClassLoader() to load the support files (some xml files it generates). We suspect that this class loader is not the class loader being used to load the mjf jar, so the mjf jar contents (which include the file that cannot be found) are not used.
Is there a simple way to solve this?
Kind regards,
AlexThank you.
As we are creating an AuditProvider for distribution, we'd rather have it be a single jar file that goes into mbeantypes than having to put our jar into system classpath (i.e. I'd think this would make our provider less desirable).
My current line of reasoning is as follows:
1. We are trying to invoke code from our AuditProvider that uses Thread.currentThread().getContextClassLoader() for reflection purposes
2. Thread.currentThread().getContextClassLoader() does not include the AuditProvider jar deployed in mbeantypes, but the one in this.getClass().getClassLoader() does (I suspect that the this.getClass().getClassLoader() is the one that the class uses for loading the classes it needs).
3. Why would someone use Thread.currentThread().getContextClassLoader() to load classes? Clearly, if you are loading the rest of the classes your class needs with this.getClass().getClassLoader(), use that one, as you don't know what your thread's context class loader is.
Therefore, our hacky solution is to do this:
ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
// bad code that uses the thread's context class loader
finally {
Thread.currentThread().setContextClassLoader(threadClassLoader);
}Long term, I'd like to advise people (esp. the guys who wrote weblogic.wsee.tools.anttasks.ClientGenTask and Hessian- which is the code that's given us trouble so far) to use the current class' classloader for reflection stuff instead of the thread's.
Of course, I have my doubts that this hack won't cause further trouble, so I'd appreciate further feedback on this issue.
Alex -
Classloader issue with resource adapter and webservice
The following applications are planned to be deployed on the server.
1.My-shared-lib.ear (J2EE shared library).
2.My-Service-ear.ear (Service)
3.My-Resource-Adapter.rar
The My-shared-lib.ear contains a war which has 3rd Party jars.
The My-Service-ear.ear contains the service classes and refers to the My-shared-lib.ear using a library relationship. In our case, it refers to spring, Hibernate and related jars.
The My-Resource-Adapter.rar contains the Resources Adapters. In this case it contains the Spring jars.
Points on Setup
1.The configuration does not specify any jars in the classpath.
2.There are no 3rd party jars in the ext folder.
*2.Issue Description*
Issue while starting the Service EAR.*
The development setup has an application server that has My-shared-lib.ear and My-Service-ear.ear deployed. This works fine.
The proposed deployment architecture mandates that these applications be deployed on a server where the My-Resource-Adapter.rar is already running. We can deploy & start My-shared-lib.ear . However, when we try to deploy and start My-Service-ear.ear, it fails to start with the error. The detailed exception is found in Appendix A.
Error Message:
java.lang.NoClassDefFoundError: org/hibernate/ejb/HibernatePersistence
*3.Options tried*
1.Place all the required jars in the .rar.
We placed all the 3rd party jars required for the My-Service-ear.ear in the My-Resource-Adapter.rar file. When we deployed all the 3 applications, all applications including the My-Service-ear.ear were deployed and started as well.
2.Place all the required jars in the Service ear.
We placed all the 3rd party jars required for the My-Service-ear.ear in the My-Service-ear.ear file with the <prefer-web-inf-classes>true</prefer-web-inf-classes>. When we deployed all the 3 applications, all applications including the My-Service-ear.ear were deployed and started as well.
3.Altering deployment order.
The deployment order was altered with a higher preference being given to the My-Service-ear.ear. When we deployed all the 3 applications, the application My-Service-ear.ear was deployed but failed to start giving the same exception.
*4.Analysis*
1.The spring jar though available in the library ear is being loaded from the .rar application by the classloader.
2.The above point means that the library reference being provided in the My-Service-ear.ear does not seem to have any impact.
3.In the 3rd scenario we observed that when the spring is removed from the .rar, it gets loaded from the My-shared-lib.ear. However when it tries to load Hibernate related classes, it fails.
*5.Summary*
Our understanding is that all the applications run within their own Classloaders. If classes are not found within the applications, then they should be looking at the Application Server. But here we see that they are referring to the classes in ‘.rar’ file. Hence we are unable to understand this issue. The above problem has workarounds. However, these options are not allowed as per the requirement. The requirement is that the application should run independent of the’ .rar’. Is there a better approach? Are we missing any configuration?
Edited by: user8575867 on Oct 13, 2010 11:41 PMThis thread caught my attention - because since switching last week from a late '06 Macbook to the Macbook Pro 13", my Wifi performance at home has gotten slow and unreliable.
I'm using the Apple MiniDP-DVI adapter, connected to a 24" Dell monitor, which has worked great for a few years on my white Macbook. My base station is a Linksys WRTSL54GS, located about 20 feet away from my desk.
So, I tried some speed tests with and without the DVI. Performance with the adapter connected is terrible, disconnected it's perfect. Further testing shows that positioning matters.
When the adapter is turned back 90 degrees, leading the monitor cable towards the back of my desk, Wifi performance is bad. When I turn the adapter so it sticks straight out the left side of the Macbook Pro, performance is normal.
This is a little weird, but an acceptable workaround for me. -
ClassNotFoundException in EJB's and Threads (Classloader issue)
A very interesting bug has cropped up in WebLogic 6.1. When a J2EE
application packaged appropriately, a client application running in a
user-created Thread will always throw a ClassNotFoundException when
attempting to get back a user-created object from an EJB living on
another cluster. This error does not happen when the call is being made
from outside a Thread.
Sounds strange, I know, so I'll try to give everyone as much detail as
possible so they can avoid this bug, and so that the folks at BEA can
fix it.
* A java class running inside a clustered WL6.1 server is attempting to
reference an EJB on another clustered WL 6.1 server. Accessing the bean
is not a problem, the client class is able to obtain a remote reference
to the bean and make method calls on it. Calling a method causes the
following stack trace:
2002-01-11 10:36:57,331 [Thread-4] ERROR
wpni.app.mywp.display.DisplayJobs$JobsMonitor -
wpni.app.mywp.display.DisplayJobs$JobsMonitor.run: Error checking Jobs
status.
java.rmi.UnmarshalException: failed to unmarshal class
wpni.app.jobs.JobsData; nested exception is:
java.lang.ClassNotFoundException: wpni.app.jobs.JobsData: This
error could indicate that a component was deployed on a cluster member
but not other members of that cluster. Make sure that any component
deployed on a server that is part of a cluster is also deployed on all
other members of that cluster
java.lang.ClassNotFoundException: wpni.app.jobs.JobsData: This error
could indicate that a component was deployed on a cluster member but
not other members of that cluster. Make sure that any component deployed
on a server that is part of a cluster is also deployed on all other
members of that cluster
at
weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:146)
at
weblogic.rjvm.MsgAbbrevInputStream.readClassDescriptor(MsgAbbrevInputStream.java:211)
at
weblogic.common.internal.ChunkedObjectInputStream$NestedObjectInputStream.readClassDescriptor(ChunkedObjectInputStream.java:290)
at
java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:906)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at
java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at
weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:107)
at
weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:115)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)
at
weblogic.rmi.internal.BasicRemoteRef.unmarshalReturn(BasicRemoteRef.java:230)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:254)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:220)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy140.getJobsData(Unknown Source)
at
wpni.app.mywp.display.DisplayJobs$JobsMonitor.run(DisplayJobs.java:48)
at java.lang.Thread.run(Thread.java:484)
* The class that is not found (JobsData) is definitely in the EAR file
on both the client cluster and the server cluster, and in the
appropriate location.
* When we attempted to run the code outside of a Thread, everything
worked perfectly, so it was definitely the Thread that was causing the
problem.
* Deploying the EJB on the client cluster did not do anything to solve
the problem.
* Adding the JobsData to the System CLASSPATH at the startup of the
WebLogic server DID solve the problem. But of course that defeats the
purpose of packaging everything in the EAR file.
So, the conclusion seems to be that when DisplayJobs$JobsMonitor kicked
off the Thread, the Thread should have been created in either the WAR's
classloader or the JAR's classloader (wouldn't matter, since the
JobsData class is in the JAR's classloader, which is a parent of the
WAR's classloader). But instead, the Thread is being created in the
System classloader, which can't find the JobsData class!
We believe that any Thread created by a class living within an EAR's
classloader should remain within that same classloader, and not migrate
to any other classloader, in order to avoid situations like this. We're
opening a case with BEA to attempt to get this resolved. In the
meantime, we recommend to developers that if they have to make
cross-cluster RMI calls from inside user-created Threads, that they only
attempt to receive primitive types or standard JDK objects. Otherwise,
you'll have to add the classes to the System CLASSPATH at startup of the
WebLogic instance.
Thanks,
Erin
* "[White House spokeperson Ari] Fleischer
* warned Democrats this morning against
* investigations into the Bush administration's
* dealings with Enron. 'The American people
* are tired of partisan witch hunts and endless
* investigations,' he said." [Ed.: Uh... ]
* www.washingtonpost.com/wp-dyn/articles/A25159-2002Jan10.html
* Erin Reid Myers, Chief Architect
* WashingtonPost.Newsweek Interactive
* [email protected]
* Work: (703) 469-3154
* Cell: (703) 725-3050
[att1.html]Things can go seriously wrong if your application uses user threads (violating
EJB spec programming restrictions and BEA recommendations).
I'm curious, does it work if you enable network classloading on the server
which invokes remote EJB (in config.xml -
<Server NetworkClassLoadingEnabled="true" ...
</Server>
Erin Reid Myers <[email protected]> wrote:
A very interesting bug has cropped up in WebLogic 6.1. When a J2EE
application packaged appropriately, a client application running in a
user-created Thread will always throw a ClassNotFoundException when
attempting to get back a user-created object from an EJB living on
another cluster. This error does not happen when the call is being made
from outside a Thread.
Sounds strange, I know, so I'll try to give everyone as much detail as
possible so they can avoid this bug, and so that the folks at BEA can
fix it.
* A java class running inside a clustered WL6.1 server is attempting to
reference an EJB on another clustered WL 6.1 server. Accessing the bean
is not a problem, the client class is able to obtain a remote reference
to the bean and make method calls on it. Calling a method causes the
following stack trace:
2002-01-11 10:36:57,331 [Thread-4] ERROR
wpni.app.mywp.display.DisplayJobs$JobsMonitor -
wpni.app.mywp.display.DisplayJobs$JobsMonitor.run: Error checking Jobs
status.
java.rmi.UnmarshalException: failed to unmarshal class
wpni.app.jobs.JobsData; nested exception is:
java.lang.ClassNotFoundException: wpni.app.jobs.JobsData: This
error could indicate that a component was deployed on a cluster member
but not other members of that cluster. Make sure that any component
deployed on a server that is part of a cluster is also deployed on all
other members of that cluster
java.lang.ClassNotFoundException: wpni.app.jobs.JobsData: This error
could indicate that a component was deployed on a cluster member but
not other members of that cluster. Make sure that any component deployed
on a server that is part of a cluster is also deployed on all other
members of that cluster
at
weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:146)
at
weblogic.rjvm.MsgAbbrevInputStream.readClassDescriptor(MsgAbbrevInputStream.java:211)
at
weblogic.common.internal.ChunkedObjectInputStream$NestedObjectInputStream.readClassDescriptor(ChunkedObjectInputStream.java:290)
at
java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:906)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:366)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at
java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
at
weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:107)
at
weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:115)
at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:56)
at
weblogic.rmi.internal.BasicRemoteRef.unmarshalReturn(BasicRemoteRef.java:230)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:254)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:220)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy140.getJobsData(Unknown Source)
at
wpni.app.mywp.display.DisplayJobs$JobsMonitor.run(DisplayJobs.java:48)
at java.lang.Thread.run(Thread.java:484)
* The class that is not found (JobsData) is definitely in the EAR file
on both the client cluster and the server cluster, and in the
appropriate location.
* When we attempted to run the code outside of a Thread, everything
worked perfectly, so it was definitely the Thread that was causing the
problem.
* Deploying the EJB on the client cluster did not do anything to solve
the problem.
* Adding the JobsData to the System CLASSPATH at the startup of the
WebLogic server DID solve the problem. But of course that defeats the
purpose of packaging everything in the EAR file.
So, the conclusion seems to be that when DisplayJobs$JobsMonitor kicked
off the Thread, the Thread should have been created in either the WAR's
classloader or the JAR's classloader (wouldn't matter, since the
JobsData class is in the JAR's classloader, which is a parent of the
WAR's classloader). But instead, the Thread is being created in the
System classloader, which can't find the JobsData class!
We believe that any Thread created by a class living within an EAR's
classloader should remain within that same classloader, and not migrate
to any other classloader, in order to avoid situations like this. We're
opening a case with BEA to attempt to get this resolved. In the
meantime, we recommend to developers that if they have to make
cross-cluster RMI calls from inside user-created Threads, that they only
attempt to receive primitive types or standard JDK objects. Otherwise,
you'll have to add the classes to the System CLASSPATH at startup of the
WebLogic instance.
Thanks,
Erin
* "[White House spokeperson Ari] Fleischer
* warned Democrats this morning against
* investigations into the Bush administration's
* dealings with Enron. 'The American people
* are tired of partisan witch hunts and endless
* investigations,' he said." [Ed.: Uh... ]
* www.washingtonpost.com/wp-dyn/articles/A25159-2002Jan10.html
* Erin Reid Myers, Chief Architect
* WashingtonPost.Newsweek Interactive
* [email protected]
* Work: (703) 469-3154
* Cell: (703) 725-3050
Dimitri -
EJB Classloader issue (dmcl40 library.dll already loaded)
I have written a stateless session bean. The session bean calls a documentum connection pool. This connection pool are java classes that use a dll (dmcl40.dll).
The Project is wrapped into a DC (one for ejb, one for app libs)
The dll-directory is set in the PATH environmentvariable.
Also, I set the classpath to my jar files in application-j2ee-engine.xml (tab expert settings -> classpath).
My problem is the EJB classloading. Any time the createSession method in the EJB (documentum) tries to create a session pool, i get the dmcl40 library already loaded error.
1. Where do I have to set the path to the library in WebAS to fix this?
2. is there a setting in the VisualAdmin, where one can set the path. Where can i set the path for parent classloader?
I am greateful for any hints.
thanks markusHi Markus,
Can u please let me know how did u solve ur problem?..
I am facing same problem and not able to fix it. So ur answer may be greatful to fix my problem..
Thanks in Advance.
Waiting ur Reply.
Best Regards,
Sadik. -
Given 3 deployed ears within the same weblogic 8.1sp4 server instance we try to pass a result object from ear1 to ear3 via ear2 (ear2 is basically a "heavyweight" facade for ear1).
-Ear1 -> Ear2 --> Ear3
ear2 and ear3 only know the interface implemented by the result object, the object itself gets instantiated in ear1. While unmarshalling and remote classloading of the result object works flawlessly in ear2, passing it on to ear3 causes a ClassNotFound exception in ear3 since the implementing class cannot be found.
Where should the implementing class be loaded from in ear3 or is passing remotely loaded classes over various nodes impossible?
Thanks in advance
/cpAmethastos Lorekeeper <> writes:
Looks like a bug to me, although how we would fix it I'm not sure.
andy
Given 3 deployed ears within the same weblogic 8.1sp4 server instance we try to pass a result object from ear1 to ear3 via ear2 (ear2 is basically a "heavyweight" facade for ear1).
-Ear1 -> Ear2 --> Ear3
ear2 and ear3 only know the interface implemented by the result object, the object itself gets instantiated in ear1. While unmarshalling and remote classloading of the result object works flawlessly in ear2, passing it on to ear3 causes a ClassNotFound exception in ear3 since the implementing class cannot be found.
Where should the implementing class be loaded from in ear3 or is passing remotely loaded classes over various nodes impossible?
Thanks in advance
/cp -
Classloader issue in 5.1
What is the proper way to cross link EJB entity beans in 5.1? Ive tried
every possible combination of (ejb-ref) in the ejb-jar.xml and
(ejb-resource-ref) in weblogic-ejb-jar.xml and when i deploy the beans.
Linked references fail and i get : **** not in archive $$$. It doesnt crash
however and the beans seem to deploy, but i really want to stabalize this.
Is there some way to force ONE classloader to deploy all the beans, or
do i simply need to dump more of these ejb-ref ' s everywhere??
thank you for any assistance.
Steve WanhellaI believe the solution is to ignore the message. It's looks nasty but it is harmless.
Probably got left in the release code by accident. I think SP9 does not print
the message.
Mike
"Steve Wanhella" <[email protected]> wrote:
>
What is the proper way to cross link EJB entity beans in 5.1? Ive
tried
every possible combination of (ejb-ref) in the ejb-jar.xml and
(ejb-resource-ref) in weblogic-ejb-jar.xml and when i deploy the beans.
Linked references fail and i get : **** not in archive $$$. It doesnt
crash
however and the beans seem to deploy, but i really want to stabalize
this.
Is there some way to force ONE classloader to deploy all the beans,
or
do i simply need to dump more of these ejb-ref ' s everywhere??
thank you for any assistance.
Steve Wanhella
Maybe you are looking for
-
please let me know how can resolve this issue... how can i compare 2 pdfs which are having more than 1000 pages. Acrobat
-
NI-DAQ PCI-6023E nt embedded component
Hi all I am trying to develop a KDF component for a ni-daq pci-6023e card and when I create the registy some keys stay in the CurrentControlSet instead of being related to ControlSet001. Can anyone help me??? Is there a solution to this problem or a
-
How to set gprs settings in i phone 4
Dear Sir How to set GPRS settings in i phone 4 pls send me the details Thanks
-
Certificate validation against multiple certificate chain
Hello everyone, I would like to have your opinion on a specific use case of the java.security.cert API. I've a set of trusted certificate chains provided in a trusted way by a CA. An example of a chain would be: R->I1->I2, R being a root certificate
-
How to disable snmp v1 and v2 on solaris 10?
Hi there, How can snmp v1 and v2 be disabled on solaris 10 update 3? We are only interested in keeping the v3 enabled.