EJB Statistics in the WLS 5.1
Hi all,
Am planning to get the values EJB Performance Statistics.
(A) Number of allocations
(B) Number of releases
(C) Max beans in free pool
(D) Current free pool size
(E) Max beans in cache
(F) Current cache size
(G) Idle timeout (millisecs)
Can any one of you tell me whether is it possible to retrieve the values from
the WLS 5.1 API or not.Any suggesstions are greatly appreciated.
/Bala
Sorry about that - I just moved from California to North Carolina, so my
home box will be offline for a while ;-)
Anyway, you can see a similar example at:
http://www.jguru.com/faq/view.jsp?EID=233008
"Schnaggy" <[email protected]> wrote in message
news:[email protected]..
>
"Dimitri I. Rakitine" <[email protected]> wrote:
In 5.1 it is tricky (unlike 6.x). Here is an example you can look
at: http://dima.dhs.org/misc/WLStats.jsp
Hi Dimitri,
your site seems to be unavailable, even your email address.
If you'll be looking at this please write some more information about yourfix.
Or even send another web site address...
Many thanx,
schnaggy:-)--
Dimitri
Similar Messages
-
How can use EJB local call in WLS 7.0 without EAR
I have web application as jsp files.
and I made .jar for some EJBs
and I used local call for calling EJB from jsps in WLS 6.1
but in WLS 7.0 .. occured error calling EJB as Local call
while JNDI lookup.
So I packed all applications as EAR and deployed then all works good.
but in developing I want to use JSPs as jsp files.
There is no way to use Local call to EJB in WLS 7.0 without packing EAR ? (like
WLS 6.1)The way JNDI lookups were implemented in 6.1 allowed to deploy individual ejb-jars
and access their local interfaces via JNDI lookups from other ejb-jars during
development. In production all ejb-jars will be packaged into an ear.
This is extremely helpful on large projects. E.g. my current project has over
120 CMP entity beans and over 40 session beans. Even on 2GHz class machine with
1Gb memory and JDK 1.4 (to enable full-speed debugging) it takes almost a minute
to deploy the ear (no matter whether it is exploded or not). It takes minutes
with 1.3 and debugging turned on.
6.1 implementation allowed to "pre-deploy" relatively static ejb-jars and still
access their local interfaces (by putting them on WL system classpath and deploying
as individual ejb-jars, so classes are accessible to local clients; it requires
WL restart when they are changed, but they don't change often). So during development
only changed jars (typically session facade) need to be redeployed on changes,
which takes only seconds. We didn't have problem with JNDI lookup performance
since we use the EJBHomeFactory pattern.
The behind-the-scene JNDI optimization "improvement" introduced in 7.0 makes it
no longer possible to use this technique, since even though classloading still
works in the same way, no objects are bound to JNDI tree and thus could not be
access from another ejb-jar. This significantly impacts developer productivity
(in our large project). It's not only about minutes lost (which btw makes hours
over time), it just disrupts developer's train of thought to have such long round
trip times. In fact this is the reason we are not going to migrate to WL 7.0.
Is it possible to provide an option to turn this "optimization" off and actually
bind JNDI objects?
Thank you,
Sergey
"Dimitri I. Rakitine" <[email protected]> wrote:
Park <[email protected]> wrote:
Thanks Rakitine.
I wonder if I use EAR while developing could I apply changes to EARwhithout packing
again.Sure - you can simply deploy your app as an 'exploded' EAR during development.
There is no probelm delivering time but in developing time ..
If I can not use that kind of way how can I make modification ?
Plz. let me know.
And I have one more question.
When I use EAR I met some problem.
I packed all JSP into one .war file.
fot that I had to inclde requred classes into .war because jsps usethese classes.
then I packed EAR file with WAR and some EJB jar files.
After then I deployed EAR file to WLS.
But If remove classes from classpth while EJB deploying Error occured.Because
EJBs reference these classes.
I thoght if I packed classes into .WAR .. there is no problem.
But Error occured.
I have to include classes into classpth for that ? or
Any mistakes in my way.No, you do not have to add anything to the system classpath. In fact,
you should
make sure that none of your application classes are in the system classpath.
thank you.
"Dimitri I. Rakitine" <[email protected]> wrote:
Yup, that appears to be the difference between 6.1 and 7.0 - in
6.1 success of a local invocation depended only on the Classloaders
arrangement, so everything worked when you added your classes to the
system classpath. In 7.0 looks like it also depends on the application
context - that's why you cannot do a JNDI lookup from another deployment
unit.
Is there any reason why you do not want to use EAR's ???
Park <[email protected]> wrote:
in WLS 6.1 ..
I have EJB as jar files. (deployed each to WLS)
and I added EJB interface class to classpath.
and I made WebApplication as Directory (not war file).
in that webappication jsp call EJB as Local interface.
These environment .. local call workes well in WLS 6.1.
but in 7.1 not works .. (JNDI look up error)
of course Remote call works well. and If I make EAR .. works well.
Rob Woollen <[email protected]> wrote:
You can have an exploded EAR and have it work.
Can you give some more detail on how you are deploying in 6.1. Is
it
an
exploded EAR, or do you have the ejb interfaces in the classpath?
This behavior should not have changed between 6.1 and 7.0.
-- Rob
park wrote:
I have web application as jsp files.
and I made .jar for some EJBs
and I used local call for calling EJB from jsps in WLS 6.1
but in WLS 7.0 .. occured error calling EJB as Local call
while JNDI lookup.
So I packed all applications as EAR and deployed then all works
good.
but in developing I want to use JSPs as jsp files.
There is no way to use Local call to EJB in WLS 7.0 without packingEAR ? (like
WLS 6.1)
Dimitri
Dimitri -
Is the WLS subject global across clients ??
I have the following setup running on WLS 7.0 - one web app and one
EJB app.
My web app has 2 servlets say servlet-A and servlet-B.
Servlet-A calls into an EJB app that has one EJB. This EJB is
protected by method level permissions i.e. only users of role
"TestRole" can access this EJB's methods (and this role is mapped to
the group "TestGroup" in the weblogic-ejb-jar XML file). Servlet-A
takes in a username/password (say username is "testuser")and checks an
external LDAP server for authentication of the same. If successful,
the servlet sets the current subject with the principals of this user
by calling weblogic.security.Security.getCurentUser().add(some_principal).
The principals include the user name as well as the "TestGroup" group.
The servlet then calls the EJB method. The EJB method passes since
"testuser" is in the "TestGroup" group.
Now, Servlet-B simply calls into the EJB without performing any
authentication. So when I next call servlet-B from within the SAME
browser instance, this servlet is also able to successfully call the
EJB method (as it sees the same subject set earlier by servlet-A).
NOW, i access servlet-B from another browser instance thus starting
a new session. This servlet is STILL able to call the EJB method
successfully. I print out the subject that this servlet sees, and it
is the SAME subject that was set by servlet-A in the earlier session.
I thus concluded that the subject set by the first session is a
"global" subject that is not linked to a session or client (as it
should be).
So my question is - It seems that the subject returned by
getCurrentUser() should be linked to a client or a HttpSession rather
than being "global", otherwise it seems to be a security breach since
malicious clients can access the server and perform actions in the
context of a subject that has already been set by another client. is
there some step I am missing here (ie should I clear the global
subject each time when returning from servlet-A) to achieve this
behavior? Or am I interpreting this behavior incorrectly?Probably not....if I have an app where EJBs are protected by standard method level
permissions to specific roles, and use BASIC authentication for my servlets, this
is working fine....its only when I move from the "container managed" security
(ie BASIC authentication) to a more programmatic approach that I see this problem
of a "sticky" subject....
"Quantos Quattro" <[email protected]> wrote:
Hi,
Ehm, I think you are seeing that the EJB method is not protected.
There appears to be a bug in WL about this - I saw this:
" 075219 Fixed problem that roles and policies were not enforced on
EJBs."
here
http://e-docs.bea.com/wls/docs70/pre_rel_notes/resolved.html
Perhaps that is why you are observing your problem?
Regards,
Jon -
Ejb-ref in the deployment descriptor
Could someone help me on how to configure an ejb-reference in the 3 xml
files.
ejb-jar.xml, weblogic-ejb-jar.xml and web.xml
These are the entries for my application, but I get some exception. Can
somebody help me pls?
ejb-jar.xml
<enterprise-beans>
<session id="Abcd">
<small-icon></small-icon>
<ejb-name>ABCD</ejb-name>
<home>AbcdHome</home>
<remote>AbcdRemote</remote>
<ejb-class>AbcdBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
web.xml contains the foll,
<ejb-ref>
<ejb-ref-name>ejb/abcd</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>AbcdHome</home>
<remote>AbcdRemote</remote>
<ejb-link>ABCD</ejb-link>
</ejb-ref>
weblogic.ejb-jar.xml contains,
<weblogic-enterprise-bean>
<ejb-name>ABCD</ejb-name>
<caching-descriptor>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
</caching-descriptor>
<reference-descriptor>
<ejb-reference-description>
<ejb-ref-name>ejb/abcd</ejb-ref-name>
<jndi-name>ejb/ABCD</jndi-name>
</ejb-reference-description>
</reference-descriptor>
</weblogic-enterprise-bean>
But when i run the application, I get the foll exception,
In EJB RemotePlatform, a session or entity bean that has a remote home m
ust be given a JNDI name in the weblogic-ejb-jar.xml descriptor file.
at weblogic.ejb20.compliance.EJBComplianceChecker.check(EJBComplianceChe
cker.java:256)
at weblogic.ejb20.compliance.EJBComplianceChecker.checkDeploymentInfo(EJ
BComplianceChecker.java:220)
at weblogic.ejb20.ejbc.EJBCompiler.complianceCheckJar(EJBCompiler.java:4
52)
at weblogic.ejb20.ejbc.EJBCompiler.checkCompliance(EJBCompiler.java:409)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:202)
at weblogic.ejb20.deployer.Deployer.runEJBC(Deployer.java:296)
at weblogic.ejb20.deployer.Deployer.compileEJB(Deployer.java:676)
at weblogic.ejb20.deployer.Deployer.deploy(Deployer.java:843)
at weblogic.j2ee.EJBComponent.deploy(EJBComponent.java:30)
at weblogic.j2ee.Application.addComponent(Application.java:160)
at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Dep
loymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeploy
ments(DeploymentTarget.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(
DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy34.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeplo
yments(ServerMBean_CachingStub.java:2706)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManag
er(ApplicationManager.java:360)
at weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
nManager.java:152)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy48.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub
.start(ApplicationManagerMBean_CachingStub.java:479)
at weblogic.management.Admin.startApplicationManager(Admin.java:1138)
at weblogic.management.Admin.finish(Admin.java:561)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:501)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
at weblogic.Server.main(Server.java:35)
>
<Jan 31, 2002 3:56:18 PM PST> <Error> <J2EE> <Error deploying application
Defaul
tVoiceApp: Could not load DefaultVoiceApp>
java.lang.reflect.UndeclaredThrowableException:
weblogic.xml.dom.DOMProcessingEx
ception: Could not setup environment for EJBReference or ResourceReference.
Can
not find WEB-INF/weblogic.xml in the Web application.
at weblogic.servlet.internal.WebAppServletContext.initFromDescriptors(We
bAppServletContext.java:1509)
at weblogic.servlet.internal.WebAppServletContext.init(WebAppServletCont
ext.java:871)
at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletCo
ntext.java:806)
at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:413)
at weblogic.j2ee.WebAppComponent.deploy(WebAppComponent.java:74)
at weblogic.j2ee.Application.addComponent(Application.java:160)
at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:144)
at weblogic.management.mbeans.custom.WebServer.addWebDeployment(WebServe
r.java:76)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy35.addWebDeployment(Unknown Source)
at weblogic.management.configuration.WebServerMBean_CachingStub.addWebDe
ployment(WebServerMBean_CachingStub.java:1093)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:315)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Dep
loymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeploy
ments(DeploymentTarget.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(
DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy34.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeplo
yments(ServerMBean_CachingStub.java:2706)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManag
er(ApplicationManager.java:360)
at weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
nManager.java:152)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy48.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub
.start(ApplicationManagerMBean_CachingStub.java:479)
at weblogic.management.Admin.startApplicationManager(Admin.java:1138)
at weblogic.management.Admin.finish(Admin.java:561)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:501)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
at weblogic.Server.main(Server.java:35)
--------------- nested within: ------------------
weblogic.j2ee.DeploymentException: Could not load DefaultVoiceApp - with
nested
exception:
[weblogic.xml.dom.DOMProcessingException: Could not setup environment for
EJBRef
erence or ResourceReference. Cannot find WEB-INF/weblogic.xml in the Web
applic
ation.]
at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:416)
at weblogic.j2ee.WebAppComponent.deploy(WebAppComponent.java:74)
at weblogic.j2ee.Application.addComponent(Application.java:160)
at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:144)
at weblogic.management.mbeans.custom.WebServer.addWebDeployment(WebServe
r.java:76)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy35.addWebDeployment(Unknown Source)
at weblogic.management.configuration.WebServerMBean_CachingStub.addWebDe
ployment(WebServerMBean_CachingStub.java:1093)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:315)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Dep
loymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeploy
ments(DeploymentTarget.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(
DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy34.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeplo
yments(ServerMBean_CachingStub.java:2706)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManag
er(ApplicationManager.java:360)
at weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
nManager.java:152)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy48.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub
.start(ApplicationManagerMBean_CachingStub.java:479)
at weblogic.management.Admin.startApplicationManager(Admin.java:1138)
at weblogic.management.Admin.finish(Admin.java:561)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:501)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
at weblogic.Server.main(Server.java:35)
Can someone help me on what to set in sequence please. Any help would highly
be appreciated.
Thanks in advance.
Regards
AruAaru,
Verify the document structure @
http://e-docs.bea.com/wls/docs61/ejb/reference.html#1026457
jndi-name is of the ejb is missing in your WEJ.xml
and the jndi-name defined under
<reference-descriptor><ejb-reference-description>
</reference-descriptor></ejb-reference-description>
is the reference jndi-name(referenced by this bean)
For more info refere
the weblogic 6.x dtd
http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd
Venki..
Aru wrote:
As per the doc that you referred, the doc too says that the jndi-name should
be within the ejb-reference-description which in turn is inside the
reference-descriptor. I don't get what you tried to say. Am I missing
anything? Could you please make sure that for me.
Just with curiosity I even tried your suggestion but it gives me the
exception as expected,
The XML parser encountered an error in your deployment descriptor. Please
ensure
that your deployment descriptor corresponds to the format in the DTD. The
error
was:
org.xml.sax.SAXParseException: The content of element type
"ejb-reference-descr
iption" is incomplete, it must match "(ejb-ref-name,jndi-name)".
"Venki Seshaadri" <[email protected]> wrote in message
news:[email protected]...
Aaru,
<jndi-name> should be outside <reference-descriptor>
refer to http://e-docs.bea.com/wls/docs61/ejb/reference.html#1026457
<weblogic-enterprise-bean>
<reference-descriptor>...</reference-descriptor>
<jndi-name>ejb/ABCD</jndi-name>
</weblogic-enterprise-bean>
Hope this helps,
Venki
[email protected]
Aru wrote:
FYI, I am using Weblogic 6.1
"Aru" <[email protected]> wrote in message
news:[email protected]...
Could someone help me on how to configure an ejb-reference in the 3 xml
files.
ejb-jar.xml, weblogic-ejb-jar.xml and web.xml
These are the entries for my application, but I get some exception. Can
somebody help me pls?
ejb-jar.xml
<enterprise-beans>
<session id="Abcd">
<small-icon></small-icon>
<ejb-name>ABCD</ejb-name>
<home>AbcdHome</home>
<remote>AbcdRemote</remote>
<ejb-class>AbcdBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
web.xml contains the foll,
<ejb-ref>
<ejb-ref-name>ejb/abcd</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>AbcdHome</home>
<remote>AbcdRemote</remote>
<ejb-link>ABCD</ejb-link>
</ejb-ref>
weblogic.ejb-jar.xml contains,
<weblogic-enterprise-bean>
<ejb-name>ABCD</ejb-name>
<caching-descriptor>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
</caching-descriptor>
<reference-descriptor>
<ejb-reference-description>
<ejb-ref-name>ejb/abcd</ejb-ref-name>
<jndi-name>ejb/ABCD</jndi-name>
</ejb-reference-description>
</reference-descriptor>
</weblogic-enterprise-bean>
But when i run the application, I get the foll exception,
In EJB RemotePlatform, a session or entity bean that has a remote home m
ust be given a JNDI name in the weblogic-ejb-jar.xml descriptor file.
at weblogic.ejb20.compliance.EJBComplianceChecker.check(EJBComplianceChe
cker.java:256)
at weblogic.ejb20.compliance.EJBComplianceChecker.checkDeploymentInfo(EJ
BComplianceChecker.java:220)
at weblogic.ejb20.ejbc.EJBCompiler.complianceCheckJar(EJBCompiler.java:4
52)
at weblogic.ejb20.ejbc.EJBCompiler.checkCompliance(EJBCompiler.java:409)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:202)
at weblogic.ejb20.deployer.Deployer.runEJBC(Deployer.java:296)
at weblogic.ejb20.deployer.Deployer.compileEJB(Deployer.java:676)
at weblogic.ejb20.deployer.Deployer.deploy(Deployer.java:843)
at weblogic.j2ee.EJBComponent.deploy(EJBComponent.java:30)
at weblogic.j2ee.Application.addComponent(Application.java:160)
at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Dep
loymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeploy
ments(DeploymentTarget.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(
DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy34.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeplo
yments(ServerMBean_CachingStub.java:2706)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManag
er(ApplicationManager.java:360)
at weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
nManager.java:152)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy48.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub
.start(ApplicationManagerMBean_CachingStub.java:479)
at weblogic.management.Admin.startApplicationManager(Admin.java:1138)
at weblogic.management.Admin.finish(Admin.java:561)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:501)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
at weblogic.Server.main(Server.java:35)
<Jan 31, 2002 3:56:18 PM PST> <Error> <J2EE> <Error deploying
application
Defaul
tVoiceApp: Could not load DefaultVoiceApp>
java.lang.reflect.UndeclaredThrowableException:
weblogic.xml.dom.DOMProcessingEx
ception: Could not setup environment for EJBReference or
ResourceReference.
Can
not find WEB-INF/weblogic.xml in the Web application.
at weblogic.servlet.internal.WebAppServletContext.initFromDescriptors(We
bAppServletContext.java:1509)
at weblogic.servlet.internal.WebAppServletContext.init(WebAppServletCont
ext.java:871)
at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletCo
ntext.java:806)
at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:413)
at weblogic.j2ee.WebAppComponent.deploy(WebAppComponent.java:74)
at weblogic.j2ee.Application.addComponent(Application.java:160)
at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:144)
at weblogic.management.mbeans.custom.WebServer.addWebDeployment(WebServe
r.java:76)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy35.addWebDeployment(Unknown Source)
at weblogic.management.configuration.WebServerMBean_CachingStub.addWebDe
ployment(WebServerMBean_CachingStub.java:1093)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:315)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Dep
loymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeploy
ments(DeploymentTarget.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(
DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy34.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeplo
yments(ServerMBean_CachingStub.java:2706)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManag
er(ApplicationManager.java:360)
at weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
nManager.java:152)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy48.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub
.start(ApplicationManagerMBean_CachingStub.java:479)
at weblogic.management.Admin.startApplicationManager(Admin.java:1138)
at weblogic.management.Admin.finish(Admin.java:561)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:501)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
at weblogic.Server.main(Server.java:35)
--------------- nested within: ------------------
weblogic.j2ee.DeploymentException: Could not load DefaultVoiceApp - with
nested
exception:
[weblogic.xml.dom.DOMProcessingException: Could not setup environment
for> >>>>EJBRef>>>>erence or ResourceReference. Cannot find WEB-INF/weblogic.xml in the Web>>>>applic>>>>ation.
at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:416)
at weblogic.j2ee.WebAppComponent.deploy(WebAppComponent.java:74)
at weblogic.j2ee.Application.addComponent(Application.java:160)
at weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:144)
at weblogic.management.mbeans.custom.WebServer.addWebDeployment(WebServe
r.java:76)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy35.addWebDeployment(Unknown Source)
at weblogic.management.configuration.WebServerMBean_CachingStub.addWebDe
ployment(WebServerMBean_CachingStub.java:1093)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
oymentTarget.java:315)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Dep
loymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeploy
ments(DeploymentTarget.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(
DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy34.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeplo
yments(ServerMBean_CachingStub.java:2706)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManag
er(ApplicationManager.java:360)
at weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
nManager.java:152)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
eanImpl.java:606)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
.java:590)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
ionMBeanImpl.java:350)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
55)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
23)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:444)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
at $Proxy48.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub
.start(ApplicationManagerMBean_CachingStub.java:479)
at weblogic.management.Admin.startApplicationManager(Admin.java:1138)
at weblogic.management.Admin.finish(Admin.java:561)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:501)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
at weblogic.Server.main(Server.java:35)
Can someone help me on what to set in sequence please. Any help would
highly
be appreciated.
Thanks in advance.
Regards
Aru -
What does the WLS execute?
We are having a little problem in our production environment. Sometimes the database
goes crazy. That means the load on the database is very high for a couple of hours,
which results in WLS is unable to deliver a response (or at least a very slow
one). This behavior only happens with weeks in between. It has now happend two
times, and each time we can see that some SQL on the databse is executed around
500 times per sec. The SQL is common - so to speak (like findByPK), and therefore
we are not able to pinpoint the problem on the WLS. What we want to do, is to
be able to perform some runtime call against the WLS when the problem happens
again, and then see what e.g. is on the Queue. I know that you can do this with
MBeans, but can you do it so precisly that you can see which Methods on the ejbs
that is called? and if so how?I would post this to the EJB newsgroups, I have put a follow up for them on
this message.
cheers
mbg
"Allan Kaufmann" <[email protected]> wrote in message
news:[email protected]..
>
We are having a little problem in our production environment. Sometimesthe database
goes crazy. That means the load on the database is very high for a coupleof hours,
which results in WLS is unable to deliver a response (or at least a veryslow
one). This behavior only happens with weeks in between. It has now happendtwo
times, and each time we can see that some SQL on the databse is executedaround
500 times per sec. The SQL is common - so to speak (like findByPK), andtherefore
we are not able to pinpoint the problem on the WLS. What we want to do, isto
be able to perform some runtime call against the WLS when the problemhappens
again, and then see what e.g. is on the Queue. I know that you can do thiswith
MBeans, but can you do it so precisly that you can see which Methods onthe ejbs
that is called? and if so how? -
Question about JAX-WS together with EJB 3.0 on WLS 10.3
Hi all,
I am developing a application that it is running on WebLogic 10.3. The application expose EJB 3.0 methods as web services by @WebService & @WebMethod annotation. And my question is,
1. Is there any way to specify the context path/root for those exposed EJB? Currently the contextpath is same as the EJB's name
2. And is there a method to disable the "scanning" of JAX-WS annotation on startup/deployment? The reason behind is that, some of the EJB jar files are coming from other team. I need to deploy it as EJB but not as a web service.
Thanks
Regards,
RockHi guys,
Here is what Eduardo is talking about:
https://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=407022.1
(Doc ID: Note:407022.1)
Rgds,
Fábio. -
Dear Colleagues,
I am currently developing a J2EE application using WLS 6.1.
My team and I have to implement a security requirement to suit our company's needs.
The security requirements are that, users' password need to be aged (30 days maximum) and we need to provided a GUI front-end (JSP) to allow users to change their password when these expire after 30 days.
Our internal contacts in the company, have already taken the lead to find out about whether we will be able to use the WLS 6.1 platform to do this and the answer we got back, was.
Now we need to develop our own security module.
I have 2 questions:
1. How can we turn off the WLS security in order develop our own application-based security module?
2. How can we develop a security module that allows us to age users' password and provide them with facilities to change their passwords when these expire?
At the moment, we are using the default BEA WebLogic login.jsp page and there some configuration in the web.xml for this. I will be grateful if you could advise me on how to turn this default security off so that we can write our own security module.hi,
1.You can write your own realm in 61 which can plugged for your security
calls.
2. once you write your ownrealm.. you can access it through weblogic
api/ur api..
thanks
kiran
"Richard Koudry" <[email protected]> wrote in message
news:3dd0d081$[email protected]..
Dear Colleagues,
I am currently developing a J2EE application using WLS 6.1.
My team and I have to implement a security requirement to suit ourcompany's needs.
>
The security requirements are that, users' password need to be aged (30days maximum) and we need to provided a GUI front-end (JSP) to allow users
to change their password when these expire after 30 days.
>
Our internal contacts in the company, have already taken the lead to findout about whether we will be able to use the WLS 6.1 platform to do this and
the answer we got back, was.
>
Now we need to develop our own security module.
I have 2 questions:
1. How can we turn off the WLS security in order develop our ownapplication-based security module?
>
2. How can we develop a security module that allows us to age users'password and provide them with facilities to change their passwords when
these expire?
>
At the moment, we are using the default BEA WebLogic login.jsp page andthere some configuration in the web.xml for this. I will be grateful if you
could advise me on how to turn this default security off so that we can
write our own security module. -
Are the WLS 9.1 Web Service Ant Tasks ready for prime time?
I am trying to create a Proof of Concept (POC) for Enterprise and B2B Services at Wendy's Int'l, Inc.
As part of this POC, I created a WSDL for an in-house service and then used the wsdlc and jwsc Ant Tasks to translate this WSDL to Java classes and ultimately (I hoped) a deployable services.
In this document, I describe the issues I encountered setting up what I consider to be a simple POC.
I'll try to attach my WSDL file and build.xml so you can follow along.
I'll also try to attach my CSS file so you can compare how the generated WSDL appears in the Browser to the way I want it to appear.
If attachments are not allowed on these forums, then I will wait and see if there is interest in those documents before I paste them under this topic.
Some preliminary information about my environment.
Environment:
Windows XP Pro SP2
WebLogic 9.1
Java 1.5.0_04
Service Name:
AppRelease
Note: If I modify my WSDL (perhaps to add a new Operation or to change the definition of an element) and run wsdlc again, the AppReleaseSOAPPortImpl.java file is overwritten For this reason, I implemented my service logic in a class called AppReleaseServiceImple.java.
Now, for the issues.
1. Bug:
In the WSDL generated by wsdlc, the wsdl:part child of the wsdl:message tag is erroneously prefixed with a colon.
This occurs whether or not I specify a prefix for the http://schemas.xmlsoap.org/wsdl/ namespace.
Work around: Extract the wsdl from the jar file, fix it and add it back into the jar.
2. Bug:
In the WSDL generated by wsdlc, the wsdl:input and wsdl:output children of the wsdl:operation child of wsdl:portType tag are erroneously prefixed with a colon. Like 1 above, this occurs whether or not I specify a prefix for the http://schemas.xmlsoap.org/wsdl/ namespace.
Work around: Extract the wsdl from the jar file, fix it and add it back into the jar.
The error message generated by Bugs 1 and 2 is not helpful in diagnosing the problem:
[jwsc] Error at line:46 col:7 ':' expected [?! -- [CDATA[ ]
3. Bug:
In the WSDL generated by wsdlc, the documentation elements have all of my html elements stripped out, as well as my xhtml and wsdl namespace references. This completely negates one of the best features of the documentation tag, being able to present the WSDL in a browser as a nicely formatted, human friendly document which is also the underlying WSDL that can be viewed when the person views the source document.
I label this as a bug because it greatly reduces the functionality of the resulting WSDL.
4. Annoyance:
The WSDL generated by wsdlc has all of my comments stripped out, except the comments in the xsd:schema section of the wsdl:types element. I would prefer that all my comments be left in the WSDL, but if comments must be stripped out then I think all of the comments should be stripped out.
5. Annoyance:
The WSDL generated by wsdlc has my CSS specification stripped.
Work around: I don’t know if adding the CSS back will do any good because I have not yet created a deployable service (see the last issue below).
6. Annoyance:
The WSDL generated by wsdlc has different namespace prefixes than the ones I specified for my application's namespace and for the http://schemas.xmlsoap.org/wsdl/soap/ namespace.
Work around: Perform a find/replace on namespace prefixes "s0" and "s1" to return them to my prefered values.
Another thing I can do at this point is simply replace the generated WSDL in the jar file with my original WSDL. This would address issues 1 thru 6 above.
7. Annoyance:
The java source files created by wsdlc are put into a jar file. This makes it annoying when working within a traditional IDE like Eclipse because there is no way to reference the source files within the jar as working source.
Work around: Extract the source files from the jar and identify the resulting directory structure as part of the source structure of the project.
8. Bug:
The jwsc task complains if the same parameter name is used in multiple operations. I received the following Errors from jwsc:
[jwsc] C:\IDE\workspace\Acre-WL9.1\AppReleaseSOAPPort.java 0:0
[jwsc] [ERROR] - Parameter element "{http://acre.services.wendys.com/AppRelease/}garRequest" is not unique across document/literal bare WebService.
Since the operation names are unique, I see no reason to also require uniqueness in the parameter names used by those operations.
Work around: Use unique element names for the input parameters of the services operations.
9. Bug:
Once items 1, 2 and 8 above are taken care of, jwsc fails with the following error:
java.lang.AssertionError: java.lang.ClassNotFoundException: weblogic.j2ee.descriptor.ApplicationBeanImpl
This seems to be due to the weblogic.jar file not being in the System Classpath.
However, I should note that when I set verbose="on" and debug="on" in the jwsc ant task, there was a message from the task which stated "[jwsc] [search path for class files: [big freakin’ jar list]". In the big freakin’ jar list, I did find weblogic.jar and weblogic.jar has the required ApplicationBeanImpl. This indicates to me that the jwsc task does not fully honor either its classpathref attribute, nor an embedded classpath element.
Work around: Make sure the weblogic.jar is in the System Classpath.
10. Bug:
I fixed bug #9 by running a setDomainEnv script and then ran my ant task. This time I received the following output:
ant build-serviceBuildfile: build.xml
build-service:
[jwsc] 1 JWS files will be processed.
[jwsc] Processing JWS: C:\IDE\workspace\Acre-WL9.1\src\com\wendys\services\acre\AppReleaseServiceImpl.java
[jwsc] JWS: C:\IDE\workspace\Acre-WL9.1\src\com\wendys\services\acre\AppReleaseServiceImpl.java Validated.
[AntUtil.deleteDir] Deleting directory <some temporary directory>
BUILD FAILED
java.lang.ExceptionInInitializerError
At this point, I am completely stymied about how to proceed.
I wonder what new issues await once this 10th issue is addressed.
Really, is this tool set ready for prime time?<i>Sorry to hear you are having so many issues with using the WLS 9.1 web service Ant tasks, inside of Eclipse.
I generally create a User Library for the couple weblogic jars needed, and use it (the User Library) in my Eclipse projects that I create JWSes in.</i><br>
I also have a separate WebLogic Library in Eclipse (actually 2 libraries since I work with WL 8.1 and now WL 9.1). As you may know, one of the long-standing issues with the Ant integration within Eclipse is the fact that Ant, being an External Tool, does not receive the Project-specific Paths/Libraries. However, since most Java-relevant Ant tasks can take classpath and classpathref attributes, this is usually not an issue. In the case of the BEA-supplied wsdlc Ant task, it is apparent from the verbose/debug console output that wsdlc can see the jars in its classpathref, but it ignores those references when resolving class references and instead only uses the system classpath.
<p>
<i>I've only needed the weblogic.jar and xbean.jar, not all the ones you mentioned in an earlier thread of this post.</i><br>
I have not tried to winnow down exactly which jars are required. I simply included all the jars that exist and were added to the system classpath by the setDomainEnv.bat file created by WebLogic 9.1.
<p>
<i>Afterwards, I create an Ant Builder to build the JWS Web Service EAR, as opposed to fiddlin' with Eclipse.</i><br>
I too use Ant to build my deployable archives. Eclipse is simply my IDE of choice. I validated that all the issues I listed occurred when running Ant from the command line.
<p>
<i>If you are interested in how I do it, send me an e-mail (to [email protected]), and I'll send you a zip of one of these JWS projects. The build.xml script for the project, takes care of a lot of the "annoyances" you mentioned, one of which I think is not accurate. I have never had a situation where the wsdlc Ant task "overwrote" my XXXImpl.java file..</i><br>
Since I'm doing a POC to determine how we want to proceed with developing Web Services and an SOA in general, I tried to perform the same tasks using Axis 2 1.0, the WebLogic 9.1 tools, and XFire 1.1. Overwriting the Impl class is a common failing in the tools which take a WSDL and create Java source files for all three frameworks.
<p>
Try my scenario. Add another operation to an existing WSDL, and run the wsdlc Ant Task. The old IMPL class will be over-written.
<p>
Because of this, I have a separate Impl class and I make sure that all its methods and annotations match the methods and annotations in the Skeleton Impl class created by wsdlc.
<p>
<i>Maybe that's because I use the <exec> Ant task with jar.exe (the xvf options) in my build.xml, to only get what I need out of the .jar/.zip the wsdlc generates. I'm typically only interest in the interface class that my XXXImpl.java file needs to implements, because I use XMLBeans for the input args (and return values) of my web service operations.</i><br>
Perhaps. I am not using XMLBeans in any of the three frameworks because the resulting service seems to be lighter-weight in all three frameworks if XMLBeans is not used. I'm sure there will be scenarios where XMLBeans is preferred, but I have not encountered that case in this POC.
<p>
<i>Regards,
Mike Wooten</i>
Thanks for the follow-up.
Mike McAngus -
Multiple EJB's with the same name
I have one EJB application which I deployed twice: JndiJarTest01 and JndiJarTest02.
It has a session bean FooBean with a remote interface FooRemote.
Then I have one WAR application: JndiWarTest.
From the NewServlet servlet in the WAR application I want to JNDI lookup a specific FooBean.
I am working with Glassfish.
sun-ejb-jar.xml of JndiJarTest01
<sun-ejb-jar>
<enterprise-beans>
<ejb>
<ejb-name>FooBean</ejb-name>
<ejb-ref>
<ejb-ref-name>ejb/FooBean01</ejb-ref-name>
<jndi-name>ejb/FooBean01</jndi-name>
</ejb-ref>
</ejb>
</enterprise-beans>
</sun-ejb-jar>
web.xml of JndiWarTest
<web-app...
<ejb-ref>
<ejb-ref-name>ejb/FooBean01</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<remote>com.bar.jndijartest.FooRemote</remote>
<ejb-link>FooBean01</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/FooBean02</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<remote>com.bar.jndijartest.FooRemote</remote>
<ejb-link>FooBean02</ejb-link>
</ejb-ref>
</web-app>
NewServlet.java
private FooRemote lookupFooBean(String which) {
try {
Context c = new InitialContext();
return (FooRemote) c.lookup("java:comp/env/ejb/FooBean"+ which);
} catch (NamingException ne) {
java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE, "exception caught", ne);
throw new RuntimeException(ne);
}I just can not get past the NameNotFoundException
javax.naming.NameNotFoundException: #com.bar.jndijartest.FooRemote not foundAny ideas? Or futher questions? Thanks.I did it! (Thanks to Jop.)
sun-ejb-jar.xml
<sun-ejb-jar>
<enterprise-beans>
<ejb>
<ejb-name>FooBean</ejb-name>
<jndi-name>ejb/FooBean01</jndi-name>
</ejb>
</enterprise-beans>
</sun-ejb-jar>I did not have to do anything with EJB's in the web.xml.
Change the JNDI lookup in NewServlet.java.
return (FooRemote) c.lookup("ejb/FooBean"+ which);It turned out to be easier than I thought. -
No EJBs found in the ejb-jar file
Hello all, we are thinking about migrating from JBoss to WebLogic server, so as a proof of concept I am trying to migrate a JBoss Seam web application to WebLogic server.
I have followed all the instructions here: http://docs.jboss.org/seam/2.0.2.SP1/reference/en-US/html/weblogic.html and I have set up ebvryhting that is needed in order to start the server (JMS queues, datasources, etc) but when the server starts and tries to load the web application I got the following error message
<29 ═Ύί 2010 4:34:51 ΉΉ EET> <Error> <Deployer> <BEA-149205> <Failed to initialize the application 'myapplication-ear' due to error weblogic.application.ModuleException: Exception preparing module
: EJBModule(MyApplication.jar)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
No EJBs found in the ejb-jar file 'MyApplication.jar'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with t
he @Stateless, @Stateful or @MessageDriven EJB annotation...
weblogic.application.ModuleException: Exception preparing module: EJBModule(MyApplication.jar)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
No EJBs found in the ejb-jar file 'MyApplication.jar'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with t
he @Stateless, @Stateful or @MessageDriven EJB annotation..
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:467)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:149)
Truncated. see log file for complete stacktrace
Caused By: java.io.IOException: No EJBs found in the ejb-jar file 'MyApplication.jar'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at l
east one class annotated with the @Stateless, @Stateful or @MessageDriven EJB annotation.
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyDescriptorFromJarFile(EjbDescriptorReaderImpl.java:219)
at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJarFile(EjbDescriptorFactory.java:93)
at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule.java:1242)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:395)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
Truncated. see log file for complete stacktrace
The MyApplication.jar is where we keep all the models and we are using an exploded folder for the ear file. We have declared all the classes to be entities by using the @Entity and @Table annotations and we have also defined an interceptor in the ejb-jar.xml file (shown below).
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
version="3.0">
<interceptors>
<interceptor>
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
</interceptor>
</interceptors>
<assembly-descriptor>
<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
</interceptor-binding>
</assembly-descriptor>
</ejb-jar>
I have tried to compile everythign from scratch by using weblogic.appc but I am getting the same error: No EJBs found in the ejb-jar file 'ejbModule'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with the @Stateless, @Stateful or @MessageDriven EJB annotation.
Any ideas what is going on and how I can resolve the issue?
Regards
Panos
Edited by: 816483 on 29 Νοε 2010 6:53 πμHi John,
I am working on development an enterprise application using EJB 3.0 on Weblogic 10.
While developing, I am keeping all my classes (from ejb's as well as web) into APP-INF/classes directory. It is working fine for Web and ejb 2.0 packages, but ejb 3.0 packages, I get the following error when I keep my ejb 3.0 beans classes in APP-INF/classes directory.
No EJBs found in the ejb-jar file 'customer'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with the @Stateless, @Stateful or @MessageDriven EJB annotation.
One solution is to keep the classes under customer ejb directory, but I wan tto keep all the classes in APP-INF/classes directory so that when using Eclipse IDE I can output all compiled sources into APP-INF/classes directory.
Has anyone faced this situation? Any suggestions to fix this issue? -
"Check Statistics" in the Performance tab. How to see SELECT statement?
Hi,
In a previous mail on SDN, it was explained (see below) that the "Check Statistics" in the Performance tab, under Manage in the context of a cube, executes the SELECT stament below.
Would you happen to know how to see the SELECT statements that the "Check Statistics" command executes as mentioned in the posting below?
Thanks
====================================
When you hit the Check Statistics tab, it isn't just the fact tables that are checked, but also all master data tables for all the InfoObjects (characteristics) that are in the cubes dimensions.
Checking nbr of rows inserted, last analyzed dates, etc.
SELECT
T.TABLE_NAME, M.PARTITION_NAME, TO_CHAR (T.LAST_ANALYZED, 'YYYYMMDDHH24MISS'), T.NUM_ROWS,
M.INSERTS, M.UPDATES, M.DELETES, M.TRUNCATED
FROM
USER_TABLES T LEFT OUTER JOIN USER_TAB_MODIFICATIONS M ON T.TABLE_NAME = M.TABLE_NAME
WHERE
T.TABLE_NAME = '/BI0/PWBS_ELEMT' AND M.PARTITION_NAME IS NULL
When you Refresh the stats, all the tables that need stats refreshed, are refreshed again. SInce InfoCube queries access the various master data tables in quereis, it makes sense that SAP would check their status.
In looking at some of the results in 7.0, I'm not sure that the 30 day check is being doen as it was in 3.5. This is one area SAP retooled quite a bit.
Yellow only indicates that there could be a problem. You could have stale DB stats on a table, but if they don't cause the DB optimizer to choose a poor execution plan, then it has no impact.
Good DB stats are vital to query performance and old stats could be responsible for poor performance. I'm just syaing that the Statistics check yellow light status is not a definitive indicator.
If your DBA has BRCONNECT running daily, you really should not have to worry about stats collection on the BW side except in cases immediately after large loads /deletes, and the nightly BRCONNECT hasn't run.
BRCONNECT should produce a lof every time it runs showing you all the tables that it determeined should have stats refreshed. That might be worth a review. It should be running daily. If it is not being run, then you need to look at running stats collection from the BW side, either in Process Chains or via InfoCube automatisms.
Best bet is to use ST04 to get Explain Plans of a poor running InfoCube query and then it can be reviewed to see where the time is being spent and whether stats ate a culprit.Hi,
Thanks, this is what I came up with:
st05,
check SQL Trace, Activate Trace
Now, in Rsa1
on Cube, Cube1,
Manage, Performance tab, Check Statistics
Again, back to st05
Deactivate Trace
then click on Displace Trace
Now, in the trace display, after scanning through the output,
how do I see the SELECT statements that the "Check Statistics" command executes
I will appreciate your help. -
Create new CBO statistics for the tables
Dear All,
I am facing bad performance in server.In SM50 I see that the read and delete process at table D010LINC takes
a longer time.how to create new CBO statistics for the tables D010TAB and D010INC. Please suggest.
Regards,
KumarHi,
I am facing problem in when save/activating any problem ,so sap has told me to create new CBO statistics for the tables D010TAB and D010INC
Now as you have suggest when tx db20
Table D010LINC
there error comes Table D010LINC does not exist in the ABAP Dictionary
Table D010TAB
Statistics are current (|Changes| < 50 %)
New Method C
New Sample Size
Old Method C Date 10.03.2010
Old Sample Size Time 07:39:37
Old Number 51,104,357 Deviation Old -> New 0 %
New Number 51,168,679 Deviation New -> Old 0 %
Inserted Rows 160,770 Percentage Too Old 0 %
Changed Rows 0 Percentage Too Old 0 %
Deleted Rows 96,448 Percentage Too New 0 %
Use O
Active Flag P
Analysis Method C
Sample Size
Please suggest
Regards,
Kumar -
How does Index fragmentation and statistics affect the sql query performance
Hi,
How does Index fragmentation and statistics affect the sql query performance
Thanks
Shashikala
ShashikalaHow does Index fragmentation and statistics affect the sql query performance
Very simple answer, outdated statistics will lead optimizer to create bad plans which in turn will require more resources and this will impact performance. If index is fragmented ( mainly clustered index,holds true for Non clustred as well) time spent in finding
the value will be more as query would have to search fragmented index to look for data, additional spaces will increase search time.
Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers
My TechNet Wiki Articles -
Servlet jndi lookup to remote EJB, servlet and EJB not in the same application
Hi,
I think that the subject explain my problem.
I have Oracle IAS9i 9.0.2.0.0, and JDeveloper 9.0.2.829
I have deployed and EJB in IAS9i and i want to use from the developer machines, which have JDeveloper.
how can i to do remote calls from JDeveloper?.
I have modifed the orion-application.xml, and added remote=true.
I have modifed the rmi.xml and added the hosts where the Jdeveloper placed.
Any ideas?
Thanks and cheers
P.D The app server and jdeveloper are in the same net.
if it is posible replys me to [email protected] too.Steps to access a remote EJB from within OC4J
++++++++++++++++++++++++++++++++++++++++++++++
1) Deploy EJB application (ApplicationRemote) to remote container (REMOTE)
"java -jar admin.jar -deploy ormi://REMOTE.hostname:REMOTE.port REMOTE.username REMOTE.password -deploy -file ApplicationRemote.ear
-deploymentName ApplicationRemote"
2) Ensure that local application (ApplicationLocal) has ejb-ref tags for remote EJBs accessed (in web.xml or ejb-jar.xml)
3) Deploy to local container (LOCAL) an empty application (ApplicationEmpty) with the same name as the remote application (ApplicationRemote)
"java -jar admin.jar -deploy ormi://LOCAL.hostname:LOCAL.port LOCAL.username LOCAL.password -deploy -file ApplicationEmpty.ear -deploymentName
ApplicationRemote"
5) Deploy local application (ApplicationLocal) to local container (LOCAL)
"java -jar admin.jar -deploy ormi://LOCAL.hostname:LOCAL.port LOCAL.username LOCAL.password -deploy -file ApplicationLocal.ear -deploymentName
ApplicationLocal"
4)Restart local container
ApplicationEmpty should consist of just an application.xml file - no modules. The same file can be deployed with different application names for all the remote
applications that must be accessed.
ApplicationLocal should access the remote EJB by using the following JNDI properties
java.naming.factory.initial = "com.evermind.server.rmi.RMIInitialContextFactory"
java.naming.provider.url = "ormi://REMOTE.hostname:REMOTE.port/ApplicationRemote"
java.naming.security.principal = "REMOTE.username"
java.naming.security.credentials = "REMOTE.password"
regards
Debu Panda -
Why do we need the @EJB annotation at the class level?
Why do we need the @EJB annotation at the class level?
Eg: Why do we need the first piece of code, when the second code seems much simpler .
*1.*
@Stateful
@EJB(name="ejb/TradeLocalNm",
beanInterface=TradeLocal.class)
public class TradeClientBean implements TradeClientRemote {
*2.*
@Stateful
public class TradeClientBean implements TradeClientRemote {
@EJB private TradeLocal trd;
}I think it is possible to do it in an aggregated level however you need to define your distribution rules in order to get the desired result, you need also to consider that if distribution rules changes and the value after promotional planning returns the same value, it is possible that detailed level are not realigned to the new distribution rule (e.g. regarding another ratio).
Maybe this is one of several causes.
Regards,
Carlos
Maybe you are looking for
-
InfoViewBranding changes not showing
Hello, I followed steps below for branding changes on 4.1 but I cannot get changes to show. Below are steps I've done. 1.) Unpackaged com.businessobjects.webpath.InfoViewBranding.jar 2.) Made my changes to customize.css and added my images and remove
-
Dear all, I am not able to control the volume of the mic. Speaker vollume I am able to adjust. Please let me know whether there is any way to acheive this. I am in a venture of developing audio/video chat. Thanks in advance. Ramya
-
Changes to Adobe Illustrator CS3 interface?
Can I use javascript to make changes to the interface in this application. I want to create an icon or tool that can align the page automatically...
-
Migrating Repositroy from Windows to Linux
Hi, How to migrating the repository from windows Server to Linux in OBIEE. Is there any process ? Thanks !
-
Japanese font/input & Wifi Question
Hi, My wife wants an iPod for her birthday and I am considering the iPod Touch. Mainly because it gives her access to the Internet and email when I have the ibook at work, and it gives her a portable Mp3 Player. She is Japanese and most of the emails