Classloading [EAR] - [webapp.war+ejb.jar]
Hi.
I've got a problem with the classloader hierarchy in WL 6.0.
When I deploy my war/ejb application as an EAR, everything works fine.
But I want (for several reasons) to deploy
EJB jars and WebApp wars (or exploded Web Apps) seperately.
WL 6.0 EJB classloader doesn't export remote/home interfaces and
helper classes,
so my web app can't find them.
When I include that interfaces/classes in my Web App, I get
occasionally ClassCastExceptions (I assume depending on classloader
caching).
Is there a way to configure the classloader hierarchy, or do you have
any other solution for this?
Thanks,
Roman
Hello,
I have a big application to do.
So, one solution should be to use an EAR for one
module, containing the WAR for the web-tier and the
EJB-JAR for the business-tier.
It would be better doing like this than creating a
big WAR, in order to avoid to deploy a big WAR when a
modification is done in one module.Are you using local EJBs or remote EJBs? The only way for a war to talk to a local EJB is to package the war along with the ejb-jar in an EAR file because they need to be collocated. You can not simply bundle EJB classes in a war file.
If you are using remte EJBs, then you can package the EJB client view classes along with the servlets and JSPs in the war file and deploy the war separately. But again your war will be one big war.
If your EJBs are just entity beans, then Java EE 5 (see http://weblogs.java.net/blog/ss141213/archive/2005/12/using_java_pers.html) allows you some nice options.
>
What about the problem of the session ?
In fact, I have to declare a context-root for one
EAR.
And at each context-root is created an object
HttpSession on the server.
So, I have some questions about this :
- How can I configure my WARs in order to use only
one HttpSession object for every WARs ?
There is no standard way to do this. Relying on any application server specific feature can only make your app non-portable. So I strongly recommend you not to do this.
- Can I put multiple WARs in one EAR ?Of course you can.
If yes, what about the context-root ? This solution would resolve
the session problem.Can't be solved using any standard way. So I suggest you stick to one big war, if that's what your business requirement is.To speed up development-deployment-test cycle, any appserver allows a rapid deployment option where in you can deploy incremental changes to server. Use this facility during development. DON'T sacrifice portability of your app by using any product specific configuration that you may not find any where else.
Thanks,
Sahoo
Similar Messages
-
Packaging of EAR / WAR / EJB-JAR
Hello,
I have a big application to do.
So, one solution should be to use an EAR for one module, containing the WAR for the web-tier and the EJB-JAR for the business-tier.
It would be better doing like this than creating a big WAR, in order to avoid to deploy a big WAR when a modification is done in one module.
What about the problem of the session ?
In fact, I have to declare a context-root for one EAR.
And at each context-root is created an object HttpSession on the server.
So, I have some questions about this :
- How can I configure my WARs in order to use only one HttpSession object for every WARs ?
- Can I put multiple WARs in one EAR ? If yes, what about the context-root ? This solution would resolve the session problem.
Thanks in advance.
bgOnlineHello,
I have a big application to do.
So, one solution should be to use an EAR for one
module, containing the WAR for the web-tier and the
EJB-JAR for the business-tier.
It would be better doing like this than creating a
big WAR, in order to avoid to deploy a big WAR when a
modification is done in one module.Are you using local EJBs or remote EJBs? The only way for a war to talk to a local EJB is to package the war along with the ejb-jar in an EAR file because they need to be collocated. You can not simply bundle EJB classes in a war file.
If you are using remte EJBs, then you can package the EJB client view classes along with the servlets and JSPs in the war file and deploy the war separately. But again your war will be one big war.
If your EJBs are just entity beans, then Java EE 5 (see http://weblogs.java.net/blog/ss141213/archive/2005/12/using_java_pers.html) allows you some nice options.
>
What about the problem of the session ?
In fact, I have to declare a context-root for one
EAR.
And at each context-root is created an object
HttpSession on the server.
So, I have some questions about this :
- How can I configure my WARs in order to use only
one HttpSession object for every WARs ?
There is no standard way to do this. Relying on any application server specific feature can only make your app non-portable. So I strongly recommend you not to do this.
- Can I put multiple WARs in one EAR ?Of course you can.
If yes, what about the context-root ? This solution would resolve
the session problem.Can't be solved using any standard way. So I suggest you stick to one big war, if that's what your business requirement is.To speed up development-deployment-test cycle, any appserver allows a rapid deployment option where in you can deploy incremental changes to server. Use this facility during development. DON'T sacrifice portability of your app by using any product specific configuration that you may not find any where else.
Thanks,
Sahoo -
1. when I build the examples, it builds the class files but does not create
ear or war files....
2. how do I stop the default service and run the example server... the
beasvc is not in the service list...... just have to kill in the task
manager??
ThxJava ARchive (JAR) files contain Java classes and Enterprise JavaBeans.
Web Application Archive (WAR) files contain servlet Java code, libraries used by the servlets and possibly static content such as HTML files and JPEGs.
Enterprise Application Archive (EAR) files contain JAR files (EJBs) and WAR files (Servlets).
I hope that answers your question. :)
For more detailed information have a look at the Enterprise JavaBeans Specification and the Servlet Specification:
http://java.sun.com/products/ejb/docs.html
http://java.sun.com/products/servlet/2.2/ -
EAR has WAR has JAR in WEB-INF\lib NoClassDefFoundError
What a nightmare.
I found approximately 40 forums on this topic (and there are probably more), but noone has the definitive answer!
Here's the problem....
My servlet uses a utility class that resides in some other jar. That jar is then placed into the WEB-INF\lib directory of the WAR which in turn goes into the EAR. This is supposed to be all that is needed in order for the utility class to be found on the classpath.
In fact, if you run the war in Tomcat as a standalone WAR it does in fact find it.... its when in an EAR deloployed to app server that the problem arises.
I have had no luck with using any combination of putting the jar ANYWHERE in the EAR or WAR no matter if I specify the Class-Path: in the manifest(s) or not.
I thought maybe that I was missing some config in the application.xml or web.xml but I couldn't find anything to support that.
Maybe its dependent on the app server? I am using Orion, but the same problem can be found on J2EE RI release 1.3
Work arounds:
1. Simply put the utility jar in the lib directory of the server you're using
2. Add an ejb module to the application.xml naming the utility jar as the ejb jar. Of course this is NOT an EJB jar and error messages/warnings will appear accordingly, but on Orion at least, it will load the classes needed... hooray!!
Anyone got a definitive answer?What did you do to resolve this issue .. I'm having the exact same problem.
What a nightmare.
I found approximately 40 forums on this topic (and
there are probably more), but noone has the definitive
answer!
Here's the problem....
My servlet uses a utility class that resides in some
other jar. That jar is then placed into the
WEB-INF\lib directory of the WAR which in turn goes
into the EAR. This is supposed to be all that is
needed in order for the utility class to be found on
the classpath.
In fact, if you run the war in Tomcat as a standalone
WAR it does in fact find it.... its when in an EAR
deloployed to app server that the problem arises.
I have had no luck with using any combination of
putting the jar ANYWHERE in the EAR or WAR no matter
if I specify the Class-Path: in the manifest(s) or
not.
I thought maybe that I was missing some config in the
application.xml or web.xml but I couldn't find
anything to support that.
Maybe its dependent on the app server? I am using
Orion, but the same problem can be found on J2EE RI
release 1.3
Work arounds:
1. Simply put the utility jar in the lib directory of
the server you're using
2. Add an ejb module to the application.xml naming the
utility jar as the ejb jar. Of course this is NOT an
EJB jar and error messages/warnings will appear
accordingly, but on Orion at least, it will load the
classes needed... hooray!!
Anyone got a definitive answer? -
Migrate wls 5.1 war/ejb .jar to 6.0
Accidentially, I put this posting in an old thread. Let me create a new
thread and ask agian.
Basically, I want to clarify the directory structure.
I have an application with the following directory structure in WLS 5.1
web application:
c:\weblogic\myserver\app1\*.jsp
c:\weblogic\myserver\app1\web-inf\classess\*.class for servlet class
c:\weblogic\myserver\app1\web-inf\web.xml
ejb jar files
c:\weblogic\myserver\ejbarchive\*.jar for all ejb .jar files
utilty class shared by ejb and servelet.
c:\weblogic\myserver\serverclasses\*.class for all utility class
Question 1: So now what should be the directory structure for the above
application in the expanded directory format.
say my directory for the app1 starts with:
c:\bea\wlserver6.0\config\mydomain\applications\app1
Question 2: what is the .ear format should looks like. Do I need the
"application.xml"? What entry to put in application.xml to include the
utiltiy classes?
Question 3: what will be the structure like if I want the ejb-jar in the
expanded directory also?
Jonathan
ps someone suggests to "jar" the ejb classes with the utility classes.
But I have 10 ejb jar files and don't want to combine the utilities
classes
with one of the ejb files until it is the only solution.I assume that you mean that you are using EJB CMP Entity Beans with the EJB1.1 API ? If your beans are stable and you're satisfied with their features and performance, then it's fine to leave them alone. The WebLogic CMP2.0 implementation does offer high performance CMP features that are accessible from EJB2.0 CMP beans but not EJB1.1 CMP beans. 'field-groups' is an example, you can selectively pre-load certain fields into beans when they are first read from the database by a finder.
-thorick -
Best practice for a deplomyent (EAR containing WAR/EJB) in a productive environment
Hi there,
I'm looking for some hints regarding to the best practice deployment in a productive
environment (currently we are not using a WLS-cluster);
We are using ANT for buildung, packaging and (dynamic) deployment (via weblogic.Deployer)
on the development environment and this works fine (in the meantime);
For my point of view, I would like to prefere this kind of Deploment not only
for the development, also for the productive system.
But I found some hints in some books, and this guys prefere the static deployment
for the p-system.
My question now:
Could anybody provide me with some links to some whitepapers regarding best practice
for a deployment into a p-system ??
What is your experiance with the new two-phase-deploment coming up with WLS 7.0
Is it really a good idea to use the static deployment (what is the advantage of
this kind of deployment ???
THX in advanced
-MartinHi Siva,
What best practise are you looking for ? If you can be specific on your question we could provide appropriate response.
From my basis experience some of the best practices.
1) Productive landscape should have high availability to business. For this you may setup DR or HA or both.
2) It should have backup configured for which restore has been already tested
3) It should have all the monitoring setup viz application, OS and DB
4) Productive client should not be modifiable
5) Users in Production landscape should have appropriate authorization based on SOD. There should not be any SOD conflicts
6) Transport to Production should be highly controlled. Any transport to Production should be moved only with appropriate Change Board approvals.
7) Relevant Database and OS security parameters should be tested before golive and enabled
8) Pre-Golive , Post Golive should have been performed on Production system
9) EWA should be configured atleast for Production system
10) Production system availability using DR should have been tested
Hope this helps.
Regards,
Deepak Kori -
WL tries to deploy utility jar file in .ear as an EJB
I have an ear containing two ejb jars, one webapp war and a utility jar
(common.jar). Deploying to
WebLogic 6.1 sp2 results in deployment errors because WebLogic thinks
the common.jar in a
lib directory in the ear is an ejb jar:
==================================================================
><Apr 22, 2002 4:42:36 PM MDT> <Error> <J2EE> <Error deploying
>application lib/common:
>
>Unable to deploy EJB: lib/common.jar from lib/common.jar:
>
>An error occurred while reading the deployment descriptor. The error was:
> java.io.FileNotFoundException: META-INF/ejb-jar.xml not found in jar file
> at weblogic.ejb20.dd.xml.DDUtils.getEntry(DDUtils.java:332)
> at weblogic.ejb20.dd.xml.DDUtils.getEjbJarXml(DDUtils.java:236)
>.........
>===================================================================
Why does it think common.jar contains an EJB? My application.xml is:
>
><application>
> <display-name>TestUnit</display-name>
> <module>
> <ejb>TestUnit1.jar</ejb>
> </module>
> <module>
> <ejb>TestUnit2.jar</ejb>
> </module>
> <module>
> <web>
> <web-uri>WebApp1.war</web-uri>
> <context-root>WebApp1</context-root>
> </web>
> </module>
></application>Hi.
Please open a case with support.
Regards,
Michael
Rick Holland wrote:
I have an ear containing two ejb jars, one webapp war and a utility jar
(common.jar). Deploying to
WebLogic 6.1 sp2 results in deployment errors because WebLogic thinks
the common.jar in a
lib directory in the ear is an ejb jar:
==================================================================
<Apr 22, 2002 4:42:36 PM MDT> <Error> <J2EE> <Error deploying
application lib/common:
Unable to deploy EJB: lib/common.jar from lib/common.jar:
An error occurred while reading the deployment descriptor. The error was:
java.io.FileNotFoundException: META-INF/ejb-jar.xml not found in jar file
at weblogic.ejb20.dd.xml.DDUtils.getEntry(DDUtils.java:332)
at weblogic.ejb20.dd.xml.DDUtils.getEjbJarXml(DDUtils.java:236)
===================================================================Why does it think common.jar contains an EJB? My application.xml is:
<application>
<display-name>TestUnit</display-name>
<module>
<ejb>TestUnit1.jar</ejb>
</module>
<module>
<ejb>TestUnit2.jar</ejb>
</module>
<module>
<web>
<web-uri>WebApp1.war</web-uri>
<context-root>WebApp1</context-root>
</web>
</module>
</application>
Michael Young
Developer Relations Engineer
BEA Support -
[WSAD5.0] Access one EJB of an EAR into another EAR.webapp
Hi,
I've got 2 ear application : toto.ear and titi.ear
toto.ear carry
* one ejb.jar file with CMSession.java EJB
titi.ear carry
* one ejb.jar file with some other EJB
* one web.war file with servlets & JSP
The fact is I'd like to call 'toto.ear/CMSession.java' EJB from a servlet in 'titi.ear/web.war'. So I need to reference this CMSSession EJB in the 'titi.ear/web.war/web.xml', isn't it ?
However, when I go to the web deployment descriptor page of 'titi.ear/web.war' the I click on 'reference' tab, then 'Add' button I can only see the EJB from 'titi.ear'.
My question is how can I directly reference the 'toto.ear/CMSession.java' EJB from a Servlet located in 'titi.ear' ?
Regards,
Denis Boutin.Can you do that across applications. Dont you have to do a lookup and invoke the EJB.
-
Unable to find ejb-jar with uri X.jar in ear at c:/Y/split_src
Stack trace is below, but the ejb does exist at the location that the FileNotFoundException states. I've checked that application.xml, org.eclipse.wst.common.component both have the correct name for this dependency.
java.lang.Exception: Exception received from deployment driver. See Error Log view for more detail.
at oracle.eclipse.tools.weblogic.server.internal.DeploymentProgressListener.watch(DeploymentProgressListener.java:190)
at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.deploy(WlsJ2EEDeploymentHelper.java:506)
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishWeblogicModules(WeblogicServerBehaviour.java:1466)
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishToServer(WeblogicServerBehaviour.java:898)
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishOnce(WeblogicServerBehaviour.java:686)
at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publish(WeblogicServerBehaviour.java:539)
at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3153)
at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: weblogic.application.ModuleException:
at weblogic.ejb.container.deployer.EJBModule.init(EJBModule.java:334)
at weblogic.application.internal.flow.ModuleListenerInvoker.init(ModuleListenerInvoker.java:167)
at weblogic.application.internal.flow.InitModulesFlow.initModule(InitModulesFlow.java:312)
at weblogic.application.internal.flow.InitModulesFlow.initModules(InitModulesFlow.java:325)
at weblogic.application.internal.flow.InitModulesFlow.prepare(InitModulesFlow.java:378)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:648)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:59)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:208)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
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.io.FileNotFoundException: Unable to find ejb-jar with uri ***.jar in ear at C:\***\split_src
at weblogic.ejb.spi.EJBJar.<init>(EJBJar.java:81)
at weblogic.ejb.container.deployer.EJBModule.buildClassFinder(EJBModule.java:201)
at weblogic.ejb.container.deployer.EJBModule.init(EJBModule.java:313)Hi Ten,
FYI, just by placing the ejb jar inside EAR project it will not be picked up for deployment. The EJB module has to be defined on EAR Module Assembly, and the steps are:
> EAR Project | Properties, Deployment Assembly - Add EJB module
NOTE: To verify the dependency you could try to export the EAR project to an .ear file. If the exported .ear file bundles ejb jar then deployment should work fine.
As far as the deployment mode, OEPE supports WebLogic Split-source (default) and Exploded archive. In the default split-source mode, the .beabuild.txt contains the mapping to the actual files whereas in exploded archive the files are copied over to deployment staging location.
Steps to modify deployment mode:
> In the server view, right click on server configuration | Properties, select WebLogic | Publishing
Please make sure the ejb module is defined appropriately and let me know if this resolves the issue.
Thanks,
Ram -
Eclipse and glassfish ejb jar contains zero ejb
Hi,
We have an EAR that had ejbs in a war file. recently it was converted to a jar and since then the deployment from eclipse to the local glassfish is giving the following errors:
SEVERE: Exception while deploying the app [hub-application-ear]
SEVERE: Invalid ejb jar [hub-sso.jar]: it contains zero ejb.
Note:
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean.
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar.
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.
java.lang.IllegalArgumentException: Invalid ejb jar [hub-sso.jar]: it contains zero ejb.
Note:
1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message-driven bean.
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar.
3. If the jar file contains valid EJBs which are annotated with EJB component level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton), please check server.log to see whether the annotations were processed properly.
at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:76)
at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:128)
at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:730)
at com.sun.enterprise.deployment.Application.visit(Application.java:1765)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:830)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:277)
at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:240)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:175)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:94)
at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:827)
at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:769)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:368)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
However, the deployment of the same EAR to the local server from the glassfish admin screen works as expected.
We are developing in EJB 3.1, eclipse is Indigo and server is glassfish 3.1.2.
Regards,
Sameer JafferI'm trying to get a hold of the ejb, session bean home. everywhere that i've looked said that i need to access it via the "java:/env/.../beanname".
Obviously I am wrong.
what should i be trying to do to get a hold of my session bean home? -
"Could not locate the bean with the ejb-name XYZ in weblogic-ejb-jar.xml
Hi,
Please someone help me on this...
I'm trying to deploy an application on WLS 8.1 SP4
on HPUX IA64 arch. From the ear file WLS is able to
deploy 3 jars but for the last two jars it's throwing
the below error:
Could not locate the bean with the ejb-name xyz in weblogic-ejb-jar.xml
But ejb with name xyz is defined in the the weblogic-ejb-jar.xml file and it's also present in the
META-INF/ejb-jar.xml file.
I have no clue what's going wrong.
Any help is appreciated.
Thanks
Moulioops! Pls ignore my previous mail. It was for a different problem.
FOr the original problem of "couldn ot locate the bean with the ejb-name XZY in weblogic-ejb-jar.xml":
This happens if you don't have the below files defined
for a JAR/EAR file:
weblogic-ejb-jar.xml and weblogic-cmp-rdbms-jar.xml (needed if you have any Datasource mapped)
These two are basic files required for any JAR/EAR file.
If you dont' have it already you can generate them using
$WLS_HOME/bin/startWLBuilder.sh GUI tool bundled along
with WLS (I used 8.1 SP4) to generate these files ! This tool is really helpful.
- Mouli -
Deploy ejb on wls7.0 weblogic.ejb.jar.xml ! help
Morning !
i'm try to deploy a EJB on wls7.0
my descriptor is like this and i don't really undestand what's go wrong.
thanks you to help
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 7.0.0
EJB//EN" "http://www.bea.com/servers/wls700/dtd/weblogic700-ejb-jar.dtd" >
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<entity>
<ejb-name>Compte</ejb-name>
<bean-home-name>Compte</bean-home-name>
<resource-ref>
<res-ref-name>jdbc/DataSource</res-ref-name>
<jndi-name>DataSource</jndi-name>
</resource-ref>
<cmp-info>
<database-map>
<table>"Compte"</table>
<column-map>
<field-name>id</field-name>
<column-name>"id"</column-name>
</column-map>
<column-map>
<field-name>nomSte</field-name>
<column-name>"nomSte"</column-name>
</column-map>
<column-map>
<field-name>dateCreation</field-name>
<column-name>"dateCreation"</column-name>
</column-map>
<column-map>
<field-name>nbEmployes</field-name>
<column-name>"nbEmployes"</column-name>
</column-map>
<column-map>
<field-name>caSte</field-name>
<column-name>"caSte"</column-name>
</column-map>
<column-map>
<field-name>descSte</field-name>
<column-name>"descSte"</column-name>
</column-map>
<column-map>
<field-name>logo</field-name>
<column-name>"logo"</column-name>
</column-map>
<column-map>
<field-name>id_commercial</field-name>
<column-name>"id_commercial"</column-name>
</column-map>
</database-map>
<finder>
<method-signature>findAll()</method-signature>
<where-clause />
<load-state>True</load-state>
</finder>
</cmp-info>
</entity>
<datasource-definitions>
<datasource>
<jndi-name>DataSource</jndi-name>
<url>jdbc:odbc:dev_java</url>
<username>sa</username>
<password>lnx.sully</password>
<driver-class-name>sun.jdbc.odbc.JdbcOdbcDriver</driver-class-name>
</datasource>
</datasource-definitions>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
the EXception is !
Exception
weblogic.management.ApplicationException: No deployment found at
E:\bea70\weblogic700\server\bin\GRPEJB.jar.
at
weblogic.j2ee.J2EEApplicationContainerFactory.initializeDeployment(J2EEAppli
cationContainerFactory.java:350)
at
weblogic.management.deploy.DeployerRuntime.unprotectedActivate(DeployerRunti
me.java:350)
at
weblogic.management.deploy.DeployerRuntime.access$0(DeployerRuntime.java:282
at
weblogic.management.deploy.DeployerRuntime$1.run(DeployerRuntime.java:947)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:721)
at
weblogic.management.deploy.DeployerRuntime.checkAndPerformDeployerActions(De
ployerRuntime.java:941)
at
weblogic.management.deploy.DeployerRuntime.activate(DeployerRuntime.java:279
at java.lang.reflect.Method.invoke(Native Method)
at
weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl
.java:717)
at
weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:6
99)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at
weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerI
mpl.java:921)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:470)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:198)
at $Proxy48.activate(Unknown Source)
at
weblogic.management.console.actions.mbean.ConfigureAppWizardAction.commit(Co
nfigureAppWizardAction.java:248)
at
weblogic.management.console.actions.mbean.ConfigureAppWizardAction.perform(C
onfigureAppWizardAction.java:100)
at
weblogic.management.console.actions.internal.ActionServlet.doAction(ActionSe
rvlet.java:171)
at
weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServ
let.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
tStubImpl.java:945)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:332)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:242)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
ebAppServletContext.java:5360)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:721)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:3043)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2468)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
tahnks you !
Unimon Thierry
CGBI- CET-E-services
69, Blvd Galliéni
91 Issy les Mlx
tele :01/55/95/54/22 Poste:5422
Port :06/61/81/78/59
Prof : mailto:[email protected]
Pers : mailto:[email protected]oops! Pls ignore my previous mail. It was for a different problem.
FOr the original problem of "couldn ot locate the bean with the ejb-name XZY in weblogic-ejb-jar.xml":
This happens if you don't have the below files defined
for a JAR/EAR file:
weblogic-ejb-jar.xml and weblogic-cmp-rdbms-jar.xml (needed if you have any Datasource mapped)
These two are basic files required for any JAR/EAR file.
If you dont' have it already you can generate them using
$WLS_HOME/bin/startWLBuilder.sh GUI tool bundled along
with WLS (I used 8.1 SP4) to generate these files ! This tool is really helpful.
- Mouli -
How to access ejb jar in ear package from other war web package?
How to access ejb in jar packed in ear package from other war web package?
Typically you would just look the EJB Home up in JNDI. If you're
looking for example code, the medrec example in WLS 8.1 or petstore has
plenty of webapps calling EJBs.
-- Rob
CottonXu wrote:
How to access ejb in jar packed in ear package from other war web package? -
Deploy EAR. Both ejb and war share classes?
how do you package an ear that has both ejbs and wars that share a common set of classes.
I have read through all the messages that state to add the Manifest entry Class-Path.
I've added it to the war, ejb and ear Class-Path and I still get the same NoClassDefFoundError.
Does anybody truely know how to get this to work? I've tried many things, and it sounds like this should work/.....?????Hi Madhav,
You need to specify Class-Path in ejb-jar MANIFEST.MF,
not in the ear.
Regards,
Slava Imeshev
"Madhav Inamti" <[email protected]> wrote in message
news:[email protected]..
>
I have tried the manifest classpath too and it just does not work. I had alibrary
jar specified the ear's manifest classpath and the library jar in the earfile
too. This should have made the ear classloader load the library jar.Didn't work.
Does anybody on this newsgroup know about this .. ?
"Dimitri I. Rakitine" <[email protected]> wrote:
Since ejb classloader is a parent of a webapp classloader, you should
only
add these jar's to your ejb-jar Class-Path Manifest entry. Make sure
your dependencies
hierarchy is ok - NoClassDefFoundError usually means that the class
itself was found,
but not it's dependent class(es).
Michael <[email protected]> wrote:
how do you package an ear that has both ejbs and wars that share acommon set of classes.
I have read through all the messages that state to add the Manifestentry Class-Path.
I've added it to the war, ejb and ear Class-Path and I still get thesame NoClassDefFoundError.
Does anybody truely know how to get this to work? I've tried many
things,
and it sounds like this should work/.....?????
Dimitri -
Are JDev autogenerated paths needed to create ear, war and jar files ?
Hi
We want to create ear, war and jar files from Ant build script generated from JDeveloper 11.1.1.7.
We also like to use ojdeploy with it.
In the process of creating build.xml files from projects, we see these paths.
We also have standalone Weblogic installed with ADF runtime 11.1.1.7
Questions:
1- Do we need these path ids to generate ear, jar, war files properly and then deploy the ear to our standalone Weblogic so that our webapp can run ok ?
2- Why are they generated, if they are not needed
From research, it appears that we don't need these paths except to keep ant targets of init, compile, exec etc with ojdeploy.
3- Is that true ?
We are afraid that because no paths are listed in the build.xml, then when we deploy the ear app, it cant use the ADF runtime on the standalone WLS.
Thanks in advance for answering.
Sincerely
eg of paths generated below:
<path id="library.SOA.Designtime"/>
<path id="library.SOA.Runtime"/>
<path id="library.BPEL.Runtime"/>
<path id="library.Mediator.Runtime"/>
<path id="library.MDS.Runtime">
<pathelement location="{oracle.middleware}/oracle_common/modules/oracle.mds_11.1.1/mdsrt.jar"/>
</path>
<path id="library.BC4J.Service.Runtime">
<pathelement location="{oracle.middleware}/oracle_common/modules/oracle.adf.model_11.1.1/adfbcsvc.jar"/>
<pathelement location="{oracle.middleware}/oracle_common/modules/oracle.adf.model_11.1.1/adfbcsvc-share.jar"/>
<pathelement location="{oracle.middleware}/oracle_common/modules/commonj.sdo_2.1.0.jar"/>
<pathelement location="{oracle.middleware}/modules/org.eclipse.persistence_1.1.0.0_2-1.jar"/>
<pathelement location="{oracle.middleware}/oracle_common/modules/oracle.webservices_11.1.1/wsclient.jar"/>
<pathelement location="{oracle.middleware}/oracle_common/modules/oracle.web-common_11.1.1.jar"/>
</path>
<path id="library.TopLink">
<pathelement location="{oracle.middleware}/modules/com.oracle.toplink_1.0.0.0_11-1-1-5-0.jar"/>
<pathelement location="{oracle.middleware}/modules/org.eclipse.persistence_1.1.0.0_2-1.jar"/>
<pathelement location="{oracle.middleware}/modules/com.bea.core.antlr.runtime_2.7.7.jar"/>
<pathelement location="{oracle.middleware}/modules/javax.persistence_1.0.0.0_2-0-0.jar"/>
</path>
<path id="library.Oracle.Rules"/>
<path id="classpath">
<path refid="library.SOA.Designtime"/>
<path refid="library.SOA.Runtime"/>
<path refid="library.BPEL.Runtime"/>
<path refid="library.Mediator.Runtime"/>
<path refid="library.MDS.Runtime"/>
<path refid="library.BC4J.Service.Runtime"/>
<path refid="library.TopLink"/>
<path refid="library.Oracle.Rules"/>
</path>There are two different things here. Using ant to build the class files and then building an ear from the class files and other resources.
The building part needs the libraries if you use javac as compiler. Building an ear file only needs the path to the jar files which are packed into the ear.
In this sense you need the pages you see in the build.xml.
Then Jdev offers another way: ojdeploy. This tool is a Jdev without a gui.
You can use this tool and build the classes for each project of a workspace and to build build war and ear file. This is just like you click the rebuild button for each project and then the deploy the projects and application. If you use this approach you don't need the generated path ids as the whole build process is done inside Jdev as it's done on your developer pc.
Timo
Maybe you are looking for
-
I changed my hotmail password on my home computer, and now when I try to get email on my phone and use my new password, it says it's not correct. I just did an update a few days ago, but still can't access my email on my phone. Any suggestions???
-
How to change the variable value for the SCript in debugging
I have a variable &KNA1-NAME4& i want to change the value of this variable in debugging mode can any one please tell me how to do in step by steb mode.
-
Outlook 2010 "losing messages"
Outlook 2010 SP2 Exchange 2010 SP2 Client domain joined AutoArchive disabled (completely via GPO, the option doesn't even exist in Outlook anymore as result) Outlook view reset User has email disappearing from inbox in Outlook. but it still exists in
-
Colour problems after exporting for web
Hiya I'm struggling with a colour issue on a website I've recently designed. The original design was done in Photoshop CS3 and includes a think purple band at the top of the page (http://www.deliciouscafe.co.uk/index.html). After slicing up the desig
-
I am a user of Illustrator CS4 and I have been sent a CS5 file. Is there any online converter tool that I can use to downsave the file in CS4 in order to work with it?