Issues faced while setting up SSL for ADS (Java + ABAP)

Hi,
Connection test to test SSL connection to ADS using program FP_PDF_TEST_00 fails with the following exception:
ERROR CODE    :    100.101
ERROR MESSAGE : SOAP Runtime Exception: CSoapExceptionTransport : HTTP receive failed with exception communication_failure
SOAP Framework error: SOAP Runtime Exception: CSoapExceptionTransport : HTTP receive failed with exception communication_failure(100.101).
I have exchanged certifcate between Java (ABAP stack client certificate uploaded in trusted CA, also assigned to SSL port socket and is asigned to ADSUSER) and ABAP stacks for authentication.
Using web service navigator to test the ADS web service fails too:
https://cx8.vshodc.lntinfotech.com:50001/AdobeDocumentServicesSec/Config?style=rpc
It displays the page to enter userid password. I have entered correct credentails still the same page is displayed on selecting SUBMIT.
Any help on this would be highly appreciated!
Thanks,
Chitrali

Check the notes and suggestions on this threads,
ADS: ICM_HTTP_CONNECTION_FAILED
Re: Adobe document service error: SOAP Runtime Exception
That might help
Regards
Juan

Similar Messages

  • Error while setting up enviroment for the application

    Hi,
    Im getting a popup box displaying the error message
    C:\WINDOWS\system32\ntvdm.exe
    Error while setting up enviroment for the application. Choose 'Close' to terminate the application.
    When I try to excute an external exe, why am I getting this error? and is there a way of getting this exe to execute properly without the error?
    Here my code for excuting the external exe
    String[] cmd = {"C:/gen.exe", "C:/a.zip"};
    Process p = Runtime.getRuntime().exec(cmd);
    p.waitFor(); "gen.exe" is the program i wish to execute and "a.zip" is the parameter i wish to excute it with.

    class ExecRuntime {
    public static void main(String args[]) throws Exception {
    String[] cmd = {"C:\\gen.exe", "C:\\a.zip"};
    Process p = Runtime.getRuntime().exec(cmd);
    p.waitFor();
    } Here we need to use backslashes, because the command is passed to the OS as is.
    If you need to be in C:\ to execute from command line, you will also need to use the
    exec() version that allows you to specify the 'current directory'
    Edited by: baftos on Mar 7, 2008 12:13 PM

  • Setting up SSL for Weblogic Server10.3.1

    I have read the doc http://download.oracle.com/docs/cd/E15523_01/web.1111/e13707/ssl.htm#i1194343 for Setting up SSL:
    1) Obtain Certs and keys: Public Certificates and Private Keys
    2) Store the private keys, digital certificates, and trusted CA certificates. Private keys and trusted CA certificates are stored in a keystore.
    3) Configure the identity and trust keystores in the Admin console.
    4) Set SSL configuration option for private key alias and password in Admin console.
    step 1)
    for the developement I'd use the demo certs offered by WLS install. I have found 4 certs in WLS_HOME\server\lib
    and they are CertGenCAKey, CertGenCA, demo and trusted.
    which are the Public Certificates? and the Private Keys? which ones should we use? Can we use them without any modifications ?
    Or we should use CertGen to create the certs and keys?
    TIA
    Z
    Edited by: user12220476 on May 12, 2010 4:34 PM

    2) Store the private keys, digital certificates, and trusted CA certificates. Private keys and trusted CA certificates are stored in a keystore.
    3) Configure the identity and trust keystores in the Admin console.
    4) Set SSL configuration option for private key alias and password in Admin console.
    I have used CertGen created the following key and cert files
    natcert.der, natcert.pem, natkey.der and natkey.pem
    For creating the keystore from the private key, I use utils.ImportPrivateKey
    steps (http://download.oracle.com/docs/cd/E15523_01/web.1111/e13749/utils.htm#ADMRF151)
    Convert the certificate from DER format to PEM format.
    $ java utils.der2pem CertGenCA.der
    Concatenate the certificate and the Certificate Authority (CA).
    $ cat natcert.pem CertGenCA.pem >> newnatcerts.pem
    Create a new keystore named natkeystore and load the private key located in the natkey.pem file.
    $ java utils.ImportPrivateKey -certfile newnatcerts.pem -keyfile natkey.pem -keyfilepass natkey123 -keystore natkeystore.jks -storepass nat123 -alias natalias
    Using Admin console to configure SSL
    configuration > general > enable ssl port 7002
    configuration > keytores > Custom Identity and Java Standard Trust
    --- Identity -----------------
    Custom Identity Keystore: $WLS_HOME/server/lib/natkeystore.jks
    Custom Identity Keystore Type: jks
    Custom Identity Keystore Passphrass: nat123
    ---Trust -----------------------
    Java Standard Trust keystore: JDK_HOME/jre/lib/security/cacerts
    Java Standard Trust keystore Type: jks
    Java Standard Trust keystore PassPhrass: changeit
    configuration > SSL
    Identity and Trust Locations : Keystores
    ---- Identity ----------------------
    Private key location: from custom identity keystores
    Private key alias: natalias
    Private key Passphrass: nat123
    Certificate Location: from custom identity keystore
    ---- Trust -------------------------
    Trust Certificate Authorities : from Java Standard Trust Keystores
    I restarted the WLS and fail to access the SSL port.
    Found following error mssages in the Admin server log:
    <BEA-090716> <Failed to retrieve identity key/certificate from keystore \...\wlserver_10.3\server\lib\natkeystore.jks under alias natalias on server AdminServer>
    <BEA-000297> <Inconsistent security configuration, weblogic.management.configuration.ConfigurationException: Failed to retrieve identity key/certificate from keystore \..\wlserver_10.3\server\lib\natkeystore.jks under alias natalias on server AdminServer>
    <BEA-090034> <Not listening for SSL, java.io.IOException: Failed to retrieve identity key/certificate from keystore \..\wlserver_10.3\server\lib\natkeystore.jks under alias natalias on server AdminServer.>
    <BEA-090171> <Loading the identity certificate and private key stored under the alias natalias from the jks keystore file \..\wlserver_10.3\server\lib\natkeystore.jks.>
    By the way, it works if configured the keystores with the weblogic's demo identity and trusted.
    Edited by: user12220476 on May 18, 2010 12:38 AM

  • How do I set proxy settings for a Java app behind a corporate server?

    I have the source code of a Download Manager program written in Java. It has to be run within my college network in which we use the "Corporate Client" server to access the internet. The HTTP proxy is 172.16.68.6 and Port number is 3128. How do I define these parameters in my java program so that it can download files from the internet?
    The source code for the program is:
    There are four classes:
    1. DownloadManager.java
    2. Download.java
    3. DownloadTable.java
    4. ProgressRenderer.java
    /*__DownloadManager.java__*/
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;
    // The Download Manager.
    public class DownloadManager extends JFrame
            implements Observer {
        // Add download text field.
        private JTextField addTextField;
        // Download table's data model.
        private DownloadsTableModel tableModel;
        // Table listing downloads.
        private JTable table;
        // These are the buttons for managing the selected download.
        private JButton pauseButton, resumeButton;
        private JButton cancelButton, clearButton;
        // Currently selected download.
        private Download selectedDownload;
        // Flag for whether or not table selection is being cleared.
        private boolean clearing;
        // Constructor for Download Manager.
        public DownloadManager() {
            // Set application title.
            setTitle("Download Manager");
            // Set window size.
            setSize(640, 480);
            // Handle window closing events.
            addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    actionExit();
            // Set up file menu.
            JMenuBar menuBar = new JMenuBar();
            JMenu fileMenu = new JMenu("File");
            fileMenu.setMnemonic(KeyEvent.VK_F);
            JMenuItem fileExitMenuItem = new JMenuItem("Exit",
                    KeyEvent.VK_X);
            fileExitMenuItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    actionExit();
            fileMenu.add(fileExitMenuItem);
            menuBar.add(fileMenu);
            setJMenuBar(menuBar);
            // Set up add panel.
            JPanel addPanel = new JPanel();
            addTextField = new JTextField(30);
            addPanel.add(addTextField);
            JButton addButton = new JButton("Add Download");
            addButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    actionAdd();
            addPanel.add(addButton);
            // Set up Downloads table.
            tableModel = new DownloadsTableModel();
            table = new JTable(tableModel);
            table.getSelectionModel().addListSelectionListener(new
                    ListSelectionListener() {
                public void valueChanged(ListSelectionEvent e) {
                    tableSelectionChanged();
            // Allow only one row at a time to be selected.
            table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            // Set up ProgressBar as renderer for progress column.
            ProgressRenderer renderer = new ProgressRenderer(0, 100);
            renderer.setStringPainted(true); // show progress text
            table.setDefaultRenderer(JProgressBar.class, renderer);
            // Set table's row height large enough to fit JProgressBar.
            table.setRowHeight(
                    (int) renderer.getPreferredSize().getHeight());
            // Set up downloads panel.
            JPanel downloadsPanel = new JPanel();
            downloadsPanel.setBorder(
                    BorderFactory.createTitledBorder("Downloads"));
            downloadsPanel.setLayout(new BorderLayout());
            downloadsPanel.add(new JScrollPane(table),
                    BorderLayout.CENTER);
            // Set up buttons panel.
            JPanel buttonsPanel = new JPanel();
            pauseButton = new JButton("Pause");
            pauseButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    actionPause();
            pauseButton.setEnabled(false);
            buttonsPanel.add(pauseButton);
            resumeButton = new JButton("Resume");
            resumeButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    actionResume();
            resumeButton.setEnabled(false);
            buttonsPanel.add(resumeButton);
            cancelButton = new JButton("Cancel");
            cancelButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    actionCancel();
            cancelButton.setEnabled(false);
            buttonsPanel.add(cancelButton);
            clearButton = new JButton("Clear");
            clearButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    actionClear();
            clearButton.setEnabled(false);
            buttonsPanel.add(clearButton);
            // Add panels to display.
            getContentPane().setLayout(new BorderLayout());
            getContentPane().add(addPanel, BorderLayout.NORTH);
            getContentPane().add(downloadsPanel, BorderLayout.CENTER);
            getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
        // Exit this program.
        private void actionExit() {
            System.exit(0);
        // Add a new download.
        private void actionAdd() {
            URL verifiedUrl = verifyUrl(addTextField.getText());
            if (verifiedUrl != null) {
                tableModel.addDownload(new Download(verifiedUrl));
                addTextField.setText(""); // reset add text field
            } else {
                JOptionPane.showMessageDialog(this,
                        "Invalid Download URL", "Error",
                        JOptionPane.ERROR_MESSAGE);
        // Verify download URL.
        private URL verifyUrl(String url) {
            // Only allow HTTP URLs.
            if (!url.toLowerCase().startsWith("http://"))
                return null;
            // Verify format of URL.
            URL verifiedUrl = null;
            try {
                verifiedUrl = new URL(url);
            } catch (Exception e) {
                return null;
            // Make sure URL specifies a file.
            if (verifiedUrl.getFile().length() < 2)
                return null;
            return verifiedUrl;
        // Called when table row selection changes.
        private void tableSelectionChanged() {
        /* Unregister from receiving notifications
           from the last selected download. */
            if (selectedDownload != null)
                selectedDownload.deleteObserver(DownloadManager.this);
        /* If not in the middle of clearing a download,
           set the selected download and register to
           receive notifications from it. */
            if (!clearing) {
                selectedDownload =
                        tableModel.getDownload(table.getSelectedRow());
                selectedDownload.addObserver(DownloadManager.this);
                updateButtons();
        // Pause the selected download.
        private void actionPause() {
            selectedDownload.pause();
            updateButtons();
        // Resume the selected download.
        private void actionResume() {
            selectedDownload.resume();
            updateButtons();
        // Cancel the selected download.
        private void actionCancel() {
            selectedDownload.cancel();
            updateButtons();
        // Clear the selected download.
        private void actionClear() {
            clearing = true;
            tableModel.clearDownload(table.getSelectedRow());
            clearing = false;
            selectedDownload = null;
            updateButtons();
      /* Update each button's state based off of the
         currently selected download's status. */
        private void updateButtons() {
            if (selectedDownload != null) {
                int status = selectedDownload.getStatus();
                switch (status) {
                    case Download.DOWNLOADING:
                        pauseButton.setEnabled(true);
                        resumeButton.setEnabled(false);
                        cancelButton.setEnabled(true);
                        clearButton.setEnabled(false);
                        break;
                    case Download.PAUSED:
                        pauseButton.setEnabled(false);
                        resumeButton.setEnabled(true);
                        cancelButton.setEnabled(true);
                        clearButton.setEnabled(false);
                        break;
                    case Download.ERROR:
                        pauseButton.setEnabled(false);
                        resumeButton.setEnabled(true);
                        cancelButton.setEnabled(false);
                        clearButton.setEnabled(true);
                        break;
                    default: // COMPLETE or CANCELLED
                        pauseButton.setEnabled(false);
                        resumeButton.setEnabled(false);
                        cancelButton.setEnabled(false);
                        clearButton.setEnabled(true);
            } else {
                // No download is selected in table.
                pauseButton.setEnabled(false);
                resumeButton.setEnabled(false);
                cancelButton.setEnabled(false);
                clearButton.setEnabled(false);
      /* Update is called when a Download notifies its
         observers of any changes. */
        public void update(Observable o, Object arg) {
            // Update buttons if the selected download has changed.
            if (selectedDownload != null && selectedDownload.equals(o))
                updateButtons();
        // Run the Download Manager.
        public static void main(String[] args) {
            DownloadManager manager = new DownloadManager();
            manager.show();
    This example shows how to create a simple download manager in Java. It contains four classes in foru Java source files:
    Download.java: Contains Download class which downloads a file from a URL.
    DownloadManager.java: Contains the main class for download manager application.
    DownloadsTableModel.java: Contains the class which manages the download table's data.
    ProgressRenderer.java: Contains the class which is responsible to render a JProgressBar in a table cell.
    The contents of the listed files are written below.
    /*__Download.java__*/
    import java.io.*;
    import java.net.*;
    import java.util.*;
    // This class downloads a file from a URL.
    class Download extends Observable implements Runnable {
        // Max size of download buffer.
        private static final int MAX_BUFFER_SIZE = 1024;
        // These are the status names.
        public static final String STATUSES[] = {"Downloading",
        "Paused", "Complete", "Cancelled", "Error"};
        // These are the status codes.
        public static final int DOWNLOADING = 0;
        public static final int PAUSED = 1;
        public static final int COMPLETE = 2;
        public static final int CANCELLED = 3;
        public static final int ERROR = 4;
        private URL url; // download URL
        private int size; // size of download in bytes
        private int downloaded; // number of bytes downloaded
        private int status; // current status of download
        // Constructor for Download.
        public Download(URL url) {
            this.url = url;
            size = -1;
            downloaded = 0;
            status = DOWNLOADING;
            // Begin the download.
            download();
        // Get this download's URL.
        public String getUrl() {
            return url.toString();
        // Get this download's size.
        public int getSize() {
            return size;
        // Get this download's progress.
        public float getProgress() {
            return ((float) downloaded / size) * 100;
        // Get this download's status.
        public int getStatus() {
            return status;
        // Pause this download.
        public void pause() {
            status = PAUSED;
            stateChanged();
        // Resume this download.
        public void resume() {
            status = DOWNLOADING;
            stateChanged();
            download();
        // Cancel this download.
        public void cancel() {
            status = CANCELLED;
            stateChanged();
        // Mark this download as having an error.
        private void error() {
            status = ERROR;
            stateChanged();
        // Start or resume downloading.
        private void download() {
            Thread thread = new Thread(this);
            thread.start();
        // Get file name portion of URL.
        private String getFileName(URL url) {
            String fileName = url.getFile();
            return fileName.substring(fileName.lastIndexOf('/') + 1);
        // Download file.
        public void run() {
            RandomAccessFile file = null;
            InputStream stream = null;
            try {
                // Open connection to URL.
                HttpURLConnection connection =
                        (HttpURLConnection) url.openConnection();
                // Specify what portion of file to download.
                connection.setRequestProperty("Range",
                        "bytes=" + downloaded + "-");
                // Connect to server.
                connection.connect();
                // Make sure response code is in the 200 range.
                if (connection.getResponseCode() / 100 != 2) {
                    error();
                // Check for valid content length.
                int contentLength = connection.getContentLength();
                if (contentLength < 1) {
                    error();
          /* Set the size for this download if it
             hasn't been already set. */
                if (size == -1) {
                    size = contentLength;
                    stateChanged();
                // Open file and seek to the end of it.
                file = new RandomAccessFile(getFileName(url), "rw");
                file.seek(downloaded);
                stream = connection.getInputStream();
                while (status == DOWNLOADING) {
            /* Size buffer according to how much of the
               file is left to download. */
                    byte buffer[];
                    if (size - downloaded > MAX_BUFFER_SIZE) {
                        buffer = new byte[MAX_BUFFER_SIZE];
                    } else {
                        buffer = new byte[size - downloaded];
                    // Read from server into buffer.
                    int read = stream.read(buffer);
                    if (read == -1)
                        break;
                    // Write buffer to file.
                    file.write(buffer, 0, read);
                    downloaded += read;
                    stateChanged();
          /* Change status to complete if this point was
             reached because downloading has finished. */
                if (status == DOWNLOADING) {
                    status = COMPLETE;
                    stateChanged();
            } catch (Exception e) {
                error();
            } finally {
                // Close file.
                if (file != null) {
                    try {
                        file.close();
                    } catch (Exception e) {}
                // Close connection to server.
                if (stream != null) {
                    try {
                        stream.close();
                    } catch (Exception e) {}
        // Notify observers that this download's status has changed.
        private void stateChanged() {
            setChanged();
            notifyObservers();
    /*__DownloadTableModel.java__*/
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    // This class manages the download table's data.
    class DownloadsTableModel extends AbstractTableModel
            implements Observer {
        // These are the names for the table's columns.
        private static final String[] columnNames = {"URL", "Size",
        "Progress", "Status"};
        // These are the classes for each column's values.
        private static final Class[] columnClasses = {String.class,
        String.class, JProgressBar.class, String.class};
        // The table's list of downloads.
        private ArrayList downloadList = new ArrayList();
        // Add a new download to the table.
        public void addDownload(Download download) {
            // Register to be notified when the download changes.
            download.addObserver(this);
            downloadList.add(download);
            // Fire table row insertion notification to table.
            fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
        // Get a download for the specified row.
        public Download getDownload(int row) {
            return (Download) downloadList.get(row);
        // Remove a download from the list.
        public void clearDownload(int row) {
            downloadList.remove(row);
            // Fire table row deletion notification to table.
            fireTableRowsDeleted(row, row);
        // Get table's column count.
        public int getColumnCount() {
            return columnNames.length;
        // Get a column's name.
        public String getColumnName(int col) {
            return columnNames[col];
        // Get a column's class.
        public Class getColumnClass(int col) {
            return columnClasses[col];
        // Get table's row count.
        public int getRowCount() {
            return downloadList.size();
        // Get value for a specific row and column combination.
        public Object getValueAt(int row, int col) {
            Download download = (Download) downloadList.get(row);
            switch (col) {
                case 0: // URL
                    return download.getUrl();
                case 1: // Size
                    int size = download.getSize();
                    return (size == -1) ? "" : Integer.toString(size);
                case 2: // Progress
                    return new Float(download.getProgress());
                case 3: // Status
                    return Download.STATUSES[download.getStatus()];
            return "";
      /* Update is called when a Download notifies its
         observers of any changes */
        public void update(Observable o, Object arg) {
            int index = downloadList.indexOf(o);
            // Fire table row update notification to table.
            fireTableRowsUpdated(index, index);
    /*__ProgressRenderer.java__*/
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;
    // This class renders a JProgressBar in a table cell.
    class ProgressRenderer extends JProgressBar
            implements TableCellRenderer {
        // Constructor for ProgressRenderer.
        public ProgressRenderer(int min, int max) {
            super(min, max);
      /* Returns this JProgressBar as the renderer
         for the given table cell. */
        public Component getTableCellRendererComponent(
                JTable table, Object value, boolean isSelected,
                boolean hasFocus, int row, int column) {
            // Set JProgressBar's percent complete value.
            setValue((int) ((Float) value).floatValue());
            return this;
    }

    Thank you for the quick reply! But the solution provided by you, it seems, has still not been able to address my issue. I ran the program at command prompt with your said parameters, but the download still gave an error in the App window.
    Also, is there some way of defining these parameters in the source code? I am keen in using NetBeans to run the program.
    Cheers!

  • How to create a set up program for my Java application

    Can some one please tell how to create a Setup for my Java Application

    Thanks for your reply.
    But still if you could have answered my query it would have been of a little more help for me, as I am quite new to any of these kinds of forum.
    Still thanks a lot for the reply.

  • Problem facing while connecting to GPRS for Nokia ...

    When I am connecting to GPRS or while doing switch on of my nokia 3110 it screen goes blank and it automatically switch off and switch on.

    Hi
    I was facing this problem all of a sudden when i use Sigle sign-on method to connect to SAP.
    It throws me from my connection process when i reach the code to connect to the company database.
    So i uninstalled all SAP components and reinstalled them again (based on one of the earlier post )... this has sorted my issue.
    Thank you for your response
    Regards
    Mini

  • Error while setting input parameter for dynamic process - GP

    Hi All,
    I am using CAF 7.1 GP.
    Here I have to start a process dynamically and it is working fine.
    But, when I tried to set value for input parameter of this process by
    IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
    params.setAttributeValue("Val","MyValue");
    ( <b>Val</b> is the name of grouped input parameter ), it is giving
    com.sap.caf.eu.gp.exception.api.GPInvocationException: Structure with name input and namespace http://wwww.sap.com/nw/eup/gp does not have an attribute with name Val and namespace null.
    But no where I have mentioned http://wwww.sap.com/nw/eup/gp.
    I dont have any structures in my input and output.
    Here is my full code
           try
                IGPProcess process = null;
                IUser tl_user =UMFactory.getUserFactory().getUserByLogonID("fahad");
                     IGPUserContext userContext = GPContextFactory.getContextManager().createUserContext(tl_user);//, user.getLocale());
                     process =GPProcessFactory.getDesigntimeManager().getActiveTemplate("F5D76840A56F11DC983B001966243CAD",userContext);
                     wdComponentAPI.getMessageManager().reportSuccess("Title of process is "+process.getTitle());
                     IGPRuntimeManager rtm = GPProcessFactory.getRuntimeManager();
                     IGPProcessRoleInstanceList roles = rtm.createProcessRoleInstanceList();
                     int rolenum = process.getRoleInfoCount();
                     wdComponentAPI.getMessageManager().reportSuccess("Number is "+rolenum);
                     IGPProcessRoleInstance roleInstance=null;
                     IUser ho_User=null;
                     for (int i = 0; i < rolenum; i++)
                             wdComponentAPI.getMessageManager().reportWarning("Role Text is "process.getRoleInfo(i).getText()"  Role Name is "+process.getRoleInfo(i).getRoleName());
                             if(i==1)
                                  ho_User = UMFactory.getUserFactory().getUserByLogonID("poornendu");
                                  roleInstance = roles. createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                                  roleInstance.addRuntimeDefinedUser(ho_User);
                                  roles.addProcessRoleInstance(roleInstance);
                             if(i==2)
                                  ho_User = UMFactory.getUserFactory().getUserByLogonID("fahad");
                                  roleInstance = roles. createProcessRoleInstance(process.getRoleInfo(i).getRoleName());
                                  roleInstance.addUser(ho_User);
                                  roles.addProcessRoleInstance(roleInstance);
                     wdComponentAPI.getMessageManager().reportSuccess(""+process.getStructure().getItemCount());
                     IGPStructure params = GPStructureFactory.getStructure(process.getInputParameters());
                     wdComponentAPI.getMessageManager().reportSuccess("Title of process is "+process.getTitle());
                     <b>params.setAttributeValue("Val","MyValue");</b>                     
                     String pName=wdContext.currentContextElement().getProcessName();
                     IGPProcessInstance prInstance = rtm.startProcess(process,pName,"This process has been started using the GP public API",tl_user,roles,params,tl_user);
           catch(Exception e)
                wdComponentAPI.getMessageManager().reportException(""+e);
    Can anyone help me on this.
    Thanks,
    Fahad Hamsa

    Hi Experts,
    I solved it myself.
    The problem was, I have to make the input parameter as exposed. Thats all
    Anyway, thanks for the support.
    Regards,
    Fahad Hamsa

  • Issue facing while opening a Canvas application in Webstart

    Hi experts,
    Need a help on the issue: issue was like this:
    I have created a Canvas application in Swings. And It was running fine. The next day i have compiled again the code and build the class and after jar. Deployed in Tomcat.
    Started the webstart and launched the application. Now If I am opening the Canvas which I have required it is giving a error called " Identifier Not found".
    For this issue i tried in these ways: I kept the S.O.Ps in the initialize() method and the respective methods like extractConfigurationParameters(), jbInit().
    But once the control reach to jbInit() it is not continuing.. Even i can see the S.O.P first control in the java console.
    Please help me to fix it.
    With Thanks
    Kishore

    always check in this way - your number of column count for the Jtable, tableInit(), and tableColumnconntent(). these will load at the time of convas initialisation.
    Nicky :-)

  • Issue in value set Drop down for ALV in Webdynpro with Index

    Hi Experts,
    We are unable to get the Drop down values in the ALV Table as shown below.
    Code:
       DATA lo_nd_table TYPE REF TO if_wd_context_node.
        DATA lt_table TYPE wd_this->elements_table.
       DATA ls_table TYPE wd_this->element_table.
       DATA: lr_input TYPE REF TO cl_salv_wd_uie_input_field,
             lr_column TYPE REF TO cl_salv_wd_column,
             lt_node_info TYPE wdr_context_attr_info_map,
             ls_node_info TYPE wdr_context_attribute_info,
             lr_dropdown TYPE REF TO cl_salv_wd_uie_dropdown_by_idx,
             lr_info TYPE REF TO if_wd_context_node_info.
       DATA:lt_columns TYPE salv_wd_t_column_ref,
             ls_columns TYPE salv_wd_s_column_ref,
             lv_tabix TYPE sy-tabix,
             lv_count TYPE c.
       DATA: ls_valueset TYPE wdr_context_attr_value,
             lt_valueset TYPE wdr_context_attr_value_list.
       TYPES:BEGIN OF ty_name,
       name TYPE string,
       END OF ty_name.
       DATA: lt_name TYPE TABLE OF ty_name,
       ls_name TYPE ty_name.
    *   navigate from <CONTEXT> to <TABLE> via lead selection
       lo_nd_table = wd_context->get_child_node( name = wd_this->wdctx_table ).
       SELECT * FROM zemp_table INTO CORRESPONDING FIELDS OF TABLE lt_table UP TO 10 ROWS.
       LOOP AT lt_table INTO ls_table.
         lv_tabix = sy-tabix.
         CLEAR: ls_table-leave_values.
         DO 1 TIMES.
           lv_count = lv_count + 1.
           CONCATENATE 'Open' lv_count INTO ls_valueset-value.
           CONCATENATE 'Open' lv_count INTO ls_valueset-text.
           APPEND ls_valueset TO ls_table-leave_values.
           CLEAR ls_valueset.
           CONCATENATE 'Approved' lv_count INTO ls_valueset-value.
           CONCATENATE 'Approved' lv_count INTO ls_valueset-text.
           APPEND ls_valueset TO ls_table-leave_values.
           CLEAR ls_valueset.
           CONCATENATE 'Rejected' lv_count INTO ls_valueset-value.
           CONCATENATE 'Rejected' lv_count INTO ls_valueset-text.
           APPEND ls_valueset TO ls_table-leave_values.
           CLEAR ls_valueset.
         ENDDO.
         MODIFY lt_table FROM ls_table INDEX lv_tabix TRANSPORTING leave_status leave_values.
       ENDLOOP.
       DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.
       lo_cmp_usage =   wd_this->wd_cpuse_alv( ).
       IF lo_cmp_usage->has_active_component( ) IS INITIAL.
         lo_cmp_usage->create_component( ).
       ENDIF.
       DATA lo_interfacecontroller TYPE REF TO iwci_salv_wd_table .
       lo_interfacecontroller =   wd_this->wd_cpifc_alv( ).
       DATA lo_value TYPE REF TO cl_salv_wd_config_table.
       lo_value = lo_interfacecontroller->get_model(
    *  lo_interfacecontroller->set_data( r_node_data = lo_nd_value_set ).
    **Get the context node information
       lr_info = lo_nd_table->get_node_info( ).
       lt_node_info = lr_info->get_attributes( ).
       LOOP AT lt_node_info INTO ls_node_info.
         ls_name-name = ls_node_info-name.
         APPEND ls_name TO lt_name.
       ENDLOOP.
    *Get all the columns to make row editable
       CALL METHOD lo_value->if_salv_wd_column_settings~get_columns
         RECEIVING
           value = lt_columns.
    * Make the field dropdown
       CALL METHOD lo_value->if_salv_wd_column_settings~get_column
         EXPORTING
           id    = 'LEAVE_STATUS'
         RECEIVING
           value = lr_column.
    * Create Object for dropdown
       CREATE OBJECT lr_dropdown
         EXPORTING
           selected_key_fieldname = 'LEAVE_STATUS'.
       CALL METHOD lr_dropdown->set_valueset_fieldname
         EXPORTING
           value = 'LEAVE_VALUES'.
       CALL METHOD lr_dropdown->set_type
         EXPORTING
           value = if_salv_wd_c_uie_drdn_by_index=>type_key_convert_to_value.
       CALL METHOD lr_column->set_cell_editor
         EXPORTING
           value = lr_dropdown.
    *Set the table Editable
       lo_value->if_salv_wd_table_settings~set_read_only( value = abap_false ).
       lo_nd_table->bind_table( new_items = lt_table ).
    Please suggest me where we are going wrong.
    Thanks in advance...!!!
    Best Regard's,
    Shashi Kanth

    Hi Shashi,
    Your code looks okay.  Debug & check if everything goes fine and all the required list of values getting bound to node.
    Is any code after this logic, which sets data to table ? if so, that logic is wiping out the drop down list values from context node.
    Final check point:
    Read the context node 'TABLE' and fetch records into internal table in WDDOMODIFYVIEW( ) method to make sure that, every row of your table contains the drop down list entries in "LEAVE_VALUES" attribute
    Hope this helps you.
    Regards,
    Rama

  • Error while setting the SSL with trusted cert --  any help on this?

    Connecting to Node Manager ...
    <Aug 3, 2010 5:20:17 PM CDT> <Warning> <Security> <BEA-090542> <Certificate chai
    n received from localhost - 127.0.0.1 was not trusted causing SSL handshake fail
    ure. Check the certificate chain to determine if it should be trusted or not. If
    it should be trusted, then update the client trusted CA configuration to trust
    the CA certificate that signed the peer certificate chain. If you are connecting
    to a WLS server that is using demo certificates (the default WLS server behavio
    r), and you want this client to trust demo certificates, then specify -Dweblogic
    .security.TrustKeyStore=DemoTrust on the command line for this client.>
    This Exception occurred at Tue Aug 03 17:20:18 CDT 2010.
    javax.net.ssl.SSLKeyException: [Security:090542]Certificate chain received from
    localhost - 127.0.0.1 was not trusted causing SSL handshake failure. Check the c
    ertificate chain to determine if it should be trusted or not. If it should be tr
    usted, then update the client trusted CA configuration to trust the CA certifica
    te that signed the peer certificate chain. If you are connecting to a WLS server
    that is using demo certificates (the default WLS server behavior), and you want
    this client to trust demo certificates, then specify -Dweblogic.security.TrustK
    eyStore=DemoTrust on the command line for this client.
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireException(Unknow
    n Source)
    at com.certicom.tls.interfaceimpl.TLSConnectionImpl.fireAlertSent(Unknow
    n Source)
    at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown
    Source)
    at com.certicom.tls.record.handshake.HandshakeHandler.fireAlert(Unknown
    Source)
    at com.certicom.tls.record.handshake.ClientStateReceivedServerHello.hand
    le(Unknown Source)
    at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMes
    sage(Unknown Source)
    at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMes
    sages(Unknown Source)
    at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown S
    ource)
    at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Sou
    rce)
    at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source)
    at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)

    Go through this link
    http://weblogic-wonders.com/weblogic/2010/03/03/ssl-exceptions-in-admin-server-and-node-manager/

  • Problem while setting background color for jsplit pane

    Hi ALL,
    i am using jsplit frame inside jframe.
    i placed jtree inside left jsplit frame.
    I am not able to set background clolr to jsplit frame.
    when i hide(jtree.setvisible(false)) jtree is shows default background color.it is not showing backgroun color which i set.

    In the below code,i am adding jtree inside jscrollpane and i am adding jscrollpane inside jsplitpane.
    whenever i am setting jtree.setvisible(false),it must show background color which is i am setting for jscrollpane .but its showing default background color.
    Please help me.
    * Demo.java
    * Created on August 19, 2008, 1:44 PM
    public class Demo extends javax.swing.JFrame {
    /** Creates new form Demo */
    public Demo() {
    initComponents();
    jTree1.setVisible(false);
    jScrollPane1.setBackground(new java.awt.Color(136, 194, 252));
    jSplitPane1.setBackground(new java.awt.Color(136, 194, 252));    }
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
            jPanel1 = new javax.swing.JPanel();
            jSplitPane1 = new javax.swing.JSplitPane();
            jScrollPane1 = new javax.swing.JScrollPane();
            jTree1 = new javax.swing.JTree();
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            jScrollPane1.setViewportView(jTree1);
            jSplitPane1.setLeftComponent(jScrollPane1);
            org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(jSplitPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
            jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, jSplitPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            pack();
        }// </editor-fold>
         * @param args the command line arguments
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Demo().setVisible(true);
        // Variables declaration - do not modify
        private javax.swing.JPanel jPanel1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JSplitPane jSplitPane1;
        private javax.swing.JTree jTree1;
        // End of variables declaration

  • Issues occurred while creating DataBase Queue for AQ adapter in SOA

    Hi All,
    I am new to AQ adapters,I am trying to create database queue with in the custom user but I got ora-01031 insufficient privileges,actually I follow the below two links
    http://askmesoa.blogspot.in/2012/09/working-with-aq-adapter-in-soa.html
    http://jamessmith73.wordpress.com/oracle-fusion-middleware/oracle-soa-bpm-11g-blogs/soa-10g/soa-hands-on-4/
    When I trying to execute the following code I got ora-01031 insufficient privileges.
    BEGIN
    DBMS_AQADM.CREATE_QUEUE_TABLE (
    queue_table => 'aq_user.msg_qt'
    , queue_payload_type => 'aq_user.message_type'
    DBMS_AQADM.CREATE_QUEUE (
    queue_name => 'msg_queue'
    , queue_table => 'aq_user.msg_qt'
    , queue_type => DBMS_AQADM.NORMAL_QUEUE
    , max_retries => 0
    , retry_delay => 0
    , retention_time => 1209600
    , dependency_tracking => FALSE
    , comment => 'Test Object Type Queue'
    , auto_commit => FALSE
    DBMS_AQADM.START_QUEUE ('msg_queue');
    END;
    Can anybody help me out how to solve the issue
    Regards
    Mani

    Hi Anuj,
    While I execute I had given aq_user1 only still I am geeting the same isssue.
    BEGIN
    DBMS_AQADM.CREATE_QUEUE_TABLE (
    queue_table => 'aq_user1.msg_qt'
    , queue_payload_type => 'aq_user1.message_type1'
    DBMS_AQADM.CREATE_QUEUE (
    queue_name => 'msg_queue'
    , queue_table => 'aq_user1.msg_qt'
    , queue_type => DBMS_AQADM.NORMAL_QUEUE
    , max_retries => 0
    , retry_delay => 0
    , retention_time => 1209600
    , dependency_tracking => FALSE
    , comment => 'Test Object Type Queue'
    , auto_commit => FALSE
    DBMS_AQADM.START_QUEUE('msg_queue');
    END;
    Regards
    Mani

  • Facing Problem in Deploying EAR for Client Java Proxy.

    Hi All,
                I am facing problems in deploying EAR in PI/XI server.
    The scenario is Client Java Proxy to SAP
    . I have followed the the pdf-how to create java proxies in 3.0. Using that I have created the EJB module and it archive.
    Finally created the EAR without errors. But while deploying the same in PI server, it throws the following error. Please do help me out in providing any inputs on the same.
    Deploy trace is seen below:-
    Deploy of the ear has errors :
    java.rmi.RemoteException: Cannot deploy application sap.com/BusPartnerEAR..
    Reason: Errors while compiling:
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:91: illegal escape character
          if (method.equals("U0024descriptor")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:98: illegal escape character
          if (method.equals("U0024jcoRuntimeMetaData")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:112: illegal escape character
          if (method.equals("U0024generationInfo")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:119: illegal escape character
          if (method.equals("U0024messageSpecifier")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:152: illegal escape character
          if (method.equals("U0024runtime")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:195: illegal escape character
          if (method.equals("U0024messageSpecifierRead")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemoteObjectImpl0_0_Tie.java:202: illegal escape character
          if (method.equals("U0024messageSpecifier__")) {
                              ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:93: illegal escape character
              org.omg.CORBA_2_3.portable.OutputStream out = (org.omg.CORBA_2_3.portable.OutputStream)_request("U0024descriptor", true);
                                                                                    ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:112: illegal escape character
          ServantObject so = servantpreinvoke("U0024descriptor", MIOSBusinessPartner_PortTypeRemote.class);
                                                  ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:134: illegal escape character
              org.omg.CORBA_2_3.portable.OutputStream out = (org.omg.CORBA_2_3.portable.OutputStream)_request("U0024jcoRuntimeMetaData", true);
                                                                                    ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:153: illegal escape character
          ServantObject so = servantpreinvoke("U0024jcoRuntimeMetaData", MIOSBusinessPartner_PortTypeRemote.class);
                                                  ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:216: illegal escape character
              org.omg.CORBA_2_3.portable.OutputStream out = (org.omg.CORBA_2_3.portable.OutputStream)_request("U0024generationInfo", true);
                                                                                    ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:235: illegal escape character
          ServantObject so = servantpreinvoke("U0024generationInfo", MIOSBusinessPartner_PortTypeRemote.class);
                                                  ^
    D:/usr/sap/ECD/DVEBMGS03/j2ee/cluster/server0/apps/sap.com/BusPartnerEAR/EJBContainer/temp/temp1175887267437/com/mud/sAPFICA/businessPartner/_MIOSBusinessPartner_PortTypeRemote_Stub.java:257: illegal escape character
              org.omg.CORBA_2_3.portable.OutputStream out = (org.omg.CORBA_2_3.portable.OutputStream)_request("U0024messageSpecifier", true);
    21 errors
    Awaiting for your replies...
    Regards,
    Dhana

    Hi,
         Thanks for your input..
       I have also opend the EAR as ZIP file and deleted the existing listing libaries
    apart from the actual implementing Jar and META-INF folder.
    I have tried deploying the Jar for the second time, it is throwing the same error.
    What I did is...Once the EAR is created, I went to Resource perspective in NWDS and copied the EAR from the EAR project and used the same for deployment.
    Is there is anything else to be modified or deleted before deployement?
    Regards,
    Dhana

  • Setting cipher suites for ssl sockets

    Hi
    While setting cipher suites for ssl serversocket and socket, there may be lot of stream ciphers and block ciphers in the list. (also there may or may not be anonymous cipher suites).
    How does the ssl socket decide which cipher suite to use?
    Sorry for this newbie question.
    Thank you.

    Have you read the JSSE Reference Guide? It has a really good description of how the SSL handshake works. Part of the "Client Hello" step includes sending all the cipher-suites the client has enabled. The server picks the "best" of that set, that the server also supports, and sends it back as part of the "Server Hello". Both sides switch to that set.
    Now, what "best" means isn't defined. I'm not sure what criteria the server uses to determine that. Maybe someone else reading the thread can chime in.
    Grant

  • Setting up mail for exchange for rediffmailpro acc...

    can anyone guide me how to configure mail for exchange in E5 model. Presently my mails are through pop.rediffmailpro.com

    Ahhh after some research and trail and error.. (hours of it)... I got a work around!!! I tried it for gmail and it works fine now!! Below is what you do:-
    On inital stage please type dont type correct yahoo, gmail, hotmail or other email ID "
    for example if ur id is ****@hotmail.com that type ****@abc.com insted of hotmail. and correct it on second stage.
    Go to Mail on your phone  - Options - Settings -  scroll down to email - Options - New Mailbox
    Click - start and then NO to allow connections (that stops Nokia Messaging swinging into control)
    Now enter your hotmail address except do not put @hotmail.com at the end.  Put @abc.com
    e..g. if you email is *****@hotmail.com then enter mailto:*****@abc.com
     Now enter your password - press OK
    Now you will get an OPTION to define settings and it will allow you to manually set the POP3 or IMAP
    Now put in your correct email id and passwd while setting the IMAP. for gmail use the following >
    Enter 'imap.gmail.com' as the incoming mail server, Select 'SSL/TLS' for your security (ports) and define your port as '993.'
    Enter 'smtp.gmail.com' as the outgoing mail server,Select 'StartTLS' for your security (ports) and define your port as '587.'
    Save it... and you will say Wow!!! that worked!!!
    Atleast it worked for me!!!
    Try this out... hope this helps!!!
    Ahhh after some research and trail and error.. (hours of it)... I got a work around!!! I tried it for gmail and it works fine now!! Below is what you do:-
    On inital stage please type dont type correct yahoo, gmail, hotmail or other email ID "for example if ur id is ****@hotmail.com that type ****@abc.com insted of hotmail. and correct it on second stage.
    Go to Mail on your phone  - Options - Settings -  scroll down to email - Options - New Mailbox Click - start and then NO to allow connections (that stops Nokia Messaging swinging into control) Now enter your hotmail address except do not put @hotmail.com at the end.  Put @abc.com e..g. if you email is *****@hotmail.com then enter mailto:*****@abc.com Now enter your password - press OK
    Now you will get an OPTION to define settings and it will allow you to manually set the POP3 or IMAP
    Now put in your correct email id and passwd while setting the IMAP. for gmail use the following >
    Enter 'imap.gmail.com' as the incoming mail server, Select 'SSL/TLS' for your security (ports) and define your port as '993.'
    Enter 'smtp.gmail.com' as the outgoing mail server,Select 'StartTLS' for your security (ports) and define your port as '587.'
    Save it... and you will say Wow!!! that worked!!! Atleast it worked for me!!! Try this out... hope this helps!!!

Maybe you are looking for