Integration: EJB or WS

Hi !
I'm an architect in a bank project and I am in doubt what technologies should I use for integration ... CORBA with EJB Session (RMI/IIOP) or Web Services ... what should i consider in my choice ?
I begin it CORBA integrates and works in a lot of languages ...
tranks in advance.

Both CORBA and WS allow you to implement your services in any language with a binding, so that's good.
Both have a UDDI feature so you can discover available services.
CORBA uses IIOP as its protocol on the wire; WS use SOAP messages over HTTP.
Gotta have ORBs on both ends of the CORBA transaction; need SOAP/WS containers on both ends of the WS transaction.
Geez, WS sound an awful lot like CORBA, don't they? Same idea of distributed "services".
I feel like I suddenly got ten years younger. 8)
%

Similar Messages

  • Couldn't complete tutorial 'Integrating EJB 3.0 into Web Dynpro ...'

    Hi All,
    I am trying to complete the “Integrating EJB 3.0 into Web Dynpro Using the EJB Model Importer” tutorial that goes with SAP NetWeaver Composition Environment 7.1 SP3 Developer Studio.
    Does anyone ever completed this tutorial because I have problems completing it. The result is very important for me because I need to use this technology for my essay.
    In this tutorial you create a button that calls the method StudsBean.getStudent(String). In this method the object student is created and it will be returned. In several labels the information of the returned student should be displayed. But that doesn’t happen, when I push the button no error occurs but the labels are still empty. When I try to debug the Enterprise Bean and Web Dynpro application I see that the method StudsBean.getStudent(String) is called and the property’s are set and the student object is returned, but still it isn’t displayed.
    After discussing this with a colleague I tried to search for a solution on the SDN and of course Google. First I thought I would be a bug but I only found 2 people with the same problem. I found it remarkable because it’s one of the key subjects of Java EE 5 and it’s a tutorial displayed in the welcome page of the Developer Studio.
    So do you people think it’s a bug in WebDynpro? Because I am sure that I followed all the steps mentioned (a colleague checked it even).
    Regards,
    Sander

    Hi Sander,
    I guess, it's not a bug in Web Dynpro, maybe it's a bug in the tutorial
    I tried something similar, but not following the tutorial and it works. I wasn't able to call the model from the view controller and I guess that's the problem. Take the code from the init-method of the view controller and put it to the component controller's init -method and the code inside the onActionGetStudent and put it into a method you create in the component controller, too. From onActionGetStudent just call this method in the component controller with some code like this:
    wdThis.wdGet<your component controller's name>.<your method's name>;
    Hope this helps
    Kind regards
    Stefanie

  • Integrating EJBs

    Hai,
    I am trying to integrate all the ejbs into single ear. its fine upto 8 ejb projects, but while trying to add another project ,its giving the error:
    The error details are:
    Caught exception during application deployment from SAP J2EE Engine's deploy service:
    java.rmi.RemoteException: Cannot store information about application sap.com/TestingApp in the database during update.. Reason: Object value for entry "PROPS_STR_STR:ApplicationProperties" is too large. Limit is at 2,000 bytes.; nested exception is: com.sap.engine.frame.core.configuration.InvalidValueException: Object value for entry "PROPS_STR_STR:ApplicationProperties" is too large. Limit is at 2,000 bytes.
    (message ID: com.sap.sdm.serverext.servertype.inqmy.extern.EngineApplOnlineDeployerImpl.performAction(DeploymentActionTypes).REMEXC)
    Deployment exception : The deployment of at least one item aborted
    regards,
    Naga Raju

    Hai,
       donot try to make one ear for all ejbs
       please create each indivedual ear and , take a new ear and give reference of each indivedual ear's
    Only Raju

  • Problem with Integrating Ejbs

    Hai,
    I am trying to integrate all the ejbs into single ear. its fine upto 8 ejb projects, but while trying to add another project ,its giving the error:
    The error details are:
    Caught exception during application deployment from SAP J2EE Engine's deploy service:
    java.rmi.RemoteException: Cannot store information about application sap.com/TestingApp in the database during update.. Reason: Object value for entry "PROPS_STR_STR:ApplicationProperties" is too large. Limit is at 2,000 bytes.; nested exception is: com.sap.engine.frame.core.configuration.InvalidValueException: Object value for entry "PROPS_STR_STR:ApplicationProperties" is too large. Limit is at 2,000 bytes.
    (message ID: com.sap.sdm.serverext.servertype.inqmy.extern.EngineApplOnlineDeployerImpl.performAction(DeploymentActionTypes).REMEXC)
    Deployment exception : The deployment of at least one item aborted
    regards,
    Naga Raju

    Hai,
       donot try to make one ear for all ejbs
       please create each indivedual ear and , take a new ear and give reference of each indivedual ear's
    Only Raju

  • EJB 3.0 integration with JSF

    Hi,
    I have some problem in integrating EJB into JSF.
    I have Entity class Car.java
    And Session CarSessionBean.java which implements @Local and @Remote interfaces.
    Than i have BackingBean.java which i am trying to integrate into JSF.
    When I am running the program i got following error:
    JSF1001: Managedbean backBean could not be created.
    executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@234ab7) threw exception
    javax.faces.FacesException: javax.faces.FacesException: com.sun.enterprise.InjectionException: Exception attempting to inject Resolved Ejb-Ref jsfpack.BackingBean/carSession@jndi:  - > CarSessionBean into class jsfpack.BackingBean
            at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:521)
            at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
            at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
            at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:62)
            at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)
            at com.sun.el.parser.AstValue.getValue(AstValue.java:106)
            at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
            at javax.faces.component.UIData.getValue(UIData.java:582)
            at javax.faces.component.UIData.getDataModel(UIData.java:1061)
            at javax.faces.component.UIData.setRowIndex(UIData.java:417)
            at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
            at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:810)
            at javax.faces.component.UIData.encodeBegin(UIData.java:878)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:881)
            at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
            at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)
            at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:133)
            at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:244)
            at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
            at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
    Caused by: javax.faces.FacesException: com.sun.enterprise.InjectionException: Exception attempting to inject Resolved Ejb-Ref jsfpack.BackingBean/carSession@jndi:  - > CarSessionBean into class jsfpack.BackingBean
            at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:325)
            at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:510)
            ... 47 more
    Caused by: com.sun.enterprise.InjectionException: Exception attempting to inject Resolved Ejb-Ref jsfpack.BackingBean/carSession@jndi:  - > CarSessionBean into class jsfpack.BackingBean
            at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:373)
            at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:193)
            at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:87)
            at com.sun.faces.vendor.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:65)
            at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:312)
            ... 48 more
    Caused by: com.sun.enterprise.InjectionException: Illegal use of static field private static car.session.CarSessionLocal jsfpack.BackingBean.carSession on class that only supports instance-based injection
            at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:292)
            ... 52 more
    StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
    com.sun.enterprise.InjectionException: Illegal use of static field private static car.session.CarSessionLocal jsfpack.BackingBean.carSession on class that only supports instance-based injection
            at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:292)
            at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:193)
            at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:87)
            at com.sun.faces.vendor.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:65)
            at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:312)
            at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:510)
            at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
            at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
            at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:62)
            at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)
            at com.sun.el.parser.AstValue.getValue(AstValue.java:106)
            at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
            at javax.faces.component.UIData.getValue(UIData.java:582)
            at javax.faces.component.UIData.getDataModel(UIData.java:1061)
            at javax.faces.component.UIData.setRowIndex(UIData.java:417)
            at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
            at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:810)
            at javax.faces.component.UIData.encodeBegin(UIData.java:878)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:881)
            at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
            at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
            at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)
            at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182)
            at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:133)
            at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:244)
            at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
            at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
            at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)This is my BackingBean.java source:
    package jsfpack;
    import car.session.CarSessionLocal;
    import java.util.List;
    import javax.ejb.EJB;
    import javax.naming.InitialContext;
    public class BackingBean {
        @EJB
        private static CarSessionLocal carSession;
        private List all;
           /** Creates a new instance of BackingBean */
        public BackingBean() {
           public List getAll() {
            if( all == null)
                all=carSession.queryCarFindAll();
            return all;     
        public void setAll(List all) {
            this.all = all;
        }Where i am doing wrong?
    Thank you.

    caused by: com.sun.enterprise.InjectionException: Illegal use of static field private static car.session.CarSessionLocal jsfpack.BackingBean.carSession on class that only supports instance-based injectionat com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:292)
    ... 52 more
    StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
    com.sun.enterprise.InjectionException: Illegal use of static field private static car.session.CarSessionLocal jsfpack.BackingBean.carSession on class that only supports instance-based injectionInjected fields in server-side components should never be marked static. static is only used for
    the main class of Application Client components.

  • Integrating cocoon and ejb

    hi ,
    i'm building an application in cocoon and integrating ejb in it , can you please help me , the folder structure of them and the configuration that i should make in web.xml file , please .......
    regards
    peeths

    Spring and Hibernate are the BETTER replacement for EJB.
    Don't integrate them, just throw away EJBs. ;)

  • Couldn't complete tutorial u0091Integrating EJB 3.0 into Web Dynpro ... '

    Hi All,
    I am trying to complete the “Integrating EJB 3.0 into Web Dynpro Using the EJB Model Importer” tutorial that goes with SAP NetWeaver Composition Environment 7.1 SP3 Developer Studio.
    Does anyone ever completed this tutorial because I have problems completing it. The result is very important for me because I need to use this technology for my essay.
    In this tutorial you create a button that calls the method StudsBean.getStudent(String). In this method the object student is created and it will be returned. In several labels the information of the returned student should be displayed. But that doesn’t happen, when I push the button no error occurs but the labels are still empty. When I try to debug the Enterprise Bean and Web Dynpro application I see that the method StudsBean.getStudent(String) is called and the property’s are set and the student object is returned, but still it isn’t displayed.
    After discussing this with a colleague I tried to search for a solution on the SDN and of course Google. First I thought I would be a bug but I only found 2 people with the same problem. I found it remarkable because it’s one of the key subjects of Java EE 5 and it’s a tutorial displayed in the welcome page of the Developer Studio.
    So do you people think it’s a bug in WebDynpro? Because I am sure that I followed all the steps mentioned (a colleague checked it even).
    Regards,
    Sander

    Hi Vesselin,
    Thank you for the quick replay, this is the code I'm using:
    public void onActionGetStudent(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionGetStudent(ServerEvent)
              try {
                  // executes the corresponding method on the session facade
                  wdContext.currentRequest_StudsLocal_getStudentElement().
                  modelObject().execute();
                  // forces Web Dynpro to re-create the Request model object
                  // in order to clear the InputField
                 wdContext.nodeRequest_StudsLocal_getStudent().invalidate();
                  // updates the UI elements bound to the Response node
                  wdContext.nodeResponse().invalidate();
                  //Code for trying something out
                  //wdContext.nodeReturn().invalidate();
                  //wdContext.nodeAddress().invalidate();
               } catch (Exception e) {
                  throw new RuntimeException(e);
    Have you tried this example yourself, or is replay based on experience?
    Kind Regards,
    Sander

  • Using EJBs in Web Dynpro

    I have recently started to develop Web applications using the Web Dynpro framework. Coming from a pure J2EE world, I must admit that Web Dynpro has a few innovative features that I find interesting for user interface development. The use of component & view contexts, for example, is not unlike the ActionForms that one may find in a Struts application, but pushed a bit further. No complaints here.
    What I do have some problems with is the whole CommandBean paradigm that is put forth by SAP (refer to the document <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/using%20ejbs%20in%20web%20dynpro%20applications.pdf">Using EJBs in Web Dynpro</a>).
    I do understand the usefulness of defining a model that will be used to generate and eventually bind to Context data structures. That's fine. What I do object to is the use of a so-called CommandBean to play that role. Again, coming from a J2EE world, I am familiar with the BusinessDelegate pattern - which would typically be used by a client application to invoke business logic on the server side. I would propose that a better, cleaner way of integrating EJBs with the Web Dynpro framework would be to use a BusinessDelegate for invoking business logic, and importing a separate and distinct ModelBean (instead of a CommandBean) to be used for defining and binding to Context data.
    I have built one Web Dynpro application thus far. Instead of using a CommandBean, I created a ModelBean that extends my business object DTO (Data Transfer Object) (which is quite appropriate for that role, given that it implements all the get & set methods that are required for the business data that I need to model). My Web Dynpro application also makes use of an independant BusinessDelegate that is packaged with my EJB DC - this is a standard best practice on J2EE projects. I have been asked by the people working with me to modify this architecture to bring it more in line with the SAP way of doing things. I am open-minded and willing to learn and accept new ways of thinking and doing things. However, I fail to understand the usefulness of merging structure and behaviour by resorting to CommandBeans:
    - <b>It violates the MVC paradigm</b> by having one object (the CommandBean) serve as both model AND controller as far as the Web Dynpro application is concerned. The CommandBean is obviously a model - since it is literally imported as such into the Web Dynpro application. It is ALSO a controller from the Web Dynpro's application perspective, since all calls to the back-end go thru the CommandBean via one or more of its execute_xxx methods. In contrast, the use of a business delegate by the Web Dynpro application clearly separates the model (the CommandBean... or rather, a more suitably named ModelBean) from the controller (BusinessDelegate).
    - <b>Doesn't carry its own weight.</b> In other words, I haven't yet been provided with any valid justification for going thru the extra effort of coding the CommandBean's execute methods. It's been proposed to me that it somehow serves as an abstraction layer between the Web Dynpro application and the business logic. I would argue that it is the BusinessDelegate's role to abstract away the back-end logic from clients. If one does have a BusinessDelegate available, I would argue there's no need to code execute methods in a separate CommandBean. To prove my point, I would simply point out that all of the CommandBean examples that I have seen so far, either in How-To documents, or in production code, all follow the same pattern....
               CommandBean.execute_doSomething() calls BusinessDelegate.doSomething()
    Not a heck of an "abstraction" layer... I would in fact argue that it is worse than useless. If some major change occurs in the business logic that requires changing the doSomething() operation, we expect of course to modify the BusinessDelegate. The Web Dynpro client will also presumably need to be modified - that's to be expected, and unavoidable. But then, we'll also need to go about and change the CommandBean's execute_doSomething() method - again, extra work for no apparent benefit. Adding and removing business methods has the same implication. All this for an layer that simply adds the prefix execute_ in front of all business method calls... Is this "abstraction layer" worth the cost of creating and maintaining it ??
    - <b>Unnecessarily complicates error handling</b>. I have been told that for technical reasons, it is recommended that all exceptions thrown by the CommandBean be of type WDException or WDRuntimException. But what if the client application needs to react differently to different failure scenarios ? When I create a business object, I might wish to provide the user with an error messages if connection is lost to the backend, and with a different error message if an object already exists in the database with the same attributes. In order to do that, I will have to catch the WDException, extract the cause, and continue processing from there... possible, yes, but clearly less standard and more labor intensive than the classical try/catch mechanism.
    To say nothing about the fact that SAP's own API documentation clearly states that applications using Web Dynpro can reference and catch WDExceptions, but THEY MUST NOT THROW OR EXTEND IT !
    - <b>Produces unnecessary DCs</b>. Page 6 of the aforementioned document presents an architectural view of a Web Dynpro project that uses a CommandBean. Why an extra DC for the CommandBean ?? I created my ModelBean class right inside the Web Dynpro project (in the Package view). That, to me, is where this class should reside, because it is created for no other reason that to be used by this particular Web Dynpro application. What is the benefit of placing it in its own independant DC ?
    - <b>Not a typical application of the Command pattern</b>. The well-documented command pattern (Design Patterns - Gang of Four) has been devised mainly to enable encapsulation of request as objects, thereby making it possible to:
    - specify, queue and execute requests at different times
    - decouple execution of a command from its invoker
    - support undo operations
    - support logging changes so that they can be reapplied in case of system crash making it possible to assemble commands into composite commands (macros), thereby structuring a system around high-level operations built on primitive operations.
    None of this applies to the way the SAP CommandBeans are being used. Not that much of an issue to people new to J2EE and/or OO development... but quite confusing for those already familiar with the classic Command pattern.
    At this point, I fail to understand the advantage of merging structure (model) and behaviour (execute methods) through the use of a unique CommandBean object. Am I missing something ?

    Thanks for your reply and your suggestion. I have posted in the Web Dynpro Java forum... and suggest those wishing to participate in this thread to refer to the Web Dynpro Java forum.
    As for your answer, I'm afraid it doesn't satisfy me.
    Reuse is hardly an issue, since the CommandBean is specifically tailor-made for the Web Dynpro application that needs to use it. I could hardly imagine building another application that would just happen to have the exact same needs as far as data structure and processing is concerned...
    As for the right Eclipse environment... the CommandBean is not an EJB artifact - it is an EJB client. The aforementioned tutorial in fact suggests creating it in the Java perspective.
    But thanks anyway for your time and suggestion

  • Using EJBs in Web Dynpro Applications

    I have recently started to develop Web applications using the Web Dynpro framework. Coming from a pure J2EE world, I must admit that Web Dynpro has a few innovative features that I find interesting for user interface development. The use of component & view contexts, for example, is not unlike the ActionForms that one may find in a Struts application, but pushed a bit further. No complaints here.
    What I do have some problems with is the whole CommandBean paradigm that is put forth by SAP (refer to the document <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/using%20ejbs%20in%20web%20dynpro%20applications.pdf">Using EJBs in Web Dynpro Applications</a>).
    I do understand the usefulness of defining a model that will be used to generate and eventually bind to Context data structures. That's fine. What I do object to is the use of a so-called CommandBean to play that role. Again, coming from a J2EE world, I am familiar with the BusinessDelegate pattern - which would typically be used by a client application to invoke business logic on the server side. I would propose that a better, cleaner way of integrating EJBs with the Web Dynpro framework would be to use a BusinessDelegate for invoking business logic, and importing a separate and distinct ModelBean (instead of a CommandBean) to be used for defining and binding to Context data.
    I have built one Web Dynpro application thus far. Instead of using a CommandBean, I created a ModelBean that extends my business object DTO (Data Transfer Object) (which is quite appropriate for that role, given that it implements all the get & set methods that are required for the business data that I need to model). My Web Dynpro application also makes use of an independant BusinessDelegate that is packaged with my EJB DC - this is a standard best practice on J2EE projects. I have been asked by the people working with me to modify this architecture to bring it more in line with the SAP way of doing things. I am open-minded and willing to learn and accept new ways of thinking and doing things. However, I fail to understand the usefulness of merging structure and behaviour by resorting to CommandBeans:
    - <b>It violates the MVC paradigm</b> by having one object (the CommandBean) serve as both model AND controller as far as the Web Dynpro application is concerned. The CommandBean is obviously a model - since it is literally imported as such into the Web Dynpro application. It is ALSO a controller from the Web Dynpro's application perspective, since all calls to the back-end go thru the CommandBean via one or more of its execute_xxx methods. In contrast, the use of a business delegate by the Web Dynpro application clearly separates the model (the CommandBean... or rather, a more suitably named ModelBean) from the controller (BusinessDelegate).
    - <b>Doesn't carry its own weight</b>. In other words, I haven't yet been provided with any valid justification for going thru the extra effort of coding the CommandBean's execute methods. It's been proposed to me that it somehow serves as an abstraction layer between the Web Dynpro application and the business logic. I would argue that it is the BusinessDelegate's role to abstract away the back-end logic from clients. If one does have a BusinessDelegate available, I would argue there's no need to code execute methods in a separate CommandBean. To prove my point, I would simply point out that all of the CommandBean examples that I have seen so far, either in How-To documents, or in production code, all follow the same pattern....
    CommandBean.execute_doSomething() calls BusinessDelegate.doSomething()
    Not a heck of an "abstraction" layer... I would in fact argue that it is worse than useless. If some major change occurs in the business logic that requires changing the doSomething() operation, we expect of course to modify the BusinessDelegate. The Web Dynpro client will also presumably need to be modified - that's to be expected, and unavoidable. But then, we'll also need to go about and change the CommandBean's execute_doSomething() method - again, extra work for no apparent benefit. Adding and removing business methods has the same implication. All this for an layer that simply adds the prefix execute_ in front of all business method calls... Is this "abstraction layer" worth the cost of creating and maintaining it ??
    - <b>Unnecessarily complicates error handling</b>. I have been told that for technical reasons, it is recommended that all exceptions thrown by the CommandBean be of type WDException or WDRuntimException. But what if the client application needs to react differently to different failure scenarios ? When I create a business object, I might wish to provide the user with an error messages if connection is lost to the backend, and with a different error message if an object already exists in the database with the same attributes. In order to do that, I will have to catch the WDException, extract the cause, and continue processing from there... possible, yes, but clearly less standard and more labor intensive than the classical try/catch mechanism.
    To say nothing about the fact that SAP's own API documentation clearly states that applications using Web Dynpro can reference and catch WDExceptions, but THEY MUST NOT THROW OR EXTEND IT !
    - <b>Produces unnecessary DCs</b>. Page 6 of the aforementioned document presents an architectural view of a Web Dynpro project that uses a CommandBean. Why an extra DC for the CommandBean ?? I created my ModelBean class right inside the Web Dynpro project (in the Package view). That, to me, is where this class should reside, because it is created for no other reason that to be used by this particular Web Dynpro application. What is the benefit of placing it in its own independant DC ?
    - <b>Not a typical application of the Command pattern</b>. The well-documented command pattern (Design Patterns - Gang of Four) has been devised mainly to enable encapsulation of request as objects, thereby making it possible to:
    - specify, queue and execute requests at different times
    - decouple execution of a command from its invoker
    - support undo operations
    - support logging changes so that they can be reapplied in case of system crash making it possible to assemble commands into composite commands (macros), thereby structuring a system around high-level operations built on primitive operations.
    None of this applies to the way the SAP CommandBeans are being used. Not that much of an issue to people new to J2EE and/or OO development... but quite confusing for those already familiar with the classic Command pattern.
    At this point, I fail to understand the advantage of merging structure (model) and behaviour (execute methods) through the use of a unique CommandBean object. Am I missing something ?

    Hi Romeo,
    You would be disappointed, this reply ain't anywhere nearby to what you are talking about...
    I wanted to mail you, but you have not mentioned your email in your profile.
    I am really impressed by your flair for writing. It would be far better had you written a blog on this topic. Believe me, it would really be better. There is a much wider audience waiting out there to read your views rather than on the forums. This is what I believe. To top it, you would be rewarded for writing something like this from SDN. On the blogs too, people can comment and all, difference being there you would be rewarded by SDN, here people who reply to you would be rewarded by you. Doesn't make  much a difference.
    Anyways the ball is still in your court
    As far as I am concerned, it has still not been much time since I have started working on Web Dynpro. So can't really comment on the issue...
    Bye
    Ankur

  • Integration between Oracle BPM 10.3 and UCM 11g

    I need to use UCM to manage documents created during a BPM workflow. Instead of attaching these files to the BPM process instance i must put them into the content repository, organizing the folder structure.
    So all i need to use is: Search, GetInfo, and CheckIn functionality.
    I was trying importing RIDC jars into BPM but it was a very bad idea because of many errors at the introspection time.
    So I read there was a Oracle Content Integration EJB, but didn't fount id anywhere...
    The last solution I'm afraid I ought use are Web Services, or a second EJB layer that I should create myself, between BPM and UCM servers.
    Since I hope could use WS, is there such guide to use it, some samples using services?
    I'll trust in your help!!! Thanks in advance...
    Antonio Russo

    11g relies upon SOA suite components for much of the underlying infrastructure.
    Interactive activities are no longer modeled using the simple JSF based ALBPM style screen flows and UI editor. In 11g the human workflow engine is used for this purpose - it handles user routing, notifications, data associations, etc. The actual implementation is done in ADF using task flows. This gives you more flexibility, with the caveat of a bit more complexity.
    11g is a "codeless" environment. ALBPM style Automatic activities and PBL code are a thing of the past. Business logic is now performed either using Business Rules, or by calling Web Services. There are also adapters for accessing the database, FTP, and reading/writing files on the filesystem. Data flows through the process in the form of XML, some of which is abstracted away from the developer in the form of Business Objects in the catalog. However, knowing XML and XML related technologies is now much more important (XSD, XPath, XSL, etc.)
    The Eclipse style IDE is no longer used for design time. JDeveloper is the new IDE. You can also use BPM composer for some online (it's a web based app) project design and publishing.
    The Process Administrator app is now gone - that functionality is replaced by fusion middleware control (Enterprise Manager) and the workspace itself.
    More details can be found in the documentation:
    http://download.oracle.com/docs/cd/E14571_01/soa.htm

  • EJB Impressions?

    Hi all,
    I was hoping to get some feedback from you guys regarding the usefulness of EJB's in J2EE applications. I am currently researching this topic for a class I am taking. I've been reading the J2EE Tutorial, and all the relevant sections, as well as running the examples, and I think I'm getting a pretty good overview of how they work.
    However, I have never actually used EJB's in a real world application. I only have some experience with JSP, servlets and JDBC. I was hoping some of you might provide me with your real-world EJB experiences/impressions. What are the pros, cons? What are the scenarios in which you would want to use them, and when (if ever) would you avoid using them?
    Thanks a lot in advance.
    Samantha

    Pro: It's good to use EJBs when you are building a networked application with multiple computers. Using J2EE and EJBs gets the app online much sooner, and keeps it scalable.
    Con: If your app is going to stay within the capacity of a single server EJBs could be overkill
    Pro: J2EE (EJBs) supports communications between systems by different manufacturers
    Con: If all your app components come from the same vendor, you may not need this capability
    Pro: An EJB container can enforce security restrictions on access to data based on user types.
    Con: If your app doesn't deal with sensitive data - or you have other options for security you might not want an EJB
    Pro: EJBs can provide for storing and restoring of the vital data of an EJB object - which makes it appear that the object is always available.
    Con: Other options could be an OO database.
    Pro: As the J2EE standard becomes more accepted there are more companies that are creating toolkits that simplify interfacing and creating EJB components
    Con: The functionality that you need might be available off the shelf - but at a high cost.
    Pro: An EJB container can provide management of transactions so that equipment failure can not corrupt a database.
    Con: If your app doesn't involve database transactions - or your transactions aren't critical - you may not need this capability
    Overall Experience:
    I've used EJBs for working with communications and databasing with sensitive information. Other methods don't provide the security - or guaranteed data quality. EJBs can be used among several applications that are needing the same functionality - including security.
    So, for security and data integrity EJBs are often the way to go.

  • Redelivery limit not working for transaction timeout?

    hi,
              we have a redelivery limit on a queue that works, except for when there is a transaction timeout. in this case, the message seems to be redelivered infinitely. Is this a bug? a feature?
              we are using Weblogic Server 8.1 SP4. we don't have the source code, so i am not sure how the error handling is done or what exceptions are thrown.
              ------------------ejb-jar.xml------------
              <message-driven>
              <ejb-name>ImporFileReceiver</ejb-name>
              <ejb-class>au.com.auspost.pcms.common.integration.ejb.mdb.ImporFileReceiverMdb</ejb-class>
              <transaction-type>Container</transaction-type>
              <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
              <message-driven-destination>
              <destination-type>javax.jms.Queue</destination-type>
              <subscription-durability>NonDurable</subscription-durability>
              </message-driven-destination>
              </message-driven>
              <container-transaction>
              <method>
              <ejb-name>ImporFileReceiver</ejb-name>
              <method-intf>Local</method-intf>
              <method-name>onMessage</method-name>
              <method-params>
              <method-param>javax.jms.Message</method-param>
              </method-params>
              </method>
              <trans-attribute>NotSupported</trans-attribute>
              </container-transaction>
              <container-transaction>
              <method>
              <ejb-name>ImporFileReceiver</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>onMessage</method-name>
              <method-params>
              <method-param>javax.jms.Message</method-param>
              </method-params>
              </method>
              <trans-attribute>NotSupported</trans-attribute>
              </container-transaction>
              ------------------------ weblogic-ejb-jar.xml ---------
              <weblogic-enterprise-bean>
              <ejb-name>ImporFileReceiver</ejb-name>
              <message-driven-descriptor>
              <pool>
              <max-beans-in-free-pool>10</max-beans-in-free-pool>
              <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
              </pool>
              <destination-jndi-name>jms/pcmsImportFileQueue</destination-jndi-name>
              <connection-factory-jndi-name>jms/pcmsConnectionFactory</connection-factory-jndi-name>
              </message-driven-descriptor>
              <transaction-descriptor>
              <trans-timeout-seconds>3600</trans-timeout-seconds>
              </transaction-descriptor>
              <reference-descriptor>
              </reference-descriptor>
              <dispatch-policy>pcms.execute.queue.mdb.internal</dispatch-policy>
              <remote-client-timeout>0</remote-client-timeout>
              </weblogic-enterprise-bean>
              ------------------------ config.xml -----------------
              <JMSServer Name="eParcel JMS server"
              Store="eParcel JMS Server File Store" Targets="wls_pcms_prod1">
              <JMSQueue CreationTime="1190981682976"
              ErrorDestination="PCMS Import File Error Queue"
              JNDIName="jms/pcmsImportFileQueue"
              Name="PCMS Import File Queue" RedeliveryLimit="2"/>
              <JMSQueue CreationTime="1208347415759"
              JNDIName="jms/pcmsImportFileErrorQueue" Name="PCMS Import File Error Queue"/>
              </JMSServer>
              <JMSConnectionFactory JNDIName="jms/pcmsConnectionFactory"
              Name="eParcel JMS Connection Factory" Targets="wlc_pcms_prod"/>
              <JMSConnectionFactory JNDIName="jms/pcmsXAConnectionFactory"
              Name="eParcel JMS XA Connection Factory" Targets="wlc_pcms_prod" XAConnectionFactoryEnabled="true"/>
              -------------- weblogic log ---------------
              ####<24/04/2008 01:53:58 PM EST> <Warning> <EJB> <HX415> <wls_pcms_prod1> <ExecuteThread: '12' for queue: 'weblogic.kernel.Default'> <project_admin> <> <BEA-010065> <MessageDrivenBean threw an Exception in onMessage(). The exception was:
              javax.ejb.EJBException: Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out after 3599 seconds
              Name=[EJB au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerBean.handleMessage(org.apache.xmlbeans.XmlObject)],Xid=BEA1-696C9947A48195BA18DC(68926234),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=3599,seconds left=60,activeThread=Thread[ExecuteThread: '12' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default'],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=ended,assigned=none),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@447373e,re-Registered = false),SCInfo[wlsd_auspost_prod+wls_pcms_prod1]=(state=active),properties=({weblogic.transaction.name=[EJB au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerBean.handleMessage(org.apache.xmlbeans.XmlObject)], weblogic.jdbc=t3://10.3.2.35:7003}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=wls_pcms_prod1+10.3.2.35:7003+wlsd_auspost_prod+t3+, XAResources={JMS_eParcel JMS Server File Store, weblogic, wlsd_auspost_prod, com},NonXAResources={})],CoordinatorURL=wls_pcms_prod1+10.3.2.35:7003+wlsd_auspost_prod+t3+)
              at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(I)V(ServerTransactionImpl.java:1614)
              at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(Ljava/util/List;I)V(ServerTransactionManagerImpl.java:1117)
              at weblogic.transaction.internal.TransactionManagerImpl.wakeUp()V(TransactionManagerImpl.java:1881)
              at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp()V(ServerTransactionManagerImpl.java:1034)
              at weblogic.transaction.internal.WLSTimer.trigger(Lweblogic/time/common/Schedulable;)V(WLSTimer.java:31)
              at weblogic.time.common.internal.ScheduledTrigger.run()Ljava/lang/Object;(Optimized Method)
              at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(Optimized Method)
              at weblogic.security.service.SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(SecurityManager.java:121)
              at weblogic.time.common.internal.ScheduledTrigger.executeLocally()V(ScheduledTrigger.java:229)
              at weblogic.time.common.internal.ScheduledTrigger.execute(Lweblogic/kernel/ExecuteThread;)V(ScheduledTrigger.java:223)
              at weblogic.kernel.ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(Optimized Method)
              at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
              at java.lang.Thread.startThreadFromVM(Ljava/lang/Thread;)V(Unknown Source)
              ; nested exception is: weblogic.transaction.internal.TimedOutException: Transaction timed out after 3599 seconds
              Name=[EJB au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerBean.handleMessage(org.apache.xmlbeans.XmlObject)],Xid=BEA1-696C9947A48195BA18DC(68926234),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=3599,seconds left=60,activeThread=Thread[ExecuteThread: '12' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default'],XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=ended,assigned=none),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@447373e,re-Registered = false),SCInfo[wlsd_auspost_prod+wls_pcms_prod1]=(state=active),properties=({weblogic.transaction.name=[EJB au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerBean.handleMessage(org.apache.xmlbeans.XmlObject)], weblogic.jdbc=t3://10.3.2.35:7003}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=wls_pcms_prod1+10.3.2.35:7003+wlsd_auspost_prod+t3+, XAResources={JMS_eParcel JMS Server File Store, weblogic, wlsd_auspost_prod, com},NonXAResources={})],CoordinatorURL=wls_pcms_prod1+10.3.2.35:7003+wlsd_auspost_prod+t3+).

    Thanks Tom,
              Good point. The timeout exception is on ImportFileHandlerBean.handleMessage()....which is a session bean. The MDB must call this session bean, which also has a 3600 second timeout. It is confusing since the descriptor for the MDB has the transaction-timeout set, but i assume this is ignored for 'not-supported').
              I guess you would need to look at the code, but is there anyway a message go back on the queue, and not get the redelivery incremented?
              (I just had an evil thought...maybe the code could be physically sending the message onto the queue again when there is a timeout on the session bean.....hence would not get the redelivery incremented.....)
              -------------- ejb-jar.xml ----------------
              <session>
              <ejb-name>ImportFileHandler</ejb-name>
              <local-home>au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerLocalHome</local-home>
              <local>au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerLocal</local>
              <ejb-class>au.com.auspost.pcms.common.integration.ejb.ImportFileHandlerBean</ejb-class>
              <session-type>Stateless</session-type>
              <transaction-type>Container</transaction-type>
              </session>
              ----------- weblogic-ejb.jar.xml -----------
              <weblogic-enterprise-bean>
              <ejb-name>ImportFileHandler</ejb-name>
              <stateless-session-descriptor>
              </stateless-session-descriptor>
              <transaction-descriptor>
              <trans-timeout-seconds>3600</trans-timeout-seconds>
              </transaction-descriptor>
              <reference-descriptor>
              </reference-descriptor>
              <enable-call-by-reference>True</enable-call-by-reference>
              <local-jndi-name>ejb/ImportFileHandlerLocal</local-jndi-name>
              <remote-client-timeout>0</remote-client-timeout>
              </weblogic-enterprise-bean>

  • Ear files in different VM

    Hi,
    I know that the J2EE technology allow developers to deploy an application on a multitier model.
    The middle tier can be divided in more separated tiers, so it is possible to deploy the war files (containing the web-tier presentation logic modules) and the jar files (containing the ejb-tier business logic modules) on different VMs.
    It's also possible to put war and jar files together in a ear file.
    So I think that if I have web-tier and ejb-tier on different servers, I can't use ear files for my applications, but only war and jar.
    Am I right?
    If not on which server should I deploy the ear file?
    Thank you

    Hi there,
    ear files are generally deployed on J2EE Application servers. The ear file can just contain a web application, just EJB's (as jar files) or both. In my experience it's unusual to be able to deploy a war file directly on an app server. On the other hand, there are many Web containers on the market that have no integrated EJB container. It is usual to deploy Web applications on these products as war files.
    In the end the way that you package up the components of your application will be determined by the products that you use. But for most cases where you have seperate systems for yor web and ejb tiers you will deploy a war file on the server for the web tier and an ear file on the server for the EJB tier (most likely an app server).
    Hope this helps
    Amanda
    Developer Technical Support
    Sun Microsystems
    http://www.sun.com/developers

  • TOPLINK-60 when weaving activated

    Hello,
    environment:
    TL-essentials, jdk 1.5.08, windows xp SP2
    i get the following error: (seems to be a problem with the valueholder....)
    Exception [TOPLINK-60] (Oracle TopLink Essentials - 2006.7 (Build 060720)): oracle.toplink.essentials.exceptions.DescriptorException
    Exception Description: The method [_toplink_setbestandsfirma_vh] or [_toplink_getbestandsfirma_vh] is not defined in the object [witt.data.kundenfirmaverwaltung.Kundenfirma].
    Internal Exception: java.lang.NoSuchMethodException: witt.data.kundenfirmaverwaltung.Kundenfirma._toplink_getbestandsfirma_vh()
    Mapping: oracle.toplink.essentials.mappings.OneToOneMapping[bestandsfirma]
    Descriptor: RelationalDescriptor(witt.data.kundenfirmaverwaltung.Kundenfirma --> [DatabaseTable(KUNDENFIRMA)])
    [extract of persistence.xml]
    <property name="toplink.weaving" value="static"/>
    (also tried true)
    [extract of entity]
         @ManyToOne(fetch=FetchType.LAZY)
         @JoinColumn(name="VERTRGEBIET")
         private Vertriebsgebiet vertriebsgebiet;
         @ManyToOne(fetch=FetchType.LAZY)
         @JoinColumn(name="FIRMKZ")
         private Bestandsfirma bestandsfirma;
    If i do not set weaving, Toplink ignores FetchType and does other selects to get the values of the descended parts
    any ideas?
    Regards
    -Robert

    In addition to any settings in the persistence.xml related to weaving you must also either manually run the static weaver or configure the JVM startup to use the weaver via a javaagent: instruction. It is this process that actually does the weaving. The persistence.xml configurations cannot cause this to occur outside the integrated EJB 3.0 containers.
    Can you confirm you are using the static weaving process on the compiled classes and then using the classes output form the weaver in your application?
    Doug

  • Pack200 for EAR files?

    Pack200 has shown considerable success in compressing the size of JARs for client downloads.
    I would be most interested in a similar development for compressing the size of WARs/EARs for server uploads.
    Typically EAR files are 20MB+, and can take 10-15 minutes to upload to a remote application server. I would hope Pack200 could reduce this time considerably.
    Are there any such plans for Pack200 to be applied to EAR/WAR files?
    Thanks,
    Richard.

    Hi there,
    ear files are generally deployed on J2EE Application servers. The ear file can just contain a web application, just EJB's (as jar files) or both. In my experience it's unusual to be able to deploy a war file directly on an app server. On the other hand, there are many Web containers on the market that have no integrated EJB container. It is usual to deploy Web applications on these products as war files.
    In the end the way that you package up the components of your application will be determined by the products that you use. But for most cases where you have seperate systems for yor web and ejb tiers you will deploy a war file on the server for the web tier and an ear file on the server for the EJB tier (most likely an app server).
    Hope this helps
    Amanda
    Developer Technical Support
    Sun Microsystems
    http://www.sun.com/developers

Maybe you are looking for

  • Problem with installation of Oracle Grid Infrastructure failed on Oracle Linux 6.4 x86_64

    Hello! I try install Oracle Grid Infrastructure 11.2.0.1. OS - OEL 6.4 x86_64 But running script  "/u01/app/oracle/product/11.2.0/grid/root.sh" failed: [root@localhost grid]# /u01/app/oracle/product/11.2.0/grid/root.sh Running Oracle 11g root.sh scri

  • Troubleshooting LV(8.6.1) crash

    Hello, I'm trying to locate the cause of an application crash. There is no diagnostic output from LV. WinXP pops up dialog allowing only 'Send' or 'Don't Send' (report to Microsoft). Either button results in all other LV code termination. From XP eve

  • How can I keep Contacts in sync with CardDAV?

    Hello, I am trying to find a way to automatically keep my contacts (and calendars, but will focus on contacts here) in sync with external devices. Currently I have host a CardDAV server using Owncloud. I have my OS X Contacts linked to the CardDAV ac

  • How to Restore Arch's grub after Ubuntu install to 2nd disk

    I installed Ubuntu to sdb after installing Arch to sda. Ubuntu was installed with LVM, though Arch does not use LVM. I want to wipe out ubuntu now, but it seems to be in control of my boot process, and as a newb, I'm not quite sure how that process t

  • Using Virtual Key Figures/ Characteristics is possible to use in InfoSets

    Hi All, Is it possible Using Virtual Key Figures/ Characteristics is possible to use in InfoSets? I have tried all the possibilities using the BADI implementation RSR_OLAP_BADI without success. The VKF / Characteristics works fine when it is being us