Publicar Aplicacion EJB3 Session Facade JSF

Buanas, soy nuevo en la programacion WEB, realice una aplicacion que funciona muy bien en JDeveloper modo debug, pero necesito subirla a un servidor. Tengo la limitante de que requiero que este servidor sea de distribucion libre, por tal motivo he optado por Tomcat o Jboss, el inconveniente que tengo es que la aplicacion no se me conecta con la BD.
Estoy usando un Session Facade en un proyecto y desde otro me conecto a él con un InitialContext (Como muestra el client del session facade), uso Jdeveloper 10g R3, la base de datos es Oracle 10g Express, uso JSF, con framework MyFaces.
Si alguien tiene alguna informacion de la cual me pueda basar para hacerla funcionar mi aplicacion en un servidor, se lo agradecería mucho.

Hi I don't speak english, but...
Good, I am new in the programming WEB, makes an application that works in JDeveloper way very well debug, but I need to raise it a servant. I have the limitante of which I require that this servant is of free distribution, by such reason I have decided on Tomcat or Jboss, the disadvantage that I have is that the application is not connected to me with the BD.
I am using a Session Facade in a project and from other I connect myself to him with a InitialContext (As it shows client of session facade), use Jdeveloper 10g R3, the data base is Oracle 10g Express, use JSF, with framework MyFaces.
If somebody has some information of which it can base to me to make it work my application in a servant, much would be thanked for.
Translate by Google...

Similar Messages

  • [HOWTO] JSF + Session Facade + Entity Bean (EJB3)

    I'm trying to find a tutorial that shows the advisable way to use JSF with EJB 3 entity beans using the Session Facade pattern (?), but the only tutorials around show very basic usage of JSF (validation, conversions etc.).
    The only thing that is close is this: http://forum.java.sun.com/thread.jspa?threadID=5122284 but still not what I'm looking for.
    Is there any documentation available out there..?
    Message was edited by:
    HakelRausd

    Hi,
    I updated the online doc in blueprints solutions catalog with a small explanation of using JSF with EJB Session Bean at https://blueprints.dev.java.net/bpcatalog/ee5/persistence/ejbfacade.html
    I will add an image soon too. The basic idea for JSF and EJB3 programming model is
    JSF Page --> JSF Managed Bean(backing bean) --> Session Bean --> Java Persistence Object.
    In general, ther would be several JSF pages,and several JSF Managed Beans, and several Java Persistence Objects, but fewer Session Beans. The Session Bean would be expected to be shared and accessed by several managed beans with with Session Bean serving as a facade to the Java Persistence Objects, so there would be few Session Beans.
    The Session Bean would usually be a local Session bean and would only be remote if-and-only-if you wanted RMI-IIOP access. Usually web components like Servlets and JSF Managed Beans use local access to the Session Beans and the access is within the same VM, no remoteness.
    Most of the time, the Session Bean would be a Stateless Session Bean, and would not be a Stateful Session Bean.
    hth,
    Sean

  • [DUPLICATE]strange Session Facade method calling behaviour (EJB3/ADF Faces)

    Hi,
    I have a custom query in a Session Facade bean. On my search form I have a popup dialog and when I return from the dialog, the query in the session facade is called for no explicable reason. In fact it seems to get called several times at different events, but I only want it to be called when I click the button it's bound to. Why is this happening?
    The only partial solution I have at the moment is to make one of the method parameters of the query a boolean value that indicates whether I want the query to actually run or not, if it's false I just return from the query. I set this parameter to true in the backing bean when the search button is pressed.
    Can someone please point me to a better solution?
    many thanks
    R

    Hi,
    as mentioned in teh other posting of your, make sure the refresh condition is set so that it doesn't execute the query on postBack
    Frank

  • Transaction Problem in Session Facade Design Pattern

    Hi
    Well Sorry for giving wrang title to the topic, coz of which I have not received and reply.
    I am using session facade design pattern.
    I have Action class calling session facade method "getData" . This method calls "findByPrimaryKey" method in BMP.
    Method "getData" has transaction attribute as "RequiresNew" and "findByPrimaryKey" has "Required".
    This combination does not assign identity to BMP hence I can not use setter getter method for retriving data(throws nullpointer exception when getter method accessed) I have made sure that I am accessing table and getting data in to BMP but as BMP is not ablle to hoild any identity its not allowing me to use BMP's getter method in session facade.
    I have Used Same transaction attribute for create method called by "addNew" method of session facade bean.
    Transaction method for "addNew" is "RequiresNew" and for "create" is "Required".
    It works fine and gives identity toBMP hense I can use Setter getter method defined in BMP bean.
    How can I avoid this and get BMP an identity?
    Thanking in Advance,
    Chintan.

    Sorry, how is this related to JSF?
    There's an OO/patterns forum out. Consider reposting the question over there with formatted code.

  • Session facade deligator

    Hi ALL,
    I used to employ BusinessDelegate pattern in ejb 2.0. My design was SFD ( session facade deligator) ---- SFIMPL - DAO.
    I am wondering whether it is still being used with ejb3.0. Besides providing abstraction layer to the session facade some of the benefits of using a delegate was to cache EJBHome, or to provide client with the byteCode for the serialized ejb Handles and to abstract ejb/rmi exception from the client code.
    Is this pattern still applicable to ejb3.0 since now we don't use ejbHome, ejb/rmi exceptions are not visible and you have dependency injection. In ejb3.0 is the approach of serializing ebj handle still viable?
    Also with struts is it better to create intsatnce of ejb interface in base action class and avoid any session facade deliagtor and call directly ejb imp
    Thanks
    Edited by: j2ee_expert on Jul 8, 2008 1:13 PM

    You should avoid SessioCaching now and leave the job to the dependency injection. They are much more intelligent then what was possible before EJB 3.0.
    For example they will avoid RMI if both applications are running on the same JVM, and take care of all the other stuff as caching and so on.
    Bottomline: You wont need it in EJB 3.0 as dependency injection will take care of all the stuff the ResouceLocator/BD was doing.

  • (ejb 3.0) stateful session facade?

    Hello,
    (1) Would you consider stateful session facade (whose client is a servlet) a bad design?
    (2) How to have a stateful session facade referenced in a servlet? I am using Sun Application Server Platform Edition 9.0 and trying to make an injection:
    @EJB(name="ejb/KOGSessionFacade")
    protected KOGSessionFacade sessionFacade;
    but then I get this error in deploy-time: "A stateful session bean can not be injected into a servlet. Please refer to EJB 3.0 Persistence API Specification section #5.2 for further information."
    Thanks.

    Using a Stateful Session facade from a Servlet is not necessarily a bad design. In some cases, you may want to do some cleanup work on completion of a transaction. Stateful Session beans provide a convenient way (By implementing SessionSynchronization interface) to do this.
    In the servlet programming model, Servlets are not designed to be single threaded. So if you inject a StatefulSessionBean (SFSB) references then multiple threads could be possibly be invoking the SFSB concurrently. In this case, the EJBContainer (as required by the specification), will throw a well defined exception.
    What you may want to do is to place this SFSB reference into you Servlet session.

  • Error while calling local session bean from session facade

    Hi Everybody,
    I was to execute example of session facade pattern. All the files compile properly, but when ejbc command is run, i get the following error:
    ERROR: Error from ejbc:
         In EJB *MANAGER, method create() exposes local interface types or local home interface types through the remote home interface of the bean. This is not allowed.
    ERROR: Error from ejbc:
         In EJB *MANAGER, method remove(java.lang.Object) on the home interface does not throw java.rmi.RemoteException. This is a required exception.
         In EJB *MANAGER, method create() on the home interface does not throw java.rmi.RemoteException. This is a required exception.
    ERROR: Error from ejbc: In EJB MANAGER, the home interface be.telenet.sso.servicelayer.ebiz.ManagerHome must extend the javax.ejb.EJBHome interface.
    ERROR: ejbc found errors
    Thanks
    Amit

    If you are looking a local interface up through JNDI, try using the "java:comp/env" namespace. Also, if you post these questions here about EJB, say what vendor you are using because this stuff is pretty new and there will be differences/bugs/etc.

  • How to create a query in your session facade.

    Please help me
    My code is as follows
    public List<TrpSprojects> getProjectNotAssignedToUser(TrpSemployees employee) {
        List proassignements =  this.findProjectAssingmentForUser(employee);
        System.out.println("Size of project assignment list :"+proassignements.size());
        List projectIdAssigned = new ArrayList();
        String queryText  =  "Select o from Trp_Sprojects o where o.project_id not in (";
        for(Iterator proassign = proassignements.iterator();proassign.hasNext();)
            queryText = queryText+((TrpSprojectAssignment) proassign.next()).getTrpSprojects().getProjectId().toString()+",";
        System.out.println(queryText.substring(0,queryText.length()-1)+");");
       String querytoBeExecuted = queryText.substring(0,queryText.length()-1)+")";
        System.out.println("The query to be executed: "+ queryText);
         Query q = em.createNativeQuery(querytoBeExecuted, TrpSprojects.class);
         return q.getResultList();
        }In my session facade i have to create a query that will return the projects that have not been assigned to the user.
    When i display the queryText it is as follows:
    Select o from Trp_Sprojects o where o.project_id not in (2,1,4,5,12,14,15,16,17,18,20,6,7,8,9,10,11,13,22,19,3,26,21,23)when am executing the query i am getting exception ...
    Can anyone help me please . I have not defined this query in the TrpSprojects Class.
    Part of my exception its too long am only putting a part
    Feb 11, 2008 12:37:07 PM oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    javax.ejb.EJBException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00904: "O": invalid identifier
    Error Code: 904
    Call:Select o from Trp_Sprojects o where o.project_id not in (2,1,4,5,12,14,15,16,17,18,20,6,7,8,9,10,11,13,22,19,3,26,21,23)
    Query:ReadAllQuery(org.trp.model.TrpSprojects); nested exception is:
         Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00904: "O": invalid identifier
    Error Code: 904
    Call:Select o from Trp_Sprojects o where o.project_id not in (2,1,4,5,12,14,15,16,17,18,20,6,7,8,9,10,11,13,22,19,3,26,21,23)
    Query:ReadAllQuery(org.trp.model.TrpSprojects); nested exception is: oracle.oc4j.rmi.OracleRemoteException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00904: "O": invalid identifier
    Error Code: 904
    Call:Select o from Trp_Sprojects o where o.project_id not in (2,1,4,5,12,14,15,16,17,18,20,6,7,8,9,10,11,13,22,19,3,26,21,23)
    Query:ReadAllQuery(org.trp.model.TrpSprojects); nested exception is:
         Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00904: "O": invalid identifier
    Error Code: 904
    oracle.oc4j.rmi.OracleRemoteException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060829)): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00904: "O": invalid identifier
    Error Code: 904
    Call:Select o from Trp_Sprojects o where o.project_id not in (2,1,4,5,12,14,15,16,17,18,20,6,7,8,9,10,11,13,22,19,3,26,21,23)
    Query:ReadAllQuery(org.trp.model.TrpSprojects)
         at com.evermind.server.ejb.EJBUtils.getUserException(EJBUtils.java:346)
         at com.evermind.server.ejb.interceptor.system.AbstractTxInterceptor.convertAndHandleMethodException(AbstractTxInterceptor.java:69)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at SCTimeReport_RemoteProxy_4p6ko7e.getProjectIdAssignedToUser(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.rmi.RmiMethodCall.run(RmiMethodCall.java:53)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)Regards
    Lutchumaya

    Thanks for your help Frank.
    But when i display my query to be executed by the entityManager it is like that
    Select o from Trp_Sprojects o where o.project_id not in (2,1,4,5,12,14,15,16,17,18,20,6,7,8,9,10,11,13,22,19,3,26,21,23)
    Regards
    Lutchumaya

  • Business Delegate and Session Facade

    Business Delegate as well as Session Facade are used to reduce coupling between presentation-tier clients and business services.
    Could someone provide the key differences between these two patterns.
    And one more, is Session Facade applicable(can be implemented) only to Enterprise Java Beans? Or even a POJO can be a Session Facade
    Thanks in Advance

    Business Delegate as well as Session Facade are used
    to reduce coupling between presentation-tier clients
    and business services.
    Yes. And also in EJB to overcome some of the deficiencies in distributed architectures.
    Could someone provide the key differences between
    these two patterns.
    Business Delegate is used by a client whereas the Session Facade is used to abstract a business service.
    And one more, is Session Facade applicable(can be
    implemented) only to Enterprise Java Beans? Or even a
    POJO can be a Session Facade
    Yes. Think of a session facade as your 'easy' or 'high-level' API. Your actual business tier may have its own 'low-level' API that callers should not have to interact with or understand.
    Thanks in AdvanceYou're welcome.
    - Saish

  • Business delegate and Session facade design patterns

    Does any one tell me, what is the difference between business delegate and session facade design patterns.

    1. Session Facade decouples client code from Entity beans introducing session bean as a middle layer while Business Delegate decouples client code from EJB layer ( Session beans).
    2. SF reduces network overhead while BD reduces maintenance overhead.
    3. In SF any change in Session bean would make client code change.
    While in DB client is totally separate from Session bean because BD layer insulate client from Session beans(EJB layer).
    3. In only SF scenario, Client coder has to know about EJB programming but BD pattern no EJB specialization needed.
    4.SF emphasizes on separation of Verb, Noun scenario while BD emphasizes on separation of client(presentable) and EJB layer.
    Anybody pls suggest more differences ?

  • Traction Problem In Session Facade Disign

    Hi
    I am using session facade design pattern.
    I have Action class calling session facade method "getData" . This method calls "findByPrimaryKey" method in BMP.
    Method "getData" has transaction attribute as "RequiresNew" and "findByPrimaryKey" has "Required".
    This combination does not assign identity to BMP hence I can not use setter getter method for retriving data(throws nullpointer exception when getter method accessed) I have made sure that I am accessing table and getting data in to BMP but as BMP is not ablle to hoild any identity its not allowing me to use BMP's getter method in session facade.
    I have Used Same transaction attribute for create method called by "addNew" method of session facade bean.
    Transaction method for "addNew" is "RequiresNew" and for "create" is "Required".
    It works fine and gives identity toBMP hense I can use Setter getter method defined in BMP bean.
    How can I avoid this and get BMP an identity?
    Thanking in Advance,
    Chintan.

    Hi
    I am using session facade design pattern.
    I have Action class calling session facade method "getData" . This method calls "findByPrimaryKey" method in BMP.
    Method "getData" has transaction attribute as "RequiresNew" and "findByPrimaryKey" has "Required".
    This combination does not assign identity to BMP hence I can not use setter getter method for retriving data(throws nullpointer exception when getter method accessed) I have made sure that I am accessing table and getting data in to BMP but as BMP is not ablle to hoild any identity its not allowing me to use BMP's getter method in session facade.
    I have Used Same transaction attribute for create method called by "addNew" method of session facade bean.
    Transaction method for "addNew" is "RequiresNew" and for "create" is "Required".
    It works fine and gives identity toBMP hense I can use Setter getter method defined in BMP bean.
    How can I avoid this and get BMP an identity?
    Thanking in Advance,
    Chintan.

  • Service Locator and session facade pattern

    What are differences between Service Locator and session facade pattern?
    For me it seems one and the same.
    Please explain me in detail. Expecting kind help.
    Thanks,
    Rahul
    Edited by: rahulb1 on Feb 26, 2008 5:07 PM

    rdoekes wrote:
    The ServiceLocator Pattern is a singleton which hold a map of used DataSources. The idea is that you perform a lookup once and use the cache afterwards. The session facade is just one DataSource lookup.huh? Those J2EE patterns are not really reduced to datasources and the SessionFacade has actually nothing to do with datasources.
    Session Facade
    It has Facade in it and a Facade is usually used to give a simple entrypoint by providing a standartized interface. The same is now with the Session Facade. You have a Session bean that represents a high-level business component that interacts and calls lower-level business components.
    Imagine having client a accessing 5 business objects with the remote calls, which is not an efficient way (network latency) or accessing the SessionFace and the session face is doing all the work through local access.
    Service Locator
    As J2EE components are using JDNI to lookup for ejb interfaces,DataSources, JMS components, connections etc. isntead of writing all the lookup in many code piecess across the project, you write a service locator that gives you a centralized place to handle the lookup's. It's easier to maintain and to control such a setup.
    As you can see there's quite a big difference ;-)
    cya,
    Nail

  • Calling session facade methods from my code

    My application consists of two projects: Interface and Model. Model, of course, is used for access to a database using TopLink with POJOs and session facade bean...Pretty much like thing done int tutorial. While, naturally, Interface project are the web pages etc. Standard web application.
    Now, there is no problem with using data controls from session facade bean (drag and drop to the form for making tables, lists, forms etc.), that works fine.
    What I need is to use methods from my session facade bean in my code. For example, I have made a TopLink query findAllLabels. It is exposed in session facade bean UtilBean so in the bean the code is
    List<Labels> findAllLabels(){
    So In some part of my code (for instance, in some backing bean) I would like to call this query. I have done this:
    UtilBean util=new UtilBean();
    List<Labels> labels=util.findAllLabels();
    And this works fine, for now. But, I'm wondering, is this the correct solution, and is there some more ellegant and correct way to do this? Is it correct to instantiate a session facade bean in this way?

    The more appropriate and correct solution is as follows:
    Drag the toplink named query(without expanding it) from the data control pallete into your h:form.
    You will get an option to create a ADF Command Button or ADF Command Link.
    Select ADF Command Button.
    Double click the generated button.
    It enables you to create a default action listener for the button. Ensure that the Check box labelled
    "Generate ADF Binding Code" is checked.
    Click OK.
    This should create a method in your backing bean
    as
    public String commandButton1_action(....)
    /*Generated Code.
    Insert your code here
    This should solve your problem
    Bye.

  • Business Delegate and Session Facade Pattern

    Hi!
    The only way to use the Session Facade Pattern, is if I use EJB for Persistence.
    Is valid to do this?:
    I use Ejb for simple update, insert querys. From my business delegate I call the Session Facade Layer, and from this I invoque Entyties for persistence.
    But if I have complex querys, is correct to make PL SQL Procedures and do the following:
    From my business delegate I call to the Dao layer, and from this via JDBC I call the Procedure.
    Please explain me the best form to do this, having complex querys for reporting and simple querys for inserts/update.
    Is valid to combine the use of CMP (for simple persistence cases), BMP (for complex persistence cases), and JDBC for complex select querys with multiple result rows.
    Thanks!!

    It depends on your design goals. One of the forces driving the use of patterns is the desire to tier an application and abstract the internals of each tier away from the other tiers. One (normal) benefit of this methodology is that the application should become more portable. Now, if you are using PL/SQL, BMP and CMP, you are mixing and matching portable versus proprietary. This is okay. But you should abstract away whether you are using PL/SQL, BMP or CMP from the business layer (or domain model). Ideally, you could completely swap database technologies (say from relational to object) and only have to re-write your integration tier (your DAO's).
    Session facade is simply a glorified Facade pattern. It abstracts the lower-level details of what you are persisting and instead forces you to think in terms of objects. You can use a facade without even remotely touching EJB's. It just so happens that, historically, EJB containers made a mess out of scalability when it came to entity beans. The "session" facade refers to a facade pattern implemented in session beans (that have fewer scalability problems) communicating with the entity beans which do have scalability problems.
    So... to make a long story short, use whatever persistence mechanism you desire. Remember that you should be able to completely switch your persistent store from one type or another and simply re-write your DAO's (or CMP deployment descriptors). Using a facade pattern can help towards this end, but don't make it a straightjacket.
    - Saish
    "My karma ran over your dogma." - Anon

  • Business Delegate and Session Facade usage.

    Hi guys.
    I am new to JavaEE and I recently learnt the Business Delegate and Session Facade design patterns. The tutorials from Oracle did gave me a basic idea of what they are and why they are used, but the example didn't really answer all my questions. So I decided to use a real life scenario here and put my question in to it. Any help is appreciated.
    Assume I want to create a search employee page for my company, the employees are categorized by his or her department and the province he or she is in. I have in the database a look up table for department and province. (as shown in the image below)
    http://oi46.tinypic.com/idvpsl.jpg
    So I create three JPA entities, one for each table. Now I am stuck with what is the proper way to design the session facade design pattern. I know that I will need the to access all three entities in my page. (to get the drop down list for Provinces and Departments, and to retrieve list of Employees based on the selection) So should I create a Stateless Session Bean as session facade to access all three JPA Entities or should I create three separate Stateless Session Bean to manage one Entity each?
    I came up three component diagram in the below picture.
    The first one has one Stateless Session Bean as session facade and manages all three Entities.
    The second one has a session facade to manage the relationship between business objects such as ProvinceManagerEJB and DepartmentManagerEJB which will manage the corresponding Entities.
    The last one has three Stateless Session Beans that will manage one Entity each, all three Stateless Session Beans can be looked up via the Business Delegate pattern.
    http://oi46.tinypic.com/10pqets.jpg
    Please let me know if any one of them is the proper way to use business delegate and session facade. or none of them is correct. (which I assume might happen)
    Again, thank you so much for your help.
    Cheers
    Edited by: 992005 on 05-Mar-2013 18:15
    Edited by: 992005 on 05-Mar-2013 18:17

    Well I can't access any of your diagrams from here so can't comment on them. For dividing the functionality into separate classes, think about
    1.) Quantity - Are there many enough service calls to require splitting up or will one application service class be enough? The size of the system is important here.
    2.) Are you duplicating logic in the services? e.g save person, delete person in one service and save department, delete department in another e.t.c is better factored into one service with save entity, delete entity calls because the JPA entity manager doesn't know about the type anyway and it's easier to apply common logic (e.g logging auditing) around the calls.
    3.) Will each service makes sense on it's own or do you always need the other functionality to completely describe the service? Here it is important not think about entities but about the business use cases. Process1Service is better than Entity1Service, Entity2Service ... EntitynService.Think granule of reuse = granule of release. Only split out individually reusable services. A good way to understand granules of reuse in your system is to think about (or start by writing) test cases for the functionality. Testable code is reusable code.
    4.) Will the services change together? At class level you would look at common closure principle (classes that change together should be packaged together). You can apply the closure to the methods as well. Make it easy for future developers to recognize dependent functionality by packaging it together.
    These are just general because in enterprise development requirements are king. You can chose to follow or discard any of these rules depending on your requirements as long you understand the impact of each decision.

Maybe you are looking for