AIM (Application Implementation Method)

I am looking for the latest version of the AIM software.
Can't seem to find it on Metalink nor Technet though.
Can anybody point me to the correct url to download the AIM executable?
Thenks,

Hi,
From what I've found out is that irrespective of the methodology in question, you've to tweak it as per your need in order to have a successful implementation for Hyperion Planning. The degree of customisation may vary from one method to another.

Similar Messages

  • Help needed on understanding Application Implementation

    I would like to study and document actual implementation steps to implement Oracle Applications, but cannot find any material or courses to help me.
    For example:
    Conduct client interview to gather business rules
    Translate Business rules to Business flow diagrams leading to data flow diagrams
    Prepare gap documents
    Perform Business Process Re-engineering
    etc
    Any help will be appreciated

    There is an approach called AIM (Application Implementation Method) which you can refer. Details can be found from net or from Metalink.
    See if that helps.
    Regards
    Sumit

  • Application.ActivateMicrosoftApp Method Launches Unexpected Program

    Running 64-bit Excel 2013 on Windows 8.1 Pro
    Executing the Application.ActivateMicrosoftApp method with an invalid numeric argument raises run-time error 1004: Method 'Application.ActivateMicrosoftApp' of object '_Application' failed
    but...
    Executing the Application.ActivateMicrosoftApp method with an uninitialized variant variable launches Calculator (calc.exe)
    Sub Test()
        Dim a As Variant
        Application.ActivateMicrosoftApp a
    End Sub
    Can anyone reproduce this behavior?

    Three things need to check:
    1. If you are using a third party API, first check it
    from vendor.
    2. If you are using Java based imaging capabilities,
    see an good example of JFileChooserDemo at java
    tutorial department.
    3. It could be error coming from your imaging software
    (if your program is doing scanning)
    Please post more code that runs this for further
    investigation.
    The answer is no to all of them, but i am implementing java2d functions. There is quite a lot of code, which spans over 2 classes. Are there any code snippets you would like to see in particular?
    Thanks for your reply! :)
    Claire
    x

  • How do I call an Application Module method from a EntityImpl class?

    Guys and Gals,
    Using Studio Edition Version 11.1.1.3.0.
    I've got a price update form, that when submitted, takes the part numbers and prices in the form and updates the corresponding Parts' price in the Parts table. Anytime this Parts view object's ReplacementPrice attribute is changed, an application module method needs to be called which updates a whole slew of related view objects. I know you can modify view objects via associations (How do I call an Application Module method from a ViewObjectImpl class? but that's not what I'm trying to do. These AppModuleImpl methods are the hub for all price updates, as many different operations may affect related pricing (base price lists, price buckets, etc) and hence, call the updatePartPricing(key) method.
    For some reason, the below code does not call / run / activate the application module's method. The AppModuleDataControl exists and recordPartHistory(key) is registered and public. At runtime, the am.<method> code is simply ignored, and as a weird side-effect, I cannot navigate out of my current page flow.
      public void setReplacementPrice(Number value)
        setAttributeInternal(REPLACEMENTPRICE, value);
        AppModuleImpl am = (AppModuleImpl)this.getDBTransaction().findApplicationModule("AppModuleDataControl");
        Key key = new Key(new Object[]
            { getPartNumber() });
        am.recordPartHistory(key);  // AppModuleImpl method which records pricing history
        am.updatePartPricing(key); // AppModuleImpl method which updates a whole slew of related pricing tables
      }Any ideas?

    Thanks Timo.
    Turns out the code provided was correct, but the AppModuleImpl method being called was not. A dependent ViewObject wasn't returning the row I was expecting. I then tried to perform some operations on that row, which in turn ... just stopped everything, but didn't give me an error.
    It was the lack of the error that threw me off. I had never messed with calling an AppModuleImpl method from the EntityImpl so I assumed that's what was messing up.
    You are correct. It is available from the ViewRow, but I thought it better to put it in the EntityImpl. This method will be called every time the replacement cost is modified. If I didn't put it in the EntityImpl, I'd have to remember to call it every time a replacement cost changed.

  • Best practice for calling application module methods and plsql code

    In my application I am experiencing problems with connection pooling, I seem to be using a lot of connections in my application when only a few users are using the system. As part of our application we need to call database procedures for business logic.
    Our backing beans, call methods on the application module which in turn call a database procedure. For instance in the backing bean we have code like this to call the application module method.
    // Calling Module to generate new examination/test.
    CIGAppModuleImpl appMod = (CIGAppModuleImpl)Configuration.createRootApplicationModule("ky.gov.exam.model.CIGAppModule", "CIGAppModuleLocal");
    String testId = appMod.createTest( userId, examId, centerId).toString();
    AdfFacesContext.getCurrentInstance().getPageFlowScope().put("tid",testId);
    // Close the call
    System.out.println("Calling releaseRootApplicationModule remove");
    Configuration.releaseRootApplicationModule(appMod, true);
    System.out.println("Completed releaseRootApplicationModule remove");
    return returnResult;
    In the application module method we have the following code.
    System.out.println("CIGAppModuleImpl: Call the database and use the value from the iterator");
    CallableStatement cs = null;
    try{
    cs = getDBTransaction().createCallableStatement("begin ? := macilap.user_admin.new_test_init(?,?,?); end;", 0);
    cs.registerOutParameter(1, Types.NUMERIC);
    cs.setString(2, p_userId);
    cs.setString(3, p_examId);
    cs.setString(4, p_centerId);
    cs.executeUpdate();
    returnResult=cs.getInt(1);
    System.out.println("CIGAppModuleImpl.createTest: Return Result is " + returnResult);
    }catch (SQLException se){
    throw new JboException(se);
    finally {
    if (cs != null) {
    try {
    cs.close();
    catch (SQLException s) {
    throw new JboException(s);
    I have read in one of Steve Muench presentations (Oracle Fusion Applications Team' Best Practises) that calling the createRootApplicationModule method is a bad idea, and to call the method via the binding interface.
    I am assuming calling the createRootApplicationModule uses much more resources and database connections that calling the method through the binding interface such as
    BindingContainer bindings = getBindings();
    OperationBinding ob = bindings.getOperationBinding("customMethod");
    Object result = ob.execute()
    Is this the case? Also is using getDBTransaction().createCallableStatement the best way of calling database procedures. Would it be better to expose plsql packages as webservices and then call them from the applicationModule. Is this more efficient?
    Regards
    Orlando

    Thanks Shay, this is now working.
    I successfully got the binding to the application method in the pagedef.
    I used the following code in my backing bean.
    package view.backing;
    import oracle.binding.BindingContainer;
    import oracle.binding.OperationBinding;
    public class Testdatabase {
    private DCBindingContainer bindingContainer;
    public void setBindingContainer (DCBindingContainer bc) {this.bindingContainer = bc;}
    public DCBindingContainer getBindingContainer() {return bindingContainer;}
    public static String validateUser()
    // Calling Module to validate user and return user role details.
    System.out.println("Getting Binding Container from Home Backing Bean");
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    System.out.println("Obtain binding");
    OperationBinding operationBinding = bindings.getOperationBinding("calldatabase");
    System.out.println("Set username parameter");
    operationBinding.getParamsMap().put("p_userId",userId);
    System.out.println("Set password parameter");
    operationBinding.getParamsMap().put("p_testId",examId);
    Object result = operationBinding.execute();
    System.out.println("Obtain result");
    String userRole = result.toString();
    System.out.println("Result is "+userRole);
    }

  • Not able to get current user in PCD Filter factory implementation method

    hi all,
      In the  PCD Filter factory implementation method . i am using the following code
    public Object getObjectInstance(Object arg0, Name arg1, Context arg2, Hashtable env)
         throws Exception
              if (Constants.ASPECT_NAVIGATION.equals(env.get(Constants.REQUESTED_ASPECT)))
              IUser user = (IUser) env.get(IPcdContext.SECURITY_PRINCIPAL);
              String department="null";
              if (user != null)
                 department=user.getDepartment();
                   if ((department != null) && (!department.equals("")))
              filterExpression = "(" + FilterDepartmentService.Department_ATTRIBUTE_KEY + "=" + department + ")";                             
              return filterExpression;
    but i cannot able to get the current user. how to get the current user in the above method..
    Regards,
    Shanthakumar.

    Hi,
      First print the output for env.get(IPcdContext.SECURITY_PRINCIPAL);
    If it returns null, set it from the request object first (from the method where Hashtable is declared and request obj is available) and then use it in this getObjectInstance method.
    env.put(IPcdContext.SECURITY_PRINCIPAL, request.getUser());
    Regards,
    Harini S

  • Calling an implemented method from an external class.

    Hey guys...
    I'm writing a package to be put into a program I'm writing for a project (for Uni), but I also want to use the package in other programs.
    Basically, the package will return a JScrollPane that can be put into any JFrame or JPanel or whatever.
    It draws boxes on the JScrollPane in different colours and locations depending on what information is passed to it (kind of like iCal or Microsoft Outlook Calendar), and is to be used for a Resource Allocation Program that requires drag and drop of boxes for moving bookings around etc.
    http://www.pixel2.com.au/ethos/class_diagram.png
    This is a copy of the class diagram for the relevant classes. ViewFrame is the class that instantiates the JScrollPane (AllocationTable). It implements the AllocationInterface to implement methods such as moveAllocation() newAllocation() etc.
    BookingPanel is the content pane for the JScrollPane. AllocatedBox is the individual bookings, or boxes that are painted onto the BookingPanel.
    BookingPanel implements ActionListener, MouseListener and MouseMotionListener, which enables drag and drop functionality.
    What I want to do, is when mouseReleased() is called by dropping a box, call the method moveAllocation() in ViewFrame to make the changes to the database to move the booking around.
    I don't know how to access that from BookingPanel as the name of ViewFrame will change obviously for different programs.
    If you could help me out, that would be great!
    If you need anything else explained, please let me know.
    Thanks,
    Ryan.

    LeRyan wrote:
    Hey guys...
    I'm writing a package to be put into a program I'm writing for a project (for Uni), but I also want to use the package in other programs.
    Basically, the package will return a JScrollPane that can be put into any JFrame or JPanel or whatever.I think you have some terminology issues that might stand in your way of getting help or understanding the issues. A Package is a grouping of classes, so a package doesn't return anything...
    It draws boxes on the JScrollPane in different colours and locations depending on what information is passed to it (kind of like iCal or Microsoft Outlook Calendar), and is to be used for a Resource Allocation Program that requires drag and drop of boxes for moving bookings around etc.So from your description of the function of this thing, I think you mean a class - some sort of JComponent?
    >
    http://www.pixel2.com.au/ethos/class_diagram.png
    This is a copy of the class diagram for the relevant classes. ViewFrame is the class that instantiates the JScrollPane (AllocationTable). It implements the AllocationInterface to implement methods such as moveAllocation() newAllocation() etc.
    BookingPanel is the content pane for the JScrollPane. AllocatedBox is the individual bookings, or boxes that are painted onto the BookingPanel.
    BookingPanel implements ActionListener, MouseListener and MouseMotionListener, which enables drag and drop functionality.
    What I want to do, is when mouseReleased() is called by dropping a box, call the method moveAllocation() in ViewFrame to make the changes to the database to move the booking around.
    I don't know how to access that from BookingPanel as the name of ViewFrame will change obviously for different programs.
    If I follow, and I am not sure that I do - you want a reference to the ViewFrame in the BookingPanel. So either on construction of the BookingPanel via a parameter in the constructor, or as a separate step via a setter, place a reference to the ViewFrame in BookingPanel. Then when you call mouseReleased you can call moveAllocation through that reference.
    If you could help me out, that would be great!
    If you need anything else explained, please let me know.
    Thanks,
    Ryan.

  • AIM application; Buddylist NOT loading?

    hi all
    i tried googling this problem and saw that there are more people out there with the same issue, yet couldn't find an answer.
    i just installed the AIM application and it signs on. i see my screenname online when i log on on my computer (with a different screenname). but when i IM it i dont get the IMs on my iPhone.
    i also have an empty buddylist while theres definitely buddies under that screenname

    When you log into AIM on the computer using this username do you see all the buddies?

  • Oracle Applications Implementation Wizard

    I've installed using rapid install Oracle applications 11.5.10.2. I've read that implementing more than one module it can be much easier to use Oracle Applications Implementation Wizard. I've found documentation about this wizard but I cannot start it. Does it need to be seperatly installed after installing applications?. I do not have standard user wizard that should be created after installation of implementation wizard, also I do have only 2 roles containg word implementation
    -Implementation System Administration
    -Implementation Financials
    do I need to install/configure extra product ?

    One correction, there was installed user wizard, only the password was different then wizard. That user have assigned to implementation roles
    -Implementation System Administration
    -Implementation Financials
    documentation of application Wizard describes following steops to launch the wizard:
    1. Sign onto Oracle Applications using a user ID that has access to Implementation Wizard responsibilities. (You can use the predefine user Wizard, with password "Wizard.")
    2. Choose any of the "Implementation" responsibilities.
    3. Open the Application Implementation Wizard Startup window.
    4. Using the Process list of values, choose the Wizard Implementation Process.
    5. Leave the Context field blank.
    When I open application implementation wizard get a window with tab
    Functions / Documents / Processes
    Goint to processes I cannot choose Wizard Implementation Process, from functions I can open Implementation wizard however in the next window "Select process group" there are no process groups, so I cannot go further.
    How can I launch oracle implementation wizzard?

  • Distributed Oracle Application implementation

    Dear all
    I am EBS technical consultant and I am working on SOA and have distributed Oracle Application implementation, Please consider the scenario and suggest me and idea.
    Assume
    1. We have 2 Oracle Application R12 (EBS-1, EBS-2) installed at 2 different remote locations, network disconnection may be broken in this network.
    2. User always work on (EBS-1 installed at Head office) and only work on EBS-2 (installed local) in case network connection is lost to connect with EBS-1.
    EBS-2 is a replica of EBS-1 when installed first time.
    Scenario
    Last inventory Item ID is 5444 at EBS-1
    Last inventory Item ID is 5444 at EBS-2
    user created new item at EBS-1
    Last inventory Item ID is 5445 at EBS-1
    Last inventory Item ID is 5444 at EBS-2 (No new item created)
    Now User can not access EBS-1 and now start working on local EBS-2 and take following steps.
    create new item at and now inventory item id is 5445. and create misc receipt to this newly created item.
    Now EBS-2 installed at head office is available and now transaction made at EBS-2 need to be transferred at head office, and what about inventory item id, 5445 is already created at EBS-1 how and i have to import item and misc receipt, inventory item will be different how can i load misc receipt transaction.
    Please help.
    1. Can I solve this issue by using BPEL process. ? or
    2. this type of integration is not possible in Oracle E Business suite.
    3. Oracle Application will not work in Distributed environment.
    please suggest me.
    Thanks
    Aamir

    Dear expert !
    I have a similar question but the scenario is somewhat different.
    The are two separate organizations and both have implemented EBS (Vision 1 and 2). they both are under third organization (vision A). for numerous business processes, both vision 1 & 2 get their approvals from vision A. Moreover, inventory and master data is required to be sync in all three.
    vision A
    ^ ^
    v v
    vision 1 vision 2
    In some instances, a sub organization from vision 1 can be placed under vision 2, thus requiring movement of its relevant data from vision 1 to 2.
    the scenario implies that all three organizations are running an EBS instance which is a legacy for the other.
    can we achieve this integration?
    Please do let me know if I am unable to explain the use case.
    best regards

  • AIM Application Icon does not appear when using Today Theme

    When using the 'BB Dimension Today' theme that came with my Blackberry Curve, the AIM application icon does not appear.  If I change back to any of the other themes, the icon reappears.  Any ideas as to why this is the case, or how I can use both the 'Today' theme as well as AIM?
    Thanks! 

    Welcome to the Frums
    Are they hidden behind another icon ? or just hidden (click menu and show all).  Sometimes that happens.
    Nurse-Berry
    Follow NurseBerry08 on Twitter

  • How to invoke Application Module method from entity object methods

    Hi,
    We have an existing Application Module which provides some validation logic. We are using OperatingBinding or getting the Application Module instance from the bindings and then invoking the app module methods in the view controller project.
    But in our current scenario, We need to invoke the application module method from the setAttribute method in the entity object when ever an entity attribute value is changed . I believe we can call createRootApplicationModule method to create application module instance. But this may lead to performance overhead.
    Can you please suggest, if there is any alternative to invoke the application module method inside the business components.
    What is the best way to create

    We have a pricing service, which was developed as a separate application. We need to invoke the pricing service with the change in certain attributes of the entity object and update some of the attributes of the current entity object. At present we are handling these calls to the pricing service in the ui layer in the valueChangeListener.
    But we would like to move this service call into setAttribute method as we are unable to prevent the call to the service if the model validations fail. I am looking for the best possible approach for invoking the service calls from the entity objects.
    Thanks and Regards,
    S R Prasad

  • Feedback request for a Single Instance Application Implementation

    Hello,
    I have been working on a class which I tried to make the most generic I could so that I could re-use it for various projects. It offers 2 main functionalities:
    -Preventing multiple instances of an application
    -Allowing a user to stop the application even if it doesn't read any user input
    Of course if someone wants to have multiple instances of the same application, it is still possible. The only requirement is that each instance be configured to run on a different port.
    I would like your feedback on how I've implemented this to make sure I haven't missed the chance to make my Class flexible and re-usable. I would also make sure that there aren't any situations where the different threads used for realizing this functionality will run into any conflicts.
    My code includes the following files:
    Serviceable.java : An interface which must be implemented by every application using these classes
    DuplicateServiceException.java : An exception thrown when an instance of the application is already running
    Service.java : The class responsible for offering the functionalities I already mentionned
    Main.java : An example of a class implementing Serviceable and offering two ways of closing the Application. 1- By closing the JFrame which is displayed. 2- By sending the stop command.
    In order to execute this example, you have to specify the following command line arguments:
    -DService.Command={start/stop} //Either start or stop command
    -DService.Port=<0-65535> //Port to be used for receiving the stop command and preventing multiple instances
    Serviceable.java
    * Serviceable cares about two parts of the life of a Service.  Its startup
    * and its shutdown sequences.  The startup occurs only after making sure
    * no other instance of the Service is running.  Shutdown has to be
    * synchronized between multiple threads since it is possible to shutdown
    * the service through a shutdown command sent by another process, or through
    * the normal flow of execution of the service.
    * @author Gabriel Aubut-Lussier
    public interface Serviceable {
          * Initiates the startup of the Service since we have made sure
          * that there isn't any other instance of the Service running.
         public void startup();
          * Initiates the shutdown of the Service since we've received
          * a shutdown request from one of the two supported means of
          * shutting down.
         public void shutdown();
    DuplicateServiceException.java
    public class DuplicateServiceException extends Exception {
          * serialVersionUID?  Bah. Eclipse generates one automatically so why not...
         private static final long serialVersionUID = 3929576386522489749L;
         public DuplicateServiceException() {
              super();
         public DuplicateServiceException(String msg) {
              super(msg);
    Service.java
    * The same way a graphical application is running as long as there
    * is something to display, a background service will run as long as
    * there is an active Thread.
    * A service can be terminated in different ways.  First of all, it
    * can be terminated through its normal flow of execution.  On the
    * other hand, it is possible to provoke the termination of a Service
    * externally.
    * To terminate the service through the normal flow, just call the
    * Service.shutdown() method.  Another way to terminate the service
    * is to start a new instance of the program with the Stop command.
    * This Service implementation will behave according to two system
    * properties.  The property Service.Command can be set
    * to "start" or "stop".  When set to "start", the Service will make
    * sure there isn't another instance of the service already running.
    * If it is the case, a DuplicateServiceException will be thrown.  In
    * the other case, the Service will start.  When the "stop" command
    * is invoked, the Service will attempt to stop a running instance of
    * the Service.  The other property is Service.Port and
    * it defines the Port number which will be used to support the
    * functionalities offered by the Service class.
    * It is recommended to set these properties as command line arguments
    * when launching the application.  Moreover, batch files or shell
    * scripts can be created for invoking the start and stop commands.
    * @author Gabriel Aubut-Lussier
    public class Service implements Runnable {
         public final static String START_COMMAND = "start";
         public final static String STOP_COMMAND = "stop";
         public final static String SERVICE_COMMAND = "Service.Command";
         public final static String SERVICE_PORT = "Service.Port";
         private String serviceCommand;
         private int servicePort;
         private Serviceable service;
         private ServerSocket serviceListener;
         private Thread serviceThread;
          * Creates a new service registering the hooks required to perform
          * clean termination sequences.
          * @param s
          * @throws DuplicateServiceException
         public Service(Serviceable s) throws DuplicateServiceException {
              service = s;
              serviceCommand = System.getProperty(SERVICE_COMMAND);
              String servicePortString = System.getProperty(SERVICE_PORT);
              if(servicePortString == null)
                   servicePort = -1;
              else
                   servicePort = Integer.parseInt(servicePortString);
          * Try running this new Service instance if there isn't one
          * already running.
          * @throws DuplicateServiceException if another service instance is already running.
         public void start() throws DuplicateServiceException {
              if(serviceCommand == null || servicePort < 0) {
                   throw new IllegalArgumentException("The command and port number must be specified.");
              if(serviceCommand.equals(START_COMMAND)) {
                   try {
                        serviceListener = new ServerSocket(servicePort);
                        serviceThread = new Thread(this);
                        serviceThread.start();
                        service.startup();
                   } catch(BindException e) {
                        throw new DuplicateServiceException("An instance of the service is already running.");
                   }catch(IOException e) {
                        e.printStackTrace();
              } else if(serviceCommand.equals(STOP_COMMAND)) {
                   shutdown();
          * Provoke a shutdown command.
         public void shutdown() {
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                   out.write("shutdown");
                   out.flush();
                   out.close();
                   sock.close();
              } catch (UnknownHostException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   //This exception may occur when trying to stop a service which wasn't running.
                   //There is no need to do anything in this case.
          * While the Service is running, it listens on a port to make sure no
          * other instance of this Service is started and to listen to shutdown
          * commands.
         public void run() {
              boolean keepGoing = true;
              while(keepGoing) {
                   try {
                        Socket sock = serviceListener.accept();
                        InputStreamReader in = new InputStreamReader(sock.getInputStream());
                        char cBuf[] = new char[256];
                        int amount = in.read(cBuf);
                        in.close();
                        sock.close();
                        keepGoing = !((new String(cBuf, 0, amount)).equals("shutdown"));
                   } catch (IOException e) {
                        e.printStackTrace();
              try {
                   service.shutdown();
                   serviceListener.close();
              } catch(IOException e) {
                   e.printStackTrace();
         public String getServiceCommand() {
              return serviceCommand;
         public void setServiceCommand(String serviceCommand) {
              this.serviceCommand = serviceCommand;
         public int getServicePort() {
              return servicePort;
         public void setServicePort(int servicePort) {
              this.servicePort = servicePort;
    Main.java
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;
    public class Main implements Serviceable {
         private JFrame window;
         private Service service;
         public static void main(String[] args) {
              new Main();
         public Main() {
              try {
                   service = new Service(this);
                   service.start();
              } catch(DuplicateServiceException e) {
                   e.printStackTrace();
         public void startup() {
              window = new JFrame("SERVICE TEST! :D");
              window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              window.addWindowListener(new WindowAdapter() {
                   public void windowClosed(WindowEvent e) {
                        service.shutdown();
              window.setVisible(true);
         public void shutdown() {
              System.out.println("Application shutdown");
              window.dispose();
    }Thanks in advance for your feedback.
    -Gabriel Aubut-Lussier

    I have fixed the handshake.
    And even though it isn't implemented yet, I think I have my solution for the limitation of 1 instance per user. I plan on using a hidden file in the user's home directory in which I will write the port number where the running application is listening for events. I have not yet chosen how the port number will be chosen before being written to the file but I am thinking about using a random number between 1024 and 65535. Using this approach, it is possible to maintain all the features I've implemented in the Single Overall Instance solution I already have.
    Here is the code with the handshake fixed:
    Serviceable.java
    * Serviceable cares about two parts of the life of a Service.  Its startup
    * and its shutdown sequences.  The startup occurs only after making sure
    * no other instance of the Service is running.  Shutdown has to be
    * synchronized between multiple threads since it is possible to shutdown
    * the service through a shutdown command sent by another process, or through
    * the normal flow of execution of the service.  Moreover, when another instance
    * is prevented from being launched, the running instance is notified so that it
    * can react to such an event.
    * @author Gabriel Aubut-Lussier
    public interface Serviceable {
          * Initiates the startup of the Service since we have made sure
          * that there isn't any other instance of the Service running.
         public void startup();
          * Notifies the Service that the application has been invoked again in
          * case the running instance wants to react to such an event.  Most GUI
          * applications will just bring themselves to the front while background
          * services will maybe just want to re-scan their configuration files or
          * just ignore the event.
         public void invoke();
          * Initiates the shutdown of the Service since we've received
          * a shutdown request from one of the two supported means of
          * shutting down.
         public void shutdown();
    DuplicateInstanceException.java
    public class DuplicateServiceException extends Exception {
          * serialVersionUID?  Bah. Eclipse generates one automatically so why not...
         private static final long serialVersionUID = 3929576386522489749L;
         public DuplicateServiceException() {
              super();
         public DuplicateServiceException(String msg) {
              super(msg);
    Service.java
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.BindException;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    * The same way a graphical application is running as long as there
    * is something to display, a background service will run as long as
    * there is an active Thread.
    * A service can be terminated in different ways.  First of all, it
    * can be terminated through its normal flow of execution.  On the
    * other hand, it is possible to provoke the termination of a Service
    * externally.
    * To terminate the service through the normal flow, just call the
    * Service.shutdown() method.  Another way to terminate the service
    * is to start a new instance of the program with the Stop command.
    * This Service implementation will behave according to two system
    * properties.  The property Service.Command can be set to "start"
    * or "stop".  When set to "start", the Service will make sure there
    * isn't another instance of the service already running.  If it is
    * the case, a DuplicateServiceException will be thrown.  In the
    * other case, the Service will start.  When the "stop" command is
    * invoked, the Service will attempt to stop a running instance of
    * the Service.  The other property is Service.Port and it defines
    * the Port number which will be used to support the functionalities
    * offered by the Service class.
    * It is recommended to set these properties as command line arguments
    * when launching the application.  Moreover, batch files or shell
    * scripts can be created for invoking the start and stop commands.
    * @author Gabriel Aubut-Lussier
    public class Service implements Runnable {
         public final static String START_COMMAND = "start";
         public final static String STOP_COMMAND = "stop";
         public final static String SERVICE_COMMAND = "Service.Command";
         public final static String SERVICE_PORT = "Service.Port";
         private final static String GREETING = "Greetings";
         private final static String QUERY = "?";
         private final static String ACCEPT = "yes";
         private final static String DECLINE = "no";
         private final static String SHUTDOWN = "shutdown ";
         private final static int SO_TIMEOUT = 100;
          * This is the application-specific String
         private String serviceClass;
          * This is the command which we will execute when start() is invoked
          * The value is either "start" or "stop"
          * This value can be configured using the System property: Service.Command
         private String serviceCommand;
          * This is the port which is used to watch for duplicate instances
          * This value can be configured using the System property: Service.Port
         private int servicePort;
         private Serviceable service;
         private ServerSocket serviceListener;
         private Thread serviceThread;
          * Creates a new service registering the hooks required to perform
          * clean termination sequences.
          * @param s A Serviceable class
          * @throws DuplicateServiceException If there is a duplicate instance running
         public Service(Serviceable s) throws DuplicateServiceException {
              service = s;
              serviceClass = s.getClass().toString();
              serviceCommand = System.getProperty(SERVICE_COMMAND);
              String servicePortString = System.getProperty(SERVICE_PORT);
              if(servicePortString == null)
                   servicePort = -1;
              else
                   servicePort = Integer.parseInt(servicePortString);
          * Try running this new Service instance if there isn't one
          * already running.
          * @throws DuplicateServiceException if another service instance is already running.
          * @throws BindException if another application is using the configured port.
         public void start() throws DuplicateServiceException, BindException {
              if(serviceCommand == null || servicePort < 0 || servicePort > 65535) {
                   throw new IllegalArgumentException("The command and port number must be specified.");
              if(serviceCommand.equals(START_COMMAND)) {
                   try {
                        serviceListener = new ServerSocket(servicePort);
                        serviceThread = new Thread(this);
                        serviceThread.start();
                        service.startup();
                   } catch(BindException e) {
                        queryOtherInstance();
                        throw e;
                   } catch(IOException e) {
                        e.printStackTrace();
              } else if(serviceCommand.equals(STOP_COMMAND)) {
                   shutdown();
          * Send the shutdown command to the running instance of the application.
         public boolean shutdown() {
              boolean shutdownSuccessful = false;
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   sock.setSoTimeout(SO_TIMEOUT);
                   //If the greeting doesn't match, it's not a duplicate instance
                   //and we can't shut it down
                   InputStreamReader in = new InputStreamReader(sock.getInputStream());
                   OutputStreamWriter out;
                   if(receivedGreeting(in)) {
                        //Sending the shutdown command
                        out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(SHUTDOWN + serviceClass);
                        out.flush();
                        //Read the confirmation
                        char cBuf[] = new char[1024];
                        int amount = in.read(cBuf);
                        String confirmation = new String(cBuf, 0, amount);
                        if(confirmation.equals(ACCEPT)) {
                             shutdownSuccessful = true;
                        out.close();
                   //Closing the connection
                   in.close();
                   sock.close();
              } catch (UnknownHostException e) {
                   //This exception shouldn't happen unless the loopback address doesn't exist?
              } catch (IOException e) {
                   //This exception may occur when trying to stop a service which wasn't running.
                   //There is no need to do anything in this case.
              return shutdownSuccessful;
          * Reads the greeting from the running instance we are interacting with.
          * @param in An InputStreamReader built on the Socket's InputStream
          * @return True if we received the expected greeting, false otherwise
          * @throws IOException if a problem occurs while receiving the greeting
         private boolean receivedGreeting(InputStreamReader in) throws IOException {
              //Reading the expected greeting from the server
              char cBuf[] = new char[1024];
              int amount = in.read(cBuf);
              String greeting = new String(cBuf, 0, amount);
              return greeting.equals(GREETING);
          * While the Service is running, it listens on a port to make sure no
          * other instance of this Service is started and to listen to shutdown
          * commands.
         public void run() {
              boolean keepGoing = true;
              while(keepGoing) {
                   Socket sock;
                   InputStreamReader in;
                   try {
                        sock = serviceListener.accept();
                        sock.setSoTimeout(SO_TIMEOUT);
                        //Sending a greeting
                        OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(GREETING);
                        out.flush();
                        //Reading the incoming message
                        in = new InputStreamReader(sock.getInputStream());
                        char cBuf[] = new char[1024];
                        int amount = in.read(cBuf);
                        String message = new String(cBuf, 0, amount);
                        //Writing an answer
                        boolean invoked = message.equals(serviceClass + QUERY);
                        if(invoked) {
                             out.write(ACCEPT);
                        } else {
                             out.write(DECLINE);
                             keepGoing = !message.equals(SHUTDOWN + serviceClass);
                        out.flush();
                        //Closing the connection
                        out.close();
                        in.close();
                        sock.close();
                        //Notify the running application is there has been an invocation
                        if(invoked) {
                             service.invoke();
                   } catch (IOException e) {
                        //Seems like an IO operation failed.  Let's just forget about
                        //this connection attempt and wait for another
              //Shutdown the Service
              service.shutdown();
              try {
                   serviceListener.close();
              } catch(IOException e) {
                   //Couldn't close the serverSocket upon shutdown?
                   //weird... but anyhow...
          * Connects to the configured port to check out wether it is a duplicate
          * instance of the application or if it is another application using the
          * same port number.  If it is another application, nothing will happen.
          * @throws DuplicateServiceException if it is a duplicate instance
         private void queryOtherInstance() throws DuplicateServiceException {
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   sock.setSoTimeout(SO_TIMEOUT);
                   //Read greeting
                   InputStreamReader in = new InputStreamReader(sock.getInputStream());
                   String answer = null;
                   if(receivedGreeting(in)) {
                        //Writing the application-specific query
                        OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(service.getClass().toString() + "?");
                        out.flush();
                        //Reading the answer
                        char[] cBuf = new char[3];
                        int amount = in.read(cBuf);
                        answer = new String(cBuf, 0, amount);
                        out.close();
                   //Closing the connection
                   in.close();
                   sock.close();
                   //If the answer is "yes" then it is a duplicate
                   if(answer != null && answer.equals("yes")) {
                        throw new DuplicateServiceException("An instance of the service is already running.");
              } catch (UnknownHostException e) {
                   //This exception shouldn't happen unless the loopback address doesn't exist?
              } catch (IOException e) {
                   //If we fail to query the application appropriately we consider
                   //it isn't a duplicate entry so we do nothing.
         public String getServiceCommand() {
              return serviceCommand;
         public void setServiceCommand(String serviceCommand) {
              this.serviceCommand = serviceCommand;
         public int getServicePort() {
              return servicePort;
         public void setServicePort(int servicePort) {
              this.servicePort = servicePort;
    Main.java
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.net.BindException;
    import javax.swing.JFrame;
    public class Main implements Serviceable {
         private JFrame window;
         private Service service;
         public static void main(String[] args) {
              new Main();
         public Main() {
              try {
                   service = new Service(this);
                   service.start();
              } catch(DuplicateServiceException e) {
                   e.printStackTrace();
              } catch(BindException e) {
                   e.printStackTrace();
         public void startup() {
              window = new JFrame("SERVICE TEST! :D");
              window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              window.addWindowListener(new WindowAdapter() {
                   public void windowClosed(WindowEvent e) {
                        service.shutdown();
              window.setVisible(true);
         public void shutdown() {
              System.out.println("Application shutdown");
              window.dispose();
         public void invoke() {
              System.out.println("Another instance tried to startup");
              window.toFront();
    }

  • Exception while exposing Application Module Methods as Web Service

    Hello Everyone,
    I am working on Jdeveloper 11.1.1.3.0 version and tried to expose one method of application module as web service. To do this, i used "Service Interface" tab of Application module within Jdeveloper and Jdeveloper had generated all interfaces, stubs, code for the Session bean required for web service. I am now trying to "Test Web Service" from the implementation class generated then i am getting this error in Weblogic deployment. Any help/pointers would be highly appreciated.
    I used another installation of Jdeveloper same version at my collegues desktop but getting the same error. Not sure, if this version of Jdeveloper is having issue in exposing application module as web service. I think that database related exception can be ignored as no database call is being made by the application.
    [Running application SalaryControlService on Server Instance IntegratedWebLogicServer...]
    [10:41:26 AM] ---- Deployment started. ----
    [10:41:26 AM] Target platform is (Weblogic 10.3).
    [10:41:27 AM] Retrieving existing application information
    [10:41:27 AM] Running dependency analysis...
    [10:41:27 AM] Deploying 2 profiles...
    [10:41:27 AM] Wrote EJB Module to C:\Documents and Settings\sacggupt\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SalaryControlService\ModelEJB.jar
    [10:41:28 AM] Wrote Enterprise Application Module to C:\Documents and Settings\sacggupt\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SalaryControlService
    [10:41:29 AM] java.lang.NullPointerException
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.getClassNamesFromEjb(AssemblerProcessor.java:180)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.processEjb(AssemblerProcessor.java:149)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.processEjb(JaxwsEjbAssembler.java:182)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.ejbAssemble(JaxwsEjbAssembler.java:152)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.jaxwsEjbAssemble(Processor.java:630)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:327)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:230)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.Main.mainNoSystemExit(Main.java:84)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.Main.main(Main.java:49)
    [10:41:29 AM] WARNING: Error while processing ejb-jar.xml for ejb module at "C:\Documents and Settings\sacggupt\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SalaryControlService\ModelEJB.jar".
    [10:41:29 AM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [10:41:29 AM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [10:41:29 AM] INFO: GenericWSWarAnnotationListener.parseAnnotatedClass Adding Servlet Mapping with URL pattern /HrModuleService for annotated WebService class lt.andrejusb.model.server.serviceinterface.HrModuleServiceImpl
    [10:41:30 AM] WSA process exited with code 0
    [10:41:30 AM] Deploying Application...
    <Jan 3, 2011 10:41:31 AM IST> <Warning> <J2EE> <BEA-160195> <The application version lifecycle event listener oracle.security.jps.wls.listeners.JpsAppVersionLifecycleListener is ignored because the application SalaryControlService is not versioned.>
    <ServerMessages><warningMBeanRegisterError> Failed to register the web service Config MBeans for application: SalaryControlService endpoint: SalaryControlService the error is: oracle.as.jmx.framework.util.MissingConfigurationFileException: The configuration at URI "WEB-INF\oracle-webservices.xml" cannot be loaded.
    [10:41:36 AM] Application Deployed Successfully.
    [10:41:36 AM] The following URL context root(s) were defined and can be used as a starting point to test your application:
    [10:41:36 AM] http://10.176.162.16:7101/SalaryControlService
    [10:41:36 AM] Elapsed time for deployment: 9 seconds
    [10:41:36 AM] ---- Deployment finished. ----
    Run startup time: 9391 ms.
    [Application SalaryControlService deployed to Server Instance IntegratedWebLogicServer]
    Target URL -- http://localhost:7101/SalaryControlService/HrModuleService
    Edited by: LearningToFly on Jan 2, 2011 9:13 PM

    Hello,
    Is this resolved yet? The reason I am asking is that I'm getting the same error as yours. I am trying to run the StoreFront tutorial in JDeveloper 11.1.1.3 and here's what I got:
    [04:21:31 PM] ---- Deployment started. ----
    [04:21:31 PM] Target platform is (Weblogic 10.3).
    [04:21:32 PM] Retrieving existing application information
    [04:21:32 PM] Running dependency analysis...
    [04:21:32 PM] Deploying 4 profiles...
    [04:21:32 PM] Wrote MAR file to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\metadata1.mar
    [04:21:33 PM] Wrote Web Application Module to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\StoreFrontUIWebApp.war
    [04:21:38 PM] Wrote EJB Module to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\StoreFrontServiceEJB.jar
    [04:21:40 PM] Wrote Enterprise Application Module to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule
    [04:21:41 PM] java.lang.NullPointerException
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.getClassNamesFromEjb(AssemblerProcessor.java:180)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.processEjb(AssemblerProcessor.java:149)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.processEjb(JaxwsEjbAssembler.java:182)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.ejbAssemble(JaxwsEjbAssembler.java:152)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.jaxwsEjbAssemble(Processor.java:630)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:327)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:230)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.Main.mainNoSystemExit(Main.java:84)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.Main.main(Main.java:49)
    [04:21:41 PM] WARNING: Error while processing ejb-jar.xml for ejb module at "C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\StoreFrontServiceEJB.jar".
    [04:21:41 PM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: Unable to load annotation javax.interceptor.Interceptors for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: Unable to load annotation javax.interceptor.Interceptors for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: GenericWSWarAnnotationListener.parseAnnotatedClass Adding Servlet Mapping with URL pattern /StoreFron
    Can someone help with this? Thank you in advance!
    Edited by: 834077 on Mar 5, 2011 6:28 AM

  • Execute application module method automatically from uix page

    Hi,
    We are developping an application using Jheadstart 10.1.2.2 (build 32) with UIX pages as a view.
    We have build a custom method on our application module class that creates and saves in a directory a chart in function of a parameter we pass to this method.
    We would like to execute this method every time we acces a form page since this pages has to show the chart that our method creates. We would like to know if it is possible to execute this method automatically every time we acces this form page without having to press a button each time.
    Thanks in advanced.
    Xavier

    Xavier,
    I am not sure UIX works as JSPX and JHS 10.1.2 as 10.1.3, but that is what I would do if I wanted to execute a method on page load:
    1. Create a new managed bean(MyBean) in your faces-config which implements oracle.adf.controller.v2.PagePhaseListener interface
    2. Go to the pagedef file of your page, right click it in structure pane and set the controller class to 'MyBean'
    3. in MyBean and in beforePhase() method access App Module and call your function [see 4]. I quote this from ADF Dev.Guide 10.1.3 for how you can get App Module and call your function on it:
    // 1. Access the FacesContext
    FacesContext fc = FacesContext.getCurrentInstance();
    // 2. Create value binding for the #{data} EL expression
    ValueBinding vb = fc.getApplication().createValueBinding("#{data}");
    // 3. Evaluate the value binding, casting the result to BindingContext
    BindingContext bc = (BindingContext)vb.getValue(fc);
    // 4. Find the data control by name from the binding context
    DCDataControl dc = bc.findDataControl("SRServiceDataControl");
    // 5. Access the application module data provider
    ApplicationModule am = (ApplicationModule)dc.getDataProvider();
    // 6. Cast the ApplicationModule to its client interface
    SRService service = (SRService)am;
    // 7. Call a method on the client interface
    service.doSomethingInteresting();
    4. Check the phase and call your function in beforePhase method of your MyBean (implementing PagePhaseListener)
    public void beforePhase(PagePhaseEvent event) {
    FacesPageLifecycleContext ctx =(FacesPageLifecycleContext)event.getLifecycleContext();
    if (event.getPhaseId() == MY_DESIRED_PHASE) service.doSomethingInteresting();
    Probably, there is a shortcut to all these, or an alternative approach, which I myself will be happy to know about.

Maybe you are looking for