Expert's advise: share EJB components and business logic

Hi all,
I've a J2EE applicacion and I want to know if is posible share my ejb business logic with other components in other enviroments and differents programming languages.
for example, I show you my scenario...
I've a J2EE application that will be run in a WebSphere server (running over windows) for my JSP cliente side(you know... the web browser), all is ok!!! but my application need also receive request from remote clients (components from other business applications) that may be compiled in .net (over windows) or c++ (over AS400 or linux) and send the response to the respective client.
well...
my question is if is posible, which can be the protocols or java technologies that i will need to use for implements some like this.
thanks for your answer...

Web services is one possibility.

Similar Messages

  • Bean containing both UI components and business logic

    Hello  ADF design experts,  please guide me.   I came across a critical design aspects.  I have main page having bunch of UI components,   Region 1,  Region 2. I will have to bind the UI components of the page to a managed bean having session scope and the reason is,  when control goes to region 1 or region 2, I will be doing lot of  processing of business logic  and then based on this,  I will have to update the UI components of the page.   Same thing with region 2 also.  And then,  I should be able to access the information    across regions and also across other UI components etc.
    I am seeing only  session scoped bean will be able to help me here to get my tasks done across regions and across all other UI components of the page because I am not in a position to pass too many parameters across regions.     Now the problem is,  I can not serialize this bean  because as I mentioned  lot of UI components are updated based on logic. 
    If I do not serialize the bean, I may have problem in future when application has to be deployed to cluster envt.
    I do not know how should I go with my design now.   Please provide me brilliant ideas and very thankful to your guidance.
    thanks

    Hi ADF,
    I dont want to disturb the discussion with you and Alej. I'm rising some question from your first post.
    I have main page having bunch of UI components, 
    ok fine.
    Region 1,  Region 2. I will have to bind the UI components of the page to a managed bean having session scope
    1.why need to do this binding for all ui components .?
    2.this question lead ask another question are you using ADFBc.? if so binding layer will take care why you bind all those things.
    3.why you need to put session scope.?
    if you are using region. the region can only be bounded TF right, then communicate with help of pageflow. inside the bounded you may have jsff/jspx,
    reason is,  when control goes to region 1 or region 2, I will be doing lot of  processing of business logic  and then based on this,  I will have to update the UI components of the page.   Same thing with region 2 also.
    from the reason i have question? why you need to communicate between two region instead of using Taskflow communication.
    And then,  I should be able to access the information  across regions and also across other UI components etc.
    ok fine.
    I am seeing only  session scoped bean will be able to help me here to get my tasks done across regions and across all other UI components of the page because I am not in a position to pass too many parameters across regions.     Now the problem is,  I can not serialize this bean  because as I mentioned  lot of UI components are updated based on logic. 
    from my point of view. your are using all powerful feature session bean, region communication to do your requirement.
    mixing all those things so only you can't able to get consistent results.
    I do not know how should I go with my design now.
    could you please explain your usecase.
    Please provide me brilliant ideas and very thankful to your guidance.
    yeah sure. people will do.
    thanks

  • How to import EJB components and Web Dynpro into WAS 6.4

    I have EJB components and developed Web Dynpro application.
    Is it possible to upload directly without using NWDS? My system is very slow while running NWDS.
    I don't know how to upload or deploy those on WAS 6.4.
    Can any one help me out on this.
    Thanks,
    Mahesh

    Hi,
    The default SDM password is <b>sdm</b>, try this one.
    1. Once login into SDM select <b>Deployment</b> tab.
    2. Click the first Icon to add your .EAR files.
    3. Continue the deployment process by clicking the <b>Next</b> button.
    4. In last screen of the deployment <b>Confirm</b> the deployment.
    Let me know if you need anything.
    Thanks
    Srinivasu Rao Sandaka

  • Connecting servlet and business logic

    Hi everybody,
    in a server-client like architecture im using a servlet for communication with clients over http (not for creating web pages etc).
    i wrote a parser class to get messages from servlet, parse them, and perform necessary actions.
    According to the message content, parser must call methods from another java application running on the same machine.
    The problem is how it can do that. If only static methods were called, it would be okey, but simply i have to reach the other application from the servlet, and i want to have them decoupled as much as possible.
    any suggestions?

    I'm trying to make a sense of what you're trying to do. You have an already existing application with already existing objs, and you're trying to make a servlet communicate with that application ?
    Now, what kind of app is it ? You can instantiate any class from a servlet through a business delegate, as long as the servlet container can find the classes or the jar files (in WEB-INF/classes,WEB-INF/lib or the server's global lib directory). I think you're telling me that you can't do that for some reason(s), and that backend app has already instantiated the objs you need ?
    Can you edit that backend app and add a layer that serializes these famous objs you need into .ser files ?
    The servlet would then just deserialize those objs, and use them in the parser. Of course, those objs would need to be serializable, and the servlet would still need to be able to access the objs class or jar files.
    There are of course other ways to communicate : XML, JNDI, etc...
    If you need to start that app from the servlet on the same machine, take a look at the java RunTime and the exec() method call.
    If the above does not help, I'm afraid you'll have to make your problem even clearer...

  • Badi and Business event( Urgent)

    Hi experts,
          I am new to badi and business event 1120P. Please post how this business event exactly comes in to picture in this badi. also how to find this business event?
    And also Post the logic or code. The requirement is given below . Pls Post the solution. Its very urgent.
    Enhancement Summary
    Two user exits are needed to determine the correct G/L Account and Cost Center on Shipment Cost documents and post the Material Group on the Accounting document. BADI_SCD_ACCTG and Business Event 1120P can be used to accommodate the new functionality.
    Business Process
    Specific G/L Accounts and Cost Centers have to be determined to post on the Shipment Cost document. This is needed to provide accurate management reporting capabilities on shipments for Sales Order or Stock Transfer Order. A new custom table must be created which contains the following information: Distribution, Mode of Transport, Account, Cost Center Material group. Distribution is an identifier here if this shipment originated from an SO or STO.
    There are no screens involved in this enhancement.
    Components
    Table: ZTABLE1
    Field     Data Element     Type     Length     Description
    MANDT     MANDT     CLNT (key)     3     Client
    DISTRIBUTION     Z_DISTRIBUTION     CHAR (key)     1     Distribution
    MOT     ZZDEF_MOT     CHAR (key)     2     Mode of Transportation
    MATKL     MATKL     CHAR (key)     9     Material group
    SAKNR     SAKNR     CHAR     10     G/L Account Number
    KOSTL     KOSTL     CHAR     10     Cost Center
    This table gets updated manually by the FI team.
    Values for Distribution are:
    ‘1’  =  Primary Distribution to Refinery
    ‘2’ = Primary and Secondary– Excluding refinery
    All entries must be checked against SAP config and master tables
    User exit BADI BADI_SCD_ACCTG will be used to determine the correct G/L Account, Cost Center and Product Group based on Distribution and Mode of Transport. This BADI gets called only when a new Shipment Cost document get created.
    Once the BADI determined the new values it populates field c_vfkn-sakto with the G/L account, field c_vfkn-kostl with the Cost Center and exports the Product group to memory.
    There is no field on the Shipment Cost Document to store the Product group. Therefore another mechanism must be used to get the Product Group on the accounting document.
    Business Event 1120P can be used to import the Product group out of memory and put it on BSEG-MATNR. Structure BSEG_SUBST must be enhanced with field MATNR for this purpose.
    Function, Rules, Exits      Description of Functionality, Rules, Exits
    BADI_SCD_ACCTG     Business Add-In for Shipment Cost Account Assignment
    Business Framework     Business Event 1120P can be used to import the Product Group from memory and to populate field BSEG_SUBST-MATNR.
    This event gets called from different places. It needs to be ensured that it only populates the value when it was called from BADI_SCD_ACCTG.
    Custom Table     A look-up Table needs to be maintained for Distribution, Mode of Transport, G/L Account, Cost Center and Material Group
    Transaction code     To maintain the new table
    Append Structure     To enhance structure BSEG_SUBST with MATNR
          Business Add-In BADI_SCD_ACCTG can be used to determine the account assignments for a shipment cost item to set the G/L Account and Cost Center. All data needed to determine the new information gets provided in this BADI.
    Logic:
    •     Determine if STO or SO based on Document Category from internal table I_REFOBJ-VTRLP field VGTYP If is C then Distribution type is Sales Order (Primary and Secondary – Excluding Refinery – ‘2’ ) else we need to check the receiving plant. If the receiving plant (I_REFOBJ-VTRLK field WERKS) is a refinery the Distribution type is Primary (1) else it’s a (Primary and Secondary – Excluding Refinery – ‘2’ ). Refineries can be identified via Function Module ZPLANTCLASSIFICATION. The plant must be passed into Import Parameter IP_SAPPLANT and field INT_PLANTCHAR-ATNAM must be looked up with value SAPTYPE. If it exists and field ATWRT contains ‘RFY’, the plant is a refinery.
    •     Product Group can be determined from the Material master through Material group field MARA-MATKL.
    •     Mode of Transport will be passed in the BADI in VTRLK-OIC_MOT.
    •     Select single entry from table ZTABLE1based on Distribution, Mode of Transport and Material Group. If nothing gets selected, error message ‘No entry exists in table ZTABLE1for Distribution (distribution), MOT (MOT) & Mat. Group (material group)’ should be triggered.
    •     Move ZTABLE1-SAKNR  to c_vfkn-sakto and ZTABLE1-KOSTL to c_vfkn-kostl
    •     The Material group must be exported to memory in BADI_SCD_ACCTG
    •     The Material group must be imported from memory in Business Event BP1120P
    •     Free Memory in Business Event BP1120P
    This is VI01 – Creation of Freight Cost Item screen
    and also code for function module ZPLANTCLASSIFICATION below
    FUNCTION zplantclassification .
    ""Local interface:
    *"  IMPORTING
    *"     REFERENCE(IP_SAPPLANT) LIKE  AUSP-OBJEK OPTIONAL
    *"     REFERENCE(IP_CPSPLANT) LIKE  AUSP-ATWRT OPTIONAL
    *"     REFERENCE(IP_SISLOC) LIKE  AUSP-ATWRT OPTIONAL
    *"  EXPORTING
    *"     VALUE(EP_SAPPLANT) LIKE  AUSP-OBJEK
    *"     VALUE(EP_CPSPLANT) LIKE  AUSP-ATWRT
    *"     VALUE(EP_SISLOC) LIKE  AUSP-ATWRT
    *"     VALUE(EP_OWNERSHIP) LIKE  AUSP-ATWRT
    *"     VALUE(EP_SMISTYPE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_SPOTREF) LIKE  AUSP-ATWRT
    *"     VALUE(EP_SUBTYPE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_SUPPLYREGION) LIKE  AUSP-ATWRT
    *"     VALUE(EP_TYPE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_DISTAREA) LIKE  AUSP-ATWRT
    *"     VALUE(EP_GEOGAREA) LIKE  AUSP-ATWRT
    *"     VALUE(EP_HMF) LIKE  AUSP-ATWRT
    *"     VALUE(EP_IATACODE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_IRSTCN) LIKE  AUSP-ATWRT
    *"     VALUE(EP_OPSAREA) LIKE  AUSP-ATWRT
    *"     VALUE(EP_PLANTSTAT) LIKE  AUSP-ATWRT
    *"     VALUE(EP_PORTCODE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_REFAREA) LIKE  AUSP-ATWRT
    *"     VALUE(EP_SAPTYPE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_MFGWARRANTY) LIKE  AUSP-ATWRT
    *"     VALUE(EP_USERTYPE) LIKE  AUSP-ATWRT
    *"     VALUE(EP_TRMCENTER) LIKE  AUSP-ATWRT
    *"     VALUE(EP_TRANSCENTER) LIKE  AUSP-ATWRT
    *"     VALUE(EP_FEIN) LIKE  AUSP-ATWRT
    *"  TABLES
    *"      INT_PLANTCHAR STRUCTURE  ZPLANTCLASSIFICATION OPTIONAL
    *"  EXCEPTIONS
    *"      NO_OBJEK_FOUND
    *"      NO_CPSPLANT_FOUND
    *"      NO_SISLOC_FOUND
    *"      NO_INPUT_FOUND
    *"      VALID_PLANT_NO_CHARACTERISTIC
    *"      ONE_TO_MANY_ISSUE
    *"      PLANT_NOT_FOUND_ZDEF_DELPLANT
    *"      UNKNOWN_ERRORS
    FM Name: ZPLANTCLASSIFICATION     
    Created By  :  SYUB                                                  *
    Description : Function Module to retrieve plant characteristics      *
    The function module has two capabilities:
    1. Retrieve only the necessary characteristics
    2. Retrieve the whole characteristics into an internal table.
    Parameter Description                                                *
    In the future, if there is a new characteristic added to the
    plant classification tables, the characteristic has to be added
    to the list of the export parameters and the loop statement.
      TABLES: ausp, cabn, ksml, zdef_delplant.
      DATA: ws_objek LIKE ausp-objek,
            ws_countchar TYPE i,
            ws_countplant TYPE i.
    *Internal table for SAP plant
      DATA: BEGIN OF int_plant OCCURS 0,
            plant LIKE ausp-objek,
            END OF int_plant.
    *sap plant code is the input parameter.Move objek, atnam, and atwrt to
    *internal table PLANTCHAR using inner join of AUSP, CABN, and KSML to
    *synch up the internal characteristic numbers throughout the 3 tables.
      IF NOT ip_sapplant IS INITIAL.
        SELECT auspobjek cabnatnam ausp~atwrt
          INTO CORRESPONDING FIELDS OF TABLE int_plantchar
          FROM ksml AS ksml
          INNER JOIN cabn AS cabn
            ON cabnatinn = ksmlimerk
          INNER JOIN ausp AS ausp
            ON ausp~objek = ip_sapplant
            AND auspatinn = cabnatinn
            AND ausp~mafid = 'O'
            AND ausp~klart = 'Z01'.
    *Checking the existence of ip_sapplant in the table, if it doesn't
    *exist, raise the exception else if it exists, check if it has
    *characteristic values.
        IF sy-subrc NE 0.
          RAISE no_objek_found.
        ELSE.
          DESCRIBE TABLE int_plantchar LINES ws_countchar.
          IF ws_countchar LT 2.
            RAISE valid_plant_no_characteristic.
          ENDIF.
        ENDIF.
    *cps plant code is the input parameter. Move objek from table AUSP to
    *ws_objek using inner join of CABN and AUSP to match up the internal
    *characteristic numbers from the 2 tables.
      ELSEIF NOT ip_cpsplant IS INITIAL.
        SELECT ausp~objek
          INTO TABLE int_plant
          FROM ausp AS ausp
          INNER JOIN cabn AS cabn
            ON cabn~atnam = 'OLDCODE'
              WHERE auspatinn = cabnatinn
                AND ausp~mafid = 'O'
                AND ausp~klart = 'Z01'
                AND ausp~atwrt = ip_cpsplant.
    *Checking the existence of ip_cpsplant in the table
        IF sy-subrc EQ 0.
    *Counting the number of SAP plants in the internal table int_plant
          DESCRIBE TABLE int_plant LINES ws_countplant.
    *Moving the values of objek, atnam, and atwrt to PLANTCHAR using objek
    *from ws_objek.
          IF ws_countplant EQ 1.
            LOOP AT int_plant.
              SELECT auspobjek cabnatnam ausp~atwrt
                INTO CORRESPONDING FIELDS OF TABLE int_plantchar
                FROM ksml AS ksml
                INNER JOIN cabn AS cabn
                  ON cabnatinn = ksmlimerk
                INNER JOIN ausp AS ausp
                  ON ausp~objek = int_plant-plant
                  AND auspatinn = cabnatinn
                  AND ausp~mafid = 'O'
                  AND ausp~klart = 'Z01'.
            ENDLOOP.
    *If there more than one SAP Plants, then raise an exception.
          ELSEIF ws_countplant GT 1.
            RAISE one_to_many_issue.
          ENDIF.
        ELSE.
          SELECT SINGLE werks FROM zdef_delplant
            INTO ws_objek
            WHERE cpsloc = ip_cpsplant.
          SELECT auspobjek cabnatnam ausp~atwrt
           INTO CORRESPONDING FIELDS OF TABLE int_plantchar
           FROM ksml AS ksml
           INNER JOIN cabn AS cabn
             ON cabnatinn = ksmlimerk
           INNER JOIN ausp AS ausp
             ON ausp~objek = ws_objek
             AND auspatinn = cabnatinn
             AND ausp~mafid = 'O'
             AND ausp~klart = 'Z01'.
          if sy-subrc ne 0.
            raise plant_not_found_zdef_delplant.
          endif.
        ENDIF.
    *cps plant code is the input parameter. Move objek from table AUSP to
    *ws_objek using inner join of CABN and AUSP to match up the internal
    *characteristic numbers from the 2 tables.
      ELSEIF NOT ip_sisloc IS INITIAL.
        SELECT ausp~objek
          INTO TABLE int_plant
          FROM ausp AS ausp
          INNER JOIN cabn AS cabn
            ON cabn~atnam = 'SISLOC'
              WHERE auspatinn = cabnatinn
                AND ausp~mafid = 'O'
                AND ausp~klart = 'Z01'
                AND ausp~atwrt = ip_sisloc.
    *Checking the existence of ip_sapplant in the table
        IF sy-subrc EQ 0.
          DESCRIBE TABLE int_plant LINES ws_countplant.
    *Moving the values of objek, atnam, and atwrt to PLANTCHAR using objek
    *from ws_objek.
          IF ws_countplant EQ 1.
            LOOP AT int_plant.
              SELECT auspobjek cabnatnam ausp~atwrt
                INTO CORRESPONDING FIELDS OF TABLE int_plantchar
                FROM ksml AS ksml
                INNER JOIN cabn AS cabn
                  ON cabnatinn = ksmlimerk
                INNER JOIN ausp AS ausp
                  ON ausp~objek = int_plant-plant
                  AND auspatinn = cabnatinn
                  AND ausp~mafid = 'O'
                  AND ausp~klart = 'Z01'.
            ENDLOOP.
    *If there more than one SAP Plants, then raise an exception.
          ELSEIF ws_countplant GT 1.
            RAISE one_to_many_issue.
          ENDIF.
        ELSE.
          SELECT SINGLE werks FROM zdef_delplant
            INTO ws_objek
            WHERE sisloc = ip_sisloc.
          SELECT auspobjek cabnatnam ausp~atwrt
           INTO CORRESPONDING FIELDS OF TABLE int_plantchar
           FROM ksml AS ksml
           INNER JOIN cabn AS cabn
             ON cabnatinn = ksmlimerk
           INNER JOIN ausp AS ausp
             ON ausp~objek = ws_objek
             AND auspatinn = cabnatinn
             AND ausp~mafid = 'O'
             AND ausp~klart = 'Z01'.
          if sy-subrc ne 0.
            raise plant_not_found_zdef_delplant.
          endif.
        ENDIF.
      ELSE.
    *Checking if there is an input parameter entered.
        RAISE no_input_found.
      ENDIF.
    Modified 7/30 by RFOR to validate SAP plant is in plant master
      data: wa_t001w like t001w.
      read table int_plantchar.
      SELECT SINGLE * from t001w into wa_t001w where
      werks = int_plantchar-objek.
      if sy-subrc ne 0.
        raise NO_OBJEK_FOUND.
      endif.
    *Moving all the characteristic values to the export parameters
      LOOP AT int_plantchar.
        MOVE int_plantchar-objek TO ep_sapplant.
        CASE int_plantchar-atnam.
          WHEN 'OLDCODE'.
            MOVE int_plantchar-atwrt TO ep_cpsplant.
          WHEN 'SISLOC'.
            MOVE int_plantchar-atwrt TO ep_sisloc.
          WHEN 'OWNERSHIP'.
            MOVE int_plantchar-atwrt TO ep_ownership.
          WHEN 'SMISTYPE'.
            MOVE int_plantchar-atwrt TO ep_smistype.
          WHEN 'SPOTREF'.
            MOVE int_plantchar-atwrt TO ep_spotref.
          WHEN 'SUBTYPE'.
            MOVE int_plantchar-atwrt TO ep_subtype.
          WHEN 'SUPPLYREGION'.
            MOVE int_plantchar-atwrt TO ep_supplyregion.
          WHEN 'TYPE'.
            MOVE int_plantchar-atwrt TO ep_type.
          WHEN 'DISTAREA'.
            MOVE int_plantchar-atwrt TO ep_distarea.
          WHEN 'GEOGAREA'.
            MOVE int_plantchar-atwrt TO ep_geogarea.
          WHEN 'HMF'.
            MOVE int_plantchar-atwrt TO ep_hmf.
          WHEN 'IATACODE'.
            MOVE int_plantchar-atwrt TO ep_iatacode.
          WHEN 'IRSTCN'.
            MOVE int_plantchar-atwrt TO ep_irstcn.
          WHEN 'OPSAREA'.
            MOVE int_plantchar-atwrt TO ep_opsarea.
          WHEN 'PLANTSTAT'.
            MOVE int_plantchar-atwrt TO ep_plantstat.
          WHEN 'PORTCODE'.
            MOVE int_plantchar-atwrt TO ep_portcode.
          WHEN 'REFAREA'.
            MOVE int_plantchar-atwrt TO ep_refarea.
          WHEN 'SAPTYPE'.
            MOVE int_plantchar-atwrt TO ep_saptype.
          WHEN 'MFG_WARRANTY'.
            MOVE int_plantchar-atwrt TO ep_mfgwarranty.
          WHEN 'USER_TYPE'.
            MOVE int_plantchar-atwrt TO ep_usertype.
          WHEN 'TERMINALCENTER'.
            MOVE int_plantchar-atwrt TO ep_trmcenter.
          WHEN 'TRANSPORTATIONCENTER'.
            MOVE int_plantchar-atwrt TO ep_transcenter.
          when 'FEIN'.
            move int_plantchar-atwrt to ep_fein.
        ENDCASE.
      ENDLOOP.
    ENDFUNCTION.
    Pls help me out from this problem its very urgent.
    Thanks

    hi SK ,
    process like this .
    in BADI
    method.
    1.Here u have to put ur logic based on the Requirement.
    2.then u have to call BTE like this
    <b>call function 'OPEN_FI_PERFORM_00001020_E'
          tables
            t_bseg = xbseg
            t_bkpf = xbkpf.</b>
    3.Update Ztables.
    endmethod.
    this is sample logic only.First get logic of TS then u will come to know how to do?
    regards
    prabhu

  • How To Create A Technical And Business Systems For Web AS ABAP ???

    Hi Experts,
    How To Create A Technical And Business Systems For Web AS ABAP ???
    Please Let me Know All the Step-By-Step Process to Create ????
    Points Will be Given
    Regards
    Khanna

    Hi Sumit,
    When U Told the thing that first time to execute the RZ70 and All i Did this in XI System
    So I got An Entry for the Technical System for XI System.
    Now i Deleted that and Executed RZ70 in R/3.
    When I Executed RZ70, I got this Error.
    <b> "RFC Call failed: Error Opening an RFC Connection "</b>.
    Now I am Unable to see Any Technical System  Under Web As ABAP. It's Showing Empty Now.
    Please Let me know
    Regards
    Khanna

  • How to split presentation level and business level using two ATG instances

    Hello All!
    We are investigating possibility of splitting ATG presentation (web store with jsp pages and other presentation components) and business (ATG components such as Pricing, Catalog, etc.) levels. The first idea that we have is simply start two instances of ATG. One instance will serve client requests (presentation level) and communicates with another ATG instance (business level) where all ATG components are situated.
    The main problem is a Nucleus container which is used for accessing all ATG components. And we don't know right solution how to point to a Nucleus container that is situated on a remote ATG instance. Right now we have two ideas how to establish communication between two ATG instances:
    - try to replace local Nucleus container by remote one using RMI;
    - do not replace Nucleus container by implementing some custom filter that can redirect all servlet requests to another ATG instance. In that case we will have two Nucleus containers.
    What do you think about all this? Do you have any other solutions how to solve the task? Maybe we lost something? Can we deploy a cluster of ATG instances that will communicate between each other?
    Thanks in advance.
    Andrey.
    Edited by: 945758 on Jul 11, 2012 7:00 AM

    Yes ATG system can have multiple nodes grouped in one or more clusters managed by load balencer
    If the services you are talking about are inherently ATG services like login, add to cart, checkout then its better to implement it with ATG.
    ATG provides and support both REST and SOAP based Webservice and allows you to expose any ATG component as service thus making it available outside ATG space.
    To be able to manage load better you can split your servers to page serving servers and services oriented servers and place them into multiple clusters.
    Though I haven't seen anyone using this kind of topology so not sure whether it's there is any challenge in setting up this topology.

  • Cannot capture the exception generated by EJB components.

    Hi, All:
    I got a strange problem when developing EJB application under SAP WAS server. I developed an EJB as below:
    public class UserAccountBean implements SessionBean{
         String getUserEmail(String accountID) throws SAPSystemException{
              if(error){
                   throw new SAPSystemException("Specified user not found.");
    Exception I defined as below.
    public class SAPSystemException extends Exception {
    @param message
         public SAPSystemException(String message) {
              super(message);
    In client side I code as below:
    public String getUserMail(String accountID){
         UserAccount bean = home.create();
         try{
              String email = bean.getUserEmail(accountID);
         }catch(SAPSystemException e){
              // do something here;
         }catch(Exception e){
              // do some other thing here;
    It is strange that the SAPSystemException I throw out in the bean cannot be caught by the block catch(SAPSystemException e), it is only captured as general exception and it is said as UndeclaredThrowableException.
    When I deployed EJB components and Web components together, the exception can be captured successfully. But when I deployed them separately, it has problem for exception capture. I think it must be the protocol problem. Before I only use RMI-IIOP but SAP WAS server using RMI-P4. Is anything I can do to solve this problem?
    I packed the remote and home interface for the EJB and common classes like value objects and exceptions in both components. Is there anything I forgot to set for the deployment?
    Thanks in advance.
    Message was edited by: Weimin Guo
    Message was edited by: Weimin Guo

    Thank you very much Gregor. In fact, I already defined this throws exception in the remote object interface.
    public interface UserAccount extends EJBObject {
         public String getUserEmail(String accountID) throws RemoteException, SAPSystemException;
    This is application-specific interface and this mechanism works well in my previous in other application server.
    I checked the SAP document and found if you using RMI-IIOP, you need to get the client package for your deployed EJBs and put in the path accessible by the WEB components. Based on this suggestion, I put the EJB jar file together with WEB application (Sure the EJB application still deployed in other host and JNDI point to that host. I remembered one book mentioned that if you don't want generate the client package from EJB containter, you can do it this way. For me, I just haven't found the way to get the client package with Administrator Tool it said.), It works!!!. I checked the remote object generated by home object, it is different with EJB jar file there or not. But in the document SAP said that only if you use RMI-IIOP you need do this way, for RMI-P4, you don't need that. Anyway, it seems that RMI-P4 use same way as RMI-IIOP(You only don't need narrow the home object after lookup).
    I'll try to find how to get EJB client package from WAS server. For this is my first time to use SAP WAS Server, things a little strange.
    Thank you very much for your great help.
    Cheers.

  • JNDI / EJB deployment and clustering

    I'm aware that replication isn't supported for stateful EJBs. But the
              "serialization of the handle isn't supported" statement has me concerned.
              So I'm looking for a little clarification on this scenario:
              Let's say I've got a stateful session bean, which is accessed from a
              servlet. For performance reasons, you want to find the colocated instance -
              the smart stub should do this, right? To have it colocated in all
              instances, then I need to deploy it into each server of the cluster. This
              essentially bind()/rebind()'s (whichever call the container does during a
              deploy operation) the EJB n times. Does each of those JNDI bind/rebind
              calls "overwrite" the previous one, or does the replicated JNDI tree somehow
              "keep" all the entries?
              What happens if I bind/rebind "non-cluster enabled" objects into the JNDI
              tree in each server to the same name (like a reference data table - doesn't
              really need to be an RMI object, one per server is fine)? Will they get
              "overwritten"? Should I need to take into account the server name when
              binding into the tree, and then also use that for subsequent lookups?
              Thanks for any input!
              --Jason
              

    Guys,
    Thanks for the information.
    The problem was that classpath, some other packages required for the Bean
    were not in the weblogic\classes directory.
    so that was it.
    Thanks
    /selvan
    Murali Krishna Devarakonda wrote in message
    <7qjkr1$7dl$[email protected]>...
    Are you using the HOT DEPLOY feature(startweblogic.bat does it)?
    Then you could go to the WebLogic Console, select the Bean, and Redploy.
    You could also do it from a command line utility "weblogic.deploy".
    If you didn't start the server with the hot deploy, you need to restartyour
    server after any changes.
    You should read the weblogic docs on the Hot Deploy feature. A different
    classloader is used for it. Also, the standard weblogic classpath cannot
    coexist with it.
    Hot Deploy uses: (assuming your weblogic installation is in D:/WebLogic
    D:\WebLogic\classes/boot
    It will throw an exception if you have D:\weblogic\classes or
    D:\WebLogic\lib\weblogicaux.jar in the system classpath. You need to use
    the weblogic.classpath instead.
    Regards,
    Murali Krishna Devarakonda
    Tamilselvan Ramasamy <[email protected]> wrote in message
    news:7qi0ln$kpc$[email protected]..
    Hello,
    I have created bunch of EJB Components and deployed for WLS4.0 using the
    following way. It works fine under WLS4.0
    To compile java code -> javac *.java
    Create SER file -> java weblogic.ejb.utils.DDCreator -d .
    DeploymentDescriptor.txt
    Create JAR file -> jar cmf manifest Bean.jar /directory
    EJBC and deployment -> java weblogic.ejbc -d /targetDirectory Bean.jar
    and also add an entry in the welogic.properties file
    weblogic.ejb.deploy= ...
    When I do the samething in the WLS4.5, it doesn't work, first of all,
    JNDI
    is not finding the home interface. It throws a naming Exception
    please give me an idea hw do I deploy my Beans in the WLS4.5 using the
    command line option. I don't have Visual Cafe to do that automatically.So
    I
    have to do that manually.
    Thanks
    /selvan
    Captura Software Inc
    [email protected]

  • Difference between impelementation rules and business logc.

    Hi all,
    Please tell me what is the exact difference between implementation rules and business logic?And more importantly when and where they should be used?
    Thanks in advance.
    Regards,
    Jayant Gupta

    Hi vasu,
    from the point of view of possible transformation there are not differences.
    The great difference is the following:
    In Update Rules routines are defined for a single field for every key filed: for example you define the single routine for 0AMOUNT for every single Characteristic that define the key (0COSTCENTER - 0COSTELEMENT - ...). For every single DataField you can define a different routine also in terms of Key fields.
    In transfer roules every routine is for every field without any kind of relation to the other fields.
    Check also this doc:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/dc43c445-0d01-0010-23a1-ca348ff5f975">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/dc43c445-0d01-0010-23a1-ca348ff5f975</a>
    Ciao.
    Riccardo.
    Message was edited by: Riccardo Venturini

  • Best Practice: Keeping business logic out of the servlet

    In servlet programming, is it considered best practice keep business logic in the helper classes and only have session-related logic in the servlet?

    Yes, it is best to keep your business logic separate from your servlet class, to prevent coupling between your servlet and business logic. Consider using EJB's or the DAO pattern for your business logic.

  • Transformation vs business logic

    can anyone please tell me the difference between a transformation and business logic in the context of a Data Warehouse? do these terms mean the same thing?
    thanks for the help.

    thanks Josh, i was thinkning that even in stored procedures, we perfrom some sort of transformations(joins, filtering etc). i've been doing researh and couldn't find an example of a business logic which isn't called "transformation"
    Well sure, and that's another sort of fuzziness.  A relational database exists exactly so you can do various kinds of algebraic manipulations as needed, it's not just to persist data without also including those manipulations.  And even the
    simplest select is a manipulation of a kind.  But "transformation"?  If the select returns the columns as stored, I think that's not transformed.  Even a join to multiply or divide the result set and return a combined row I think would be allowed
    under relational algebra and not considered a "transformation".
    But as soon as you combine fields in any way, I guess you've cross the border into transformation.
    When you look closely, there's very little about relational technology that's all as cut and dried as some might think!
    Josh

  • Difference between business components and EJB

    hello guys, do anyone knows what is the core difference of using ADF Business components and EJB Session Beans ??

    this blog might help http://blog.whitehorses.nl/2012/03/26/adf-11g-bc4j-or-ejb3/
    Timo

  • Business Components and OAS 4.0.8

    I have several projects running in JDeveloper - one of them being a BC4J project, the others a mix of servlets and classes that make use of the BC4J project to interact with the database.
    I have successfully managed to deploy the Business components application to OAS, but I get stuck after that.
    How do I make use of this deployed BC4J application through a JServlet application?

    Hi,
    A colleague of mine mentioned that one may encounter problems deploying to OAS 4.0.8.
    I understand that OAS 4.0.8.1 has major bug fixes and may make deployment substantially easier. Having not attempted either, I cannot verify his statement.
    Hope you have success!
    G.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Subhadip:
    I have created an application using Oracle Business Components and Oracle InfoSwing controls. Now I want to deploy the Business Components as EJB to OAS 4.0.8 and want to run the front end as an Applet which will connect to those EJB Session beans stored in OAS. Please let me know if its possible or not and any document detailing how to do it. To be more specific:
    1) In the properties dialog for the Application Module, in the remote tab, there are options for Oracle8i EJB, CORBA and VISIBROKER, but nothing for OAS. So what to choose there?
    2) If I run Deployment Wizard on the Business Components project with OAS option (selecting nothing in the Remote Tab), it fails (says nothing to parse in the source JAR file)
    3) In the property pallette of the InfoProducer Session object, what to give in the remote proerties for OAS EJB.
    4) It seems that no manual code change is required if they are deployed in Oracle8i or VisiBroker whether they are deployed in Local or EJB or CORBA(the deployment wizard takes care of it). Is it same for OAS EJB deployment also?
    Please help. It's Very Very urgent.<HR></BLOCKQUOTE>
    null

  • Why ADF Business Components and TopLink

    Hi All,
    Why are there two types of components in Businses Tier? (ADF Business Components and TopLink). Even through there are other types, I can visualize the use of other components but ADF Business Components & TopLink seems to serve the same requirement.
    Can some one provide me information on what is the difference between these two and when to use which one?

    ADF Business Components (aka BC4J) are different from Toplink from approach point of view. Basically if you are more comfortable with SQL and want fine grain control over what and how SQL are run against the database, BC4J is the way to go, because, it's you who write the queries(in ViewObjects)
    If you are from more of java backgroup and can visualize things in term of Object and relationships among objects, so on and so forth then Toplink would be the right choice.
    Pls see the post by Shay in his blog:
    http://blogs.oracle.com/shay/2006/03/10
    regards - rutwik

Maybe you are looking for