[OSB] "Invalid Thread Access" - Consuming WSDL

Creating a business service I am trying to define the service type by consuming WSDL. I get the error "Invalid Thread Access" with no additional details.
The URI is accessable in my browser and works when i import it into jdeveloper.
Working on Oracle Linux in Eclipse OSB
Any help would be great.
Thanks,
Nick

Thank you Vlad, I want to tell you some thing about this WSDL.
Size of the wsdl :    5.60 MB and It has 93,671 lines of coding in that file.   Is it causes problem
or
Am invoking CRM Web Service and they clearly mention in my mail that "Please use HTTPS because SSL has been applied to your sites" 
do I need to create key store for their Certificates.
Please Advise me.
Thanks,
Viswas

Similar Messages

  • "Invalid Thread Access" - Consuming WSDL in OSB

    Hi,
    Creating a business service I am trying to define the service type by consuming WSDL. I get the error "Invalid Thread Access" with no additional details.
    The URI is accessible in my browser and works when i import it into jdeveloper. through soapUI, I can able to test this service.
    The interesting point here is I am not able to ping that server. (cmd-->ping service name). Here my doubt is do they(as Am invoking third party service) need to open any port for us or not.
    Please advice me
    Thanks,

    Thank you Vlad, I want to tell you some thing about this WSDL.
    Size of the wsdl :    5.60 MB and It has 93,671 lines of coding in that file.   Is it causes problem
    or
    Am invoking CRM Web Service and they clearly mention in my mail that "Please use HTTPS because SSL has been applied to your sites" 
    do I need to create key store for their Certificates.
    Please Advise me.
    Thanks,
    Viswas

  • Org.eclipse.swt.SWTException: Invalid thread access - Action struts

    Hi
    I�m runing this WordSearchReplace java class that I got here in this forum, and I�m runing it doing search and replace in Ms word document if I run just one time it works ok, but if I run twice i got that erro, I�m runing that java class in my Action on struts.
    I don�t know what is occur.
    Can you help me?
    Thanks
    Following the example of call, mistakes and java class.
    //======RUNING THE WordSearchReplace JAVA CLASS=========
    WordSearchReplace wordSR = null;
    try {
    String[] v_text = {"#V46#","#V42#"};
    String[] v_replace = {"Texto1","Texto2"};
    wordSR = new WordSearchReplace();
    wordSR.openFile(v_path+v_file_name);
    for ( int i=0; i<v_text.length; i++ )
    wordSR.replace( v_text, v_replace[i] );
    wordSR.save();
    wordSR.closeFile();
    catch(Exception e) {
    System.out.println("Caught: ERRO ao Executar WordSearchReplace " + e.getClass().getName());
    System.out.println(e.getMessage());
    e.printStackTrace(System.out);
    finally {
    if(wordSR != null) {
    try {
    wordSR.dispose();
    catch(Exception innerE) {
    System.out.println("Caught: " + innerE.getClass().getName());
    System.out.println(innerE.getMessage());
    innerE.printStackTrace(System.out);
    //========ERRO ===========================
    17:24:49,093 INFO [STDOUT] Invalid thread access
    17:24:49,093 INFO [STDOUT] org.eclipse.swt.SWTException: Invalid thread access
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.SWT.error(SWT.java:3563)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.SWT.error(SWT.java:3481)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.SWT.error(SWT.java:3452)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Widget.error(Widget.java:432)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:274)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:265)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:218)
    17:24:49,093 INFO [STDOUT] at org.eclipse.swt.widgets.Shell.<init>(Shell.java:156)
    17:24:49,093 INFO [STDOUT] at br.com.tryblob.view.WordSearchReplace.<init>(WordSearchReplace.java:38)
    17:24:49,093 INFO [STDOUT] at br.com.tryblob.view.WordAction.execute(WordAction.java:70)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    17:24:49,093 INFO [STDOUT] at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    17:24:49,093 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
    //====== WordSearchReplace JAVA CLASS=========
    import java.util.ArrayList;
    import java.util.Iterator;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.SWTException;
    import org.eclipse.swt.internal.ole.win32.TYPEATTR;
    import org.eclipse.swt.ole.win32.OLE;
    import org.eclipse.swt.ole.win32.OleAutomation;
    import org.eclipse.swt.ole.win32.OleClientSite;
    import org.eclipse.swt.ole.win32.OleFrame;
    import org.eclipse.swt.ole.win32.OleFunctionDescription;
    import org.eclipse.swt.ole.win32.OlePropertyDescription;
    import org.eclipse.swt.ole.win32.OleParameterDescription;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.ole.win32.Variant;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.BufferedWriter;
    import java.io.IOException;
    public class WordSearchReplace {
         private static final String PROG_ID = "Word.Application";
         private static final int WD_REPLACE_ALL = 2;
         private static final int WD_FIND_CONTINUE = 1;
         private Shell shell = null;
         private OleFrame frame = null;
         private OleClientSite wordSite = null;
         private OleAutomation wordAutomation = null;
         private OleAutomation activeDocumentAutomation = null;
         private boolean cleaned = false;
         * Create a new instance of the WordSearchReplace class.
         public WordSearchReplace() {
              this.shell = new Shell();
              this.frame = new OleFrame(this.shell, SWT.NONE);
              this.wordSite = new OleClientSite(this.frame, SWT.NONE, WordSearchReplace.PROG_ID);
         this.wordAutomation = new OleAutomation(this.wordSite);
         * Open an MS Word file. This is a file whose name ends with the extension
         * .doc or .doc and which conforms to the correct format.
         * Note; if it is possible to open the named file, an attempt is made
         * to cache an OleAutomation object referencing that file which will be
         * referred to in future as the active document. Most other methods
         * need to capture references to further OleAutomation(s) that have the
         * active document as their root.
         * @param fileName An instance of the String class that encapsulates the
         * path to and name of the file that is to be opened.
         * Note; the full path name must be supplied as Word
         * will be opening the file and no assumptions can
         * safely be made concerning the applications 'home'
         * folder.
         * @throws NullPointerException if a null value is passed to the fileName
         * parameter.
         * @throws FileNotFoundException if it is not possible to locate the
         * file.
         * @throws IllegalArgumentException if the name of the file does not end
         * with either the .dot or .doc extensions.
         * @throws SWTException if a problem occurs whilst invoking any of the OLE
         * methods.
         public void openFile(String fileName) throws SWTException,
         NullPointerException,
         FileNotFoundException,
         IllegalArgumentException {
              OleAutomation documentsAutomation = null;
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              try {
                   // Check the the file name is not null
                   if(fileName == null) {
                        throw new NullPointerException("Null value passed to " +
                             "fileName parameters of the openFile() method.");
                   // Check the the file names ends with '.dot' or '.doc'.
                   // Remember to include templates and docuemnts
                   if(!(fileName.endsWith(".doc")) && !(fileName.endsWith(".dot"))) {
                        throw new IllegalArgumentException(
                             "The filename must end with the extensions \'.doc\' or \'.dot\'");
                   // Check that the file exists
                   File fileToPrint = new File(fileName);
                   if(!(fileToPrint.exists())) {
                        throw new FileNotFoundException("The file " +
                        fileName +
                        "cannot be found.");
                   // From the application, get an automation for the Documents property
                   documentsAutomation = this.getChildAutomation(this.wordAutomation,
                   "Documents");
                   // Get the ID of the Open method
                   id = documentsAutomation.getIDsOfNames(new String[]{"Open"});
                   if(id == null) {
                        throw new SWTException("It was not possible to recover an " +
                        "identifer for the Open method in WordSearchReplace.openFile().");
                   // Build an array of parameters - holds just the file name
                   arguments = new Variant[1];
                   arguments[0] = new Variant(fileName);
                   // Invoke the Open method on the Documents property
                   invokeResult = documentsAutomation.invoke(id[0], arguments);
                   // If the call to invoke the open method failed, throw an SWTException
                   // to terminate processing.
                   if(invokeResult == null) {
                        throw new SWTException("An error occurred whilst invoking the " +
                             "Open method for the following file: " +
                             fileName +
                             " in WordSearchReplace.openFile().");
                   // If it was possible to open the document successfully, grab an
                   // automation object referencing the active document here.               
                   else {
                        this.activeDocumentAutomation = this.getChildAutomation(
                             this.wordAutomation, "ActiveDocument");
              finally {
                   // If the automation was instantiated then dispose of it to
                   // release resources. This OleAutomation was only required
                   // to open the file and can safely be released here.
                   if(documentsAutomation != null) {
                        documentsAutomation.dispose();
         * Save the currently open file - the active document.
         * @throws SWTException if a problem occurs whilst invoking any of the OLE
         * methods.
         public void save() throws SWTException {
              int[] id = null;
              Variant invokeResult = null;
              // From the automation for the ActiveDocument object, get an id for
              // the Save method
              id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"Save"});
              // If it was not possible to recover the id of the Save
              // method, throw an exception to notify the user and terminate
              // processing.
              if(id == null) {
                   throw new SWTException("Unable to obtain an automation for " +
                        "the Save method in WordSearchReplace.save().");
              // Invoke the Save method and catch the value returned
              invokeResult = this.activeDocumentAutomation.invoke(id[0]);
              // If a null value was returned then the invocation of the
              // Save method failed. Throw an exception to notify the
              // user and terminate processing.
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "Save method in WordSearchReplace.save().");
         * Save the active document using the name provided.
         * @param fileName Am instance of the String class encapsulating the name
         * for the file. Again, the path to and name of the file should
         * be supplied.
         * @throws NullPointerException if a null value is passed to the fileName
         * parameter.
         * @throws IllegalArgumentException if either an empty String is passed
         * to the fileName parameter or if the files name does not end
         * with one of the two permissible extensions - .dot and .doc
         public void saveAs(String fileName) throws SWTException,
         NullPointerException,
         IllegalArgumentException {
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              // If the fileName parameter is passed a null
              // value, throw an exception.
              if(fileName == null) {
                   throw new NullPointerException("A null value was passed to " +
                        "the fileName parameter of WordSearchReplace.saveAs().");
              // If the fileName parameter has been passed an empty String
              // then again throw an exception.
              if(fileName.length() == 0) {
                   throw new NullPointerException("An empty string was passed " +
                        "to the fileName parameter of WordSearchReplace.saveAs().");
              // Finally, make sure the file name ends in either
              // .doc or .dot.
              if((!fileName.endsWith(".dot")) && (!fileName.endsWith(".doc"))) {
                   throw new IllegalArgumentException("An illegal file name was " +
                        "passed to the fileName parameter of " +
                        "WordSearchReplace.saveAs(). The file name must " +
                        "end in \'.dot\' or \'.doc\'.");
              // From the automation for the ActiveDocument object, get an id for
              // the SaveAs method
              id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"SaveAs"});
              // If it was not possible to recover the id of the SaveAs
              // method, throw an exception to notify the user and terminate
              // processing.
              if(id == null) {
                   throw new SWTException("Unable to obtain an automation for " +
                        "the SaveAs method in WordSearchReplace.saveAs().");
              // Build the array of arguments that will be passed to the invoke
              // method when the SaveAs method is invoked. In this case, this
              // array will contain a single member - a String object encapsulating
              // the path to and name of the output file.
              arguments = new Variant[1];
              arguments[0] = new Variant(fileName);
              // Invoke the SaveAs method and catch the value returned
              invokeResult = this.activeDocumentAutomation.invoke(id[0], arguments);
              // If a null value was returned then the invocation of the
              // PrintOut method failed. Throw an exception to notify the
              // user and terminate processing.
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "SaveAs method in WordSearchReplace.saveAs().");
         * Mimics Words 'replace' functionality by searching the active
         * document for evey string of characters that matches the value passed to
         * the searchTerm parameter and replacing them with the string of
         * characters passed to the replacementTerm method.
         * It is possible to code a VBA macro within Word that will perfrom a serach
         * and replace. That code would look like the following;
         * <pre>
         *      Selection.Find.ClearFormatting
    *     Selection.Find.Replacement.ClearFormatting
    *     With Selection.Find
    *      .Text = "serach"
    *      .Replacement.Text = "search"
    *      .Forward = True
    *      .Wrap = wdFindContinue
    *      .Format = False
    *      .MatchCase = False
    *      .MatchWholeWord = False
    *      .MatchWildcards = False
    *      .MatchSoundsLike = False
    *      .MatchAllWordForms = False
    *     End With
    *     Selection.Find.Execute Replace:=wdReplaceAll
    * <pre>
    * and this method will 'automate' it.
         * @param searchTerm An instance of the String class that will encapsulate
         * the series of characters that should be replaced.
         * @param replacementTerm An instance of the String class that will
         * encapsulate the series of characters that should replace the
         * searchTerm.
         * @throws NullPointerException if a null value is passed to either the
         * searchTerm or replacementTerm methods.
         * @throws SWTException if a problem occurs when invoking any of the
         * OLE methods.
         public void replace(String searchTerm,
         String replacementTerm) throws SWTException,
         NullPointerException {
              OleAutomation selectionFindAutomation = null;
              OleAutomation childAutomation = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              int[] id = null;
              int[] namedArguments = null;
              boolean success = true;
              // Validate the searchTerm parameter and throw exception if
              // null value passed.
              if(searchTerm == null) {
                   throw new NullPointerException("Null value passed to " +
                             "searchTerm parameter of the replace() method.");
              // Validate the replacementTerm parameter and throw exception if
              // null value passed.
              if(replacementTerm == null) {
                   throw new NullPointerException("Null value passed to " +
                             "replacementTerm parameter of the replace() method.");
              // Most of the VBA instructions used to perform the search and
              // replace functionality and child automations of Selection.Find,
              // therefore, it is wise to cache that automation first.
              // From the application, get an automation for the Selection property
              childAutomation = this.getChildAutomation(this.wordAutomation,
                   "Selection");
              selectionFindAutomation = this.getChildAutomation(childAutomation,
              "Find");
              // Next, using the cached automation, invoke the 'ClearFormatting'
              // method, validate the returned value and invoke the method.
              // Selection.Find.ClearFormatting
              id = selectionFindAutomation.getIDsOfNames(new String[]{"ClearFormatting"});
              if(id == null) {
                   throw new SWTException("It is not possible to recover an identifier " +
                        "for the ClearFormatting method in WordSearchReplace.replace() " +
                        "when clearing the formatting for the search string.");
              invokeResult = selectionFindAutomation.invoke(id[0]);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "ClearFormatting method in WordSearchReplace.repace() " +
                        "when clearing formatting for the search string.");
              // Now, perform the same function but for the replacement string.
              // Selection.Find.Replacement.ClearFormatting
              childAutomation = this.getChildAutomation(selectionFindAutomation,
              "Replacement");
              id = childAutomation.getIDsOfNames(new String[]{"ClearFormatting"});
              if(id == null) {
                   throw new SWTException("It is not possible to recover an identifier " +
                        "for the ClearFormatting method in WordSearchReplace.replace() " +
                        "when clearing the formatting for the replacement string.");
              invokeResult = childAutomation.invoke(id[0]);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred invoking the " +
                        "ClearFormatting method in WordSearchReplace.repace() " +
                        "when clearing formatting for the replacement string.");
              // Firstly, set the search text.
              // .Text = "search term"
              arguments = new Variant[1];
              arguments[0] = new Variant(searchTerm);
              success = this.setPropertyValue(selectionFindAutomation, "Text", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Text " +
                        "property for the search string in WordSearchReplace.replace().");
              // Next, the replacement text
              // .Replacement.Text = "replacement term"
              childAutomation = this.getChildAutomation(selectionFindAutomation,
              "Replacement");
              arguments[0] = new Variant(replacementTerm);
              success = this.setPropertyValue(childAutomation, "Text", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Text property" +
                        " for the replacement string in WordSearchReplace.replace().");
              // Set the direction of the search - forward in this case.
              // .Forward = True
              arguments[0] = new Variant(true);
              success = this.setPropertyValue(selectionFindAutomation, "Forward", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Forward " +
                        "property in WordSearchReplace.replace().");
              // Tell the search to wrap. Note the literal wdFindContinue relates to
              // a constant that is defined within Word. I have provided a static
              // final to replace it called WD_FIND_CONTINUE
              // .Wrap = wdFindContinue
              arguments[0] = new Variant(WordSearchReplace.WD_FIND_CONTINUE);
    // System.out.println("jose vieira WD_FIND_CONTINUE:" + arguments[0]);
              success = this.setPropertyValue(selectionFindAutomation, "Wrap", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Wrap " +
                        "property in WordSearchReplace.replace().");
              // Set the Format property to False.
              // .Format = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "Format", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the Format " +
                        "property in WordSearchReplace.replace().");
              // Set the MatchCase property to false.
              // .MatchCase = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchCase", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the MatchCase " +
                        "property in WordSearchReplace.replace().");
              // Set the MatchWholeWord property to false.
              // .MatchWholeWord = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchWholeWord", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchWholeWord property in WordSearchReplace.replace().");
              // Set the MatchWildCards property to false.
              // .MatchWildcards = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchWildCards", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchWildCards property in WordSearchReplace.replace().");
              // Set the MatchSoundsLike property to false.
              // .MatchSoundsLike = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchSoundsLike", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchSoundsLike property in WordSearchReplace.replace().");
              // Set the MatchAllWordForms property to false.
              // .MatchAllWordForms = False
              arguments[0] = new Variant(false);
              success = this.setPropertyValue(selectionFindAutomation, "MatchAllWordForms", arguments);
              if(!success) {
                   throw new SWTException("A problem occurred setting the " +
                        "MatchAllWordForms property in WordSearchReplace.replace().");
              // Invoke the Execute command passing the correct value to the Replace
              // parameter. Again, wdReplaceAll is a constant that I have provided
              // a ststic final for called WD_REPLACE_ALL
              // Selection.Find.Execute Replace:=wdReplaceAll
              id = selectionFindAutomation.getIDsOfNames(new String[]{"Execute", "Replace"});
              if(id == null) {
                   throw new SWTException("It was not possible to recover an identifier " +
                        "for the Execute method in WordSearchReplace.replace().");
              arguments = new Variant[1];
              arguments[0] = new Variant(WordSearchReplace.WD_REPLACE_ALL);
              namedArguments = new int[1];
              namedArguments[0] = id[1];
              // There was some indication that the invokeNoReply method should
              // be used when making this call but no, invoke SEEMS to work well
              //selectionFindAutomation.invokeNoReply(id[0], arguments, namedArguments);
              invokeResult = selectionFindAutomation.invoke(id[0], arguments, namedArguments);
              if(invokeResult == null) {
                   throw new SWTException("A problem occurred trying to invoke the " +
                   "Execute method in WordSearchReplace.replace().");
         * Close the active document.
         * @throws SWTException if a problem is encountered invoking any of the
         * OLE methods.
         public void closeFile() throws SWTException {
              int[] id = null;
              Variant[] arguments = null;
              Variant invokeResult = null;
              try {
                   // From the OleAutomation referencing the active document, recover
                   // the id of the Close method.
                   id = this.activeDocumentAutomation.getIDsOfNames(new String[]{"Close"});
                   // If it was not possible to recover the id of the Close
                   // method then throw an exception to notify the user and
                   // terminate processing.
                   if(id == null) {
                        throw new SWTException("It was not possible to recover an " +
                             "identifier for the Close method in " +
                             "WordSearchReplace.closeFile().");
                   // Invoke the Close method on the ActiveDocument automation
                   invokeResult = this.activeDocumentAutomation.invoke(id[0]);
                   // If the invocation of the Close method failed, throw an
                   // exception to notify the user and terminate processing.
                   if(invokeResult == null) {
                        throw new SWTException(
                             "An error occurred invoking the Close method in " +
                             "WordSearchReplace.closeFile().");
              finally {
                   if(this.activeDocumentAutomation != null) {
                        this.activeDocumentAutomation.dispose();
         * Release resources.
         public void dispose() throws SWTException {
              try {
                   // Set the cleaned flag to true. This prevents the method from
                   // running again if it is called from the finalize() method
                   this.cleaned = true;
                   // From the word automation, recover the id of the Quit method
                   int[] id = this.wordAutomation.getIDsOfNames(new String[]{"Quit"});
                   // If the id of the Quit method cannot be recovered
                   // throw an exception - not much good really though.
                   if(id == null) {
                        throw new SWTException("Unable to obtain an id for the Quit " +
                             "property in WordSearchReplace.dispose().");
                   // Invoke Quit
              Variant result = this.wordAutomation.invoke(id[0]);
              // If an error occurs during the invocation, throw an exception.
              // Again though that exception is of limited value.
              if(result == null) {
                   throw new SWTException("A problem occurred trying to invoke the " +
                        "Quit method in WordSearchReplace.dispose().");
         finally {
              // Finally, dispose of the word application automation.
              this.wordAutomation.dispose();
         * The finalize() method has been over-ridden to ensure that resources
         * are correctly released if a WordSearchReplace object is created but
         * not disposed of properly before it becomes eligible for garbage
         * collection. The cleaned flag is used as acheck to ensure that the
         * dispose() method cannot be called more than once.
         public void finalize() throws Throwable {
              if(!this.cleaned) {
                   this.dispose();
         * Creates and returns a 'child' OleAutomation object. The object model
         * employed by Word, Excel and the like, arrange objects, methods and
         * properties hierarchically. To invoke a method, it is often necessary
         * to iterate through this hierarchy from parent to child and this method
         * supports that process.
         * @param automation An OleAutomation object that references the parent
         * automation.
         * @param childName An instance of the String class that encapsulates the
         * name of the child automation.
         * @throws SWTException if a problem is encountered invoking one or
         * other of the OLE methods.
         private OleAutomation getChildAutomation(OleAutomation automation,
         String childName) throws SWTException {
              // Try to recove the unique identifier for the child automation
              int[] id = automation.getIDsOfNames(new String[]{childName});
              // If the identifier cannot be found then throw an exception to
              // terminate processing.           
              if (id == null) {
                   throw new SWTException(
                        "A problem occurred trying to obtain and id for: " +
                   childName +
                   "in the getChildAutomation() method.");
              // SWT's implementation of OLE referes to all of Words objects, methods
              // and properties using the single term 'property'. The next stage
              // therefore is to recover a refence to the 'property' that relates
              // to the child automation.
              Variant pVarResult = automation.getProperty(id[0]);
              // If it is not possible to recover a 'property' for the child
              // automation, then throw an SWTException.
              if (pVarResult == null) {
                   throw new SWTException(
                        "A problem occurred trying to obtain an automation for property: " +
                   id[0] +
                   " in the getChildAutomation() method.");
              // As we are after a child automation in this instance, call the
              // getAutomation() method on the 'property'.
              return(pVarResult.getAutomation());
         * Sets the value of a property.
         * @param automation An instance of the OleAutomation class that will
         * hold a reference to the properties parent automation object
         * @param propertyName An instance of the String class that encapsulates the
         * name of the property whose value is to be set.
         * @param arguments An array of type Variant whose elements contain the
         * values that will be set for the named property.
         * @return A primitive boolean value that indicates whether or not the
         * properties value was successfully set.
         * @throws NullPointerException will be thrown if a null value is passed to
         * any of the methods three arguments.
         * @throws IllegalArgumentException will be thrown if an empty String
         * is passed to the propertyName parameter or if an empty array
         * is passed to the arguments parameter. Note, no check is made
         * on the vallues of the elements in the arguments array.
         * @throws SWTException will be thrown if a problem is encountered
         * imvoking any of the OLE methods.
         private boolean setPropertyValue(OleAutomation automation,
         String propertyName,
         Variant[] arguments) throws SWTException,
         NullPointerException,
         IllegalArgumentException {
              // Validate the various parameters
              if(automation == null) {
                   throw new NullPointerException(
                        "A null value was pas

    Alright, I'll try to keep it as simple as possible. If that's not going to work out, we can always complicate it later :)
    I suppose you had a look at the link and I assume you know about threads.
    We can easily fix this issue if you are instantiating, calling and disposing the object within one thread, e.g. you use it only in one method like
    public mySwtExecutionMethod(String fileName){
      WordSearchReplace replace = new WordSearchReplace();
      // do your replacing here
      replace.dispose();
      // no reference to replace is left so it won't escape this thread
    }Now the fix for your class becomes simple. As you remember from the link, you have to call all methods from within the UI thread. We will now create a Display every time upon instantiation of WordSearchReplace, so the current thread becomes the UI thread.
    I had a look at the constructor, and the overhead doesn't seem that bad, provided this is not a dedicated search&replace server.
    private final Display display;
    public WordSearchReplace()
         display = new Display(); // create display
         this.shell = new Shell(display);   // initialize shell with new display so this thread becomes the UI thread
         this.frame = new OleFrame(this.shell, SWT.NONE);
         this.wordSite = new OleClientSite(this.frame, SWT.NONE, WordSearchReplace.PROG_ID);
         this.wordAutomation = new OleAutomation(this.wordSite);
    }Since we always create a new Display, we should also dispose it. There is already a dispose() method, so we just have to add to it
    display.dispose();That's it!
    If you hold on longer to your reference and this isn't working for you, you'd have to do a lot more synchronizing and that the UI thread still exist as long as the reference.
    Wish you good luck

  • Invalid thread access

    This morning when I opened Flex Builder it fails to open any
    of the files mxml or as for editing and instead gives me the
    following error:-
    Reason for the failure: "Invalid thread access"
    On checking the details it has the following exception in
    there, please advise.
    org.eclipse.swt.SWTException: Invalid thread access

    any advice?

  • SWT:::INVALID THREAD ACCESS

    When im tryin to call a method from sum other class .
    It throws
    org.eclipse.swt.SWTException: Invalid thread access
    i know this has to do with ui threadsand we have to wrap the display by SyncEXec......
    but im not able to do it,,,
    can ne1 help??

    org.eclipse.swt.widgets.Display.asyncExec(new Runnable() {
       public void run() {
         // do your stuff here
    });if only they'd document these things, eh. it's not like it's all there in the help menu, either.....

  • [solved]Subclipse error: invalid thread access

    im still trying to get eclipse with subclipse work. I get to connect to the svn server when importing a project, then after a user and password prompt eclipse tries to check it out as a new project, but then eclipse shuts down.
    After a restart of eclipse nothing had happended. Now if i try it again there is an error message: could not connect to server: invalid thread access.
    Any solutions?
    Last edited by jrs (2009-12-05 10:28:52)

    tsvensson wrote:
    More about the issue here:
    http://subclipse.tigris.org/wiki/JavaHL … 1d77d95b32
    There is currently a bug in the new support for GNOME keyring in Subversion 1.6. It works OK when using the command line,
    but not when other users of the libraries use it. Until this is fixed, you can workaround the problem by turning off this feature.
    To do this, open the file ~/.subversion/config and add the following:
    [auth]
    ### Set password stores used by Subversion. They should be
    ### delimited by spaces or commas. The order of values determines
    ### the order in which password stores are used.
    ### Valid password stores:
    ###   gnome-keyring        (Unix-like systems)
    ###   kwallet              (Unix-like systems)
    ###   keychain             (Mac OS X)
    ###   windows-cryptoapi    (Windows)
    password-stores =
    The empty value for "password-stores" disables the feature. Passwords will be stored in plain text in the auth folder as with all previous version of Subversion.
    This work for me, but I have svn version 1.6.6 , I have changed the file as below:
    ### Section for authentication and authorization customizations.
    [auth]
    ### Set store-passwords to 'no' to avoid storing passwords in the
    ### auth/ area of your config directory. It defaults to 'yes'.
    ### Note that this option only prevents saving of *new* passwords;
    ### it doesn't invalidate existing passwords. (To do that, remove
    ### the cache files by hand as described in the Subversion book.)
    store-passwords = no
    ### Set store-auth-creds to 'no' to avoid storing any subversion
    ### credentials in the auth/ area of your config directory.
    ### It defaults to 'yes'. Note that this option only prevents
    ### saving of *new* credentials; it doesn't invalidate existing
    ### caches. (To do that, remove the cache files by hand.)
    store-auth-creds = no

  • Thread Safety: Invalid Tread Access

    Hello everyone, I'm somewhat stuck in a rut and would appreciate any advice I could get on this problem I'm having. It's a relatively large system but I'll try and be succinct.
    There are two classes in question.
    The first one buids an (SWT) interface, this interface contains a Tree object.
    The second class (traverses a parse tree and) needs to add a TreeItem to the Tree in the first class.
    public class SomeApp extends ApplicationWindow {
         private static Tree tree;
         private Composite composite;
           public SomeApp(Shell parentShell)
                super(parentShell);
                     addMenuBar();
                      addStatusLine();
                    addToolBar(SWT.FLAT);
           public static void main(String[] args) {
                ApplicationWindow viewer = new SomeApp(null);
                      viewer.setBlockOnOpen(true);
                       viewer.open();
           protected Control createContents(Composite parent) {
                getShell().setText("An Application");
                setStatus("Ready");
                composite = new Composite(getShell(), SWT.NONE);
                tree = new Tree(composite, SWT.NONE);
                    try {
                            AnotherClass someClass = new AnotherClass()
                   someClass.addTreeItem()
              } catch (Exception e) {
                   System.out.println("Error:  "+e.getMessage());
              return composite;
    public class AnotherClass
    public AnotherClass(){};
           public void addTreeItem() {
                  try {
                        TreeItem ti = new TreeItem(SomeApp.tree,0);
                        ti.setText("Any old text");
                  catch (Exception e) {
                   System.out.println("Error2:  "+e.getMessage());
              }"Error2: Invalid thread access" is the error message being spat out.
    If anyone could point out which methods/objects need to be static and/or code needs to be synchronised, or any way to make the class/object thread safe I'd be extremely greatful thanks.

    I've resolved this issue thanks.
    "Applications that wish to call UI code from a non-UI thread must provide a Runnable that calls the UI code."
    http://help.eclipse.org/help31/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/swt_threading.htm

  • Invalid Response Code: (500) WSDL could not be generated

    Hello,
    Im trying to test an endpoint of an enterprise service that is already configured through the Service Registry, but, after I log to the backend thtough WSNavigator the following problem occurs,
    Invalid Response Code: (500) WSDL could not be generated. The requested URL was:"http://smindev0.minsur.com.pe:8000/sap/bc/srt/wsdl/bndg_DF046A5091DCB8F1A0FD0017A4770400/wsdl11/binding/ws_policy/document?sap-client=400"
    In the lg viewer I have this exception detail,
    Invalid response code while loading WSDL:
    http://smindev0.minsur.com.pe:8000/sap/bc/srt/wsdl/bndg_DF046A5091DCB8F1A0FD0017A4770400/wsdl11/binding/ws_policy/document?sap-client=400, responseCode: 500
    [EXCEPTION]
    com.sap.engine.services.webservices.jaxrpc.exceptions.WebserviceClientException: GenericServiceFactory initialization problem. [Problem with WSDL file parsing. See nested message.]
    at com.sap.engine.services.webservices.espbase.client.dynamic.GenericServiceFactory.createService_NewInstance(GenericServiceFactory.java:667)
    at com.sap.engine.services.webservices.espbase.client.dynamic.GenericServiceFactory.createService_NewInstance(GenericServiceFactory.java:130)
    at com.sap.engine.services.webservices.espbase.client.dynamic.GenericServiceFactory.createService(GenericServiceFactory.java:119)
    at com.sap.esi.esp.wsnavigator.ManualTestView.createServiceByWSDL(ManualTestView.java:426)
    at com.sap.esi.esp.wsnavigator.ManualTestView.onEventWSDLSelected(ManualTestView.java:1553)
    at com.sap.esi.esp.wsnavigator.wdp.InternalManualTestView.wdInvokeEventHandler(InternalManualTestView.java:526)
    at com.sap.engine.core.thread.execution.Executable.run(Executable.java:96)
    at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314)
    Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.ProxyGeneratorException: Problem with WSDL file parsing. See nested message.
    at com.sap.engine.services.webservices.espbase.client.ProxyGeneratorNew.loadWSDLapi(ProxyGeneratorNew.java:638)
    ... 93 more
    Caused by: com.sap.engine.services.webservices.espbase.wsdl.exceptions.WSDLException: Invalid Response Code: (500) WSDL could not be generated. The requested URL was:"http://smindev0.minsur.com.pe:8000/sap/bc/srt/wsdl/bndg_DF046A5091DCB8F1A0FD0017A4770400/wsdl11/binding/ws_policy/document?sap-client=400"
    at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.loadDOMDocument(WSDLLoader.java:145)
    at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.load(WSDLLoader.java:90)
    at com.sap.engine.services.webservices.espbase.wsdl.WSDLLoader.load(WSDLLoader.java:79)
    at com.sap.engine.services.webservices.espbase.client.ProxyGeneratorNew.loadWSDLapi(ProxyGeneratorNew.java:632)
    ... 97 more
    Caused by: com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (500) WSDL could not be generated. The requested URL was:"http://smindev0.minsur.com.pe:8000/sap/bc/srt/wsdl/bndg_DF046A5091DCB8F1A0FD0017A4770400/wsdl11/binding/ws_policy/document?sap-client=400"
    Please help.
    Thanks & Regards
    SU

    Hello Christian,
       I put the same url in the browser as you said and it shows an error:
      "Unexpected error: Incorrect value: Location URL for subject IF " - "Incorrect value: Location URL for subject IF :SupplierBasicDataByIDQueryResponse_In not found".
      I analyzed the url of the SR, it is,
    http://XXXX:XXX/sap/bc/srt/wsdl/bndg_DF046A5091DCB8F1A0FD0017A4770400/wsdl11/binding/ws_policy/document?sap-client=400
    But, if I change the word "binding" for "allinone" it works.
    I have problems with this when I am working in Web Dynpro importing a web service model from the Service Registry (it always call the url - "with binding word").
    Do you know how can I solve this?
    Thanks
    Regards
    SU
    Edited by: soauniverse on Jan 20, 2010 2:56 PM

  • Multiple threads access the same method.

    Hello,
    I have been trying for a long time to find out multiple threads access the shared data.
    I have written a sample code, there I my intention is that method has to be accessed
    onlny one thread at a time., mean one thread finished the job, then next thread can
    access the shared source. But for this code I am not getting the desired out put what I want. But if I am using synchronized block I am getting the output. Please correct where I got mistake. Please see my code.
    public class TestThread implements Runnable {
         Shared r;
         public TestThread() {
              r = new Shared();
         public static void main(String args[]) {
              Thread t1 = new Thread(new TestThread());
              Thread t2 = new Thread(new TestThread());
              t1.setName("A");
              t2.setName("B");
              t1.start();
              t2.start();
          * (non-Javadoc)
          * @see java.lang.Runnable#run()
         @Override
         public void run() {
              // TODO Auto-generated method stub
              r.count();
    class Shared {
         public synchronized void count() {
              String name = Thread.currentThread().getName();
              System.out.println(name + ":accessed...");
              try {
                   for (int i = 0; i < 5; i++) {
                        System.out.println(name + ": " + i);
              } catch (Exception e) {
                   // TODO: handle exception
    }Thanks
    Bhanu lakshmi.

    It depends on what you synchronize. Non-static methods synchronize on the object, so if you're using several objects, you'll be able to call each from their own thread.
    Make your method synchronized or use only a single object and see the difference.

  • An IOException was thrown trying to access the WSDL at the given URL.

    Hello
    I deployed webservices on weblogic 8.1.5. I defined Security policy on webservices. The server is allowed to access from both inside and outside our domain. When I access with internal ip address, trying to test methods from Launch Test Page from Admin console. When I test a method, it prompts for user name and password. I enter username and password, the invocation is successful.
    After I access Launch Test Page with external ipaddress (from outside the domain), trying to test method, the server did not ask me username and password, I get following exception. The only port open to external world is 80. The apache is configured with wlplugin and divert all trafic to port 7001.
    I was wondering if any one has seen this and how did you fix. Please advise. I appriciate your help.
    Thank you,
    Balaji
    <Apr 18, 2006 5:50:12 AM CDT> <Info> <WebService> <BEA-220094> <An IOException was thrown trying to access the WSDL at the given URL.>
    <Apr 18, 2006 5:50:12 AM CDT> <Info> <WebService> <BEA-220034> <A stack trace associated with message 220094 follows:
    java.io.FileNotFoundException: Response: '403: Forbidden' for url: 'http://XXX.XXX.XX.XX:80/eventws/EventManagementService?WSDL'
    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:425)
    at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:28)
    at weblogic.webservice.tools.wsdlp.DefinitionFactory.createDefinition(DefinitionFactory.java:126)
    at weblogic.webservice.tools.wsdlp.WSDLParser.<init>(WSDLParser.java:76)
    at weblogic.webservice.WebServiceFactory.createFromWSDL(WebServiceFactory.java:108)
    at weblogic.webservice.WebServiceFactory.createFromWSDL(WebServiceFactory.java:84)
    at weblogic.webservice.server.servlet.ServletBase.invokeOperation(ServletBase.java:295)
    at weblogic.webservice.server.servlet.WebServiceServlet.invokeOperation(WebServiceServlet.java:343)
    at weblogic.webservice.server.servlet.ServletBase.handleGet(ServletBase.java:266)
    at weblogic.webservice.server.servlet.ServletBase.doGet(ServletBase.java:158)
    at weblogic.webservice.server.servlet.WebServiceServlet.doGet(WebServiceServlet.java:254)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    >
    <Apr 18, 2006 5:51:32 AM CDT> <Info> <WebService> <BEA-220094> <An IOException was thrown trying to access the WSDL at the given URL.>
    <Apr 18, 2006 5:51:32 AM CDT> <Info> <WebService> <BEA-220034> <A stack trace associated with message 220094 follows:
    java.io.FileNotFoundException: Response: '403: Forbidden' for url: 'http://XXX.XXX.XX.XX:80/eventws/EventManagementService?WSDL'
    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:425)
    at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:28)
    at weblogic.webservice.tools.wsdlp.DefinitionFactory.createDefinition(DefinitionFactory.java:126)
    at weblogic.webservice.tools.wsdlp.WSDLParser.<init>(WSDLParser.java:76)
    at weblogic.webservice.WebServiceFactory.createFromWSDL(WebServiceFactory.java:108)
    at weblogic.webservice.WebServiceFactory.createFromWSDL(WebServiceFactory.java:84)
    at weblogic.webservice.server.servlet.ServletBase.invokeOperation(ServletBase.java:295)
    at weblogic.webservice.server.servlet.WebServiceServlet.invokeOperation(WebServiceServlet.java:343)
    at weblogic.webservice.server.servlet.ServletBase.handleGet(ServletBase.java:266)
    at weblogic.webservice.server.servlet.ServletBase.doGet(ServletBase.java:158)
    at weblogic.webservice.server.servlet.WebServiceServlet.doGet(WebServiceServlet.java:254)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    >
    <Apr 18, 2006 5:54:57 AM CDT> <Info> <WebService> <BEA-220094> <An IOException was thrown trying to access the WSDL at the given URL.>
    <Apr 18, 2006 5:54:57 AM CDT> <Info> <WebService> <BEA-220034> <A stack trace associated with message 220094 follows:
    java.io.FileNotFoundException: Response: '403: Forbidden' for url: 'http://XXX.XXX.XX.XX:80/eventws/EventManagementService?WSDL'
    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:425)
    at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:28)
    at weblogic.webservice.tools.wsdlp.DefinitionFactory.createDefinition(DefinitionFactory.java:126)
    at weblogic.webservice.tools.wsdlp.WSDLParser.<init>(WSDLParser.java:76)
    at weblogic.webservice.WebServiceFactory.createFromWSDL(WebServiceFactory.java:108)
    at weblogic.webservice.WebServiceFactory.createFromWSDL(WebServiceFactory.java:84)
    at weblogic.webservice.server.servlet.ServletBase.invokeOperation(ServletBase.java:295)
    at weblogic.webservice.server.servlet.WebServiceServlet.invokeOperation(WebServiceServlet.java:343)
    at weblogic.webservice.server.servlet.ServletBase.handleGet(ServletBase.java:266)
    at weblogic.webservice.server.servlet.ServletBase.doGet(ServletBase.java:158)
    at weblogic.webservice.server.servlet.WebServiceServlet.doGet(WebServiceServlet.java:254)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)<pre></pre><pre></pre>urlurl

    Hi Francois,
    The JAR file generated by the <clientgen> Ant task, has a static WSDL inside it.
    To get your JAX-RPC client to use it, write code that looks like this:
    MyService_Impl service = null;
    MyServicePort port = null;
    try
    // There are two constructors for every XXX_Impl class.
    // The one that accepts a wsdlURL (as a String) will
    // request the WSDL from the service provider. The
    // no-arg one will just use the statis WSDL in the
    // client.jar generated by the <clientgen> Ant task.
    service = new MyService_Impl();
    port = service.getMyServicePort();
    MyObject response = port.myServiceOperation();
    Again, this will cause the WLS client-side JAX-RPC classes, in the webserviceclient.jar,
    to use the static WSDL (in the client.jar generated by the <clientgen> Ant task)
    to invoke the target web service. It will not send a request to the target web
    service to retrieve it's WSDL, because it already has it.
    Regards,
    Mike Wooten
    Francois Staes <[email protected]> wrote:
    >
    Hello,
    I'm trying to access some simple web services which are implemented using
    some Perl module (don't ask ....).
    After I've gotten their WSDL file, I can successfully generate stubs
    using
    the clientgen ant task.
    However, when I try to access the webservice from within my EJB's, I
    get the
    following error message:
    An IOException was thrown trying to access the WSDL at the given URL.
    java.io.FileNotFoundException: Response: '411: Length Required' for url:
    'http://petest01:8082/cgi-bin/WebStore.cgi'
    It seems as if the perl SOAP implementation doesn't allow me to check
    their
    WSDL file. Just sending the SOAP POST messages works fine.
    I explicitly specified the 'saveWSDL' option to the clientgen task, but
    it
    still tries to access the WSDL file at runtime. Any way to resolv this
    issue?
    Regards,
    Francois Staes.

  • How to consume WSDL from SR in PI 7.1

    Hi,
      How to publish WSDL into SR. How to consume WSDL from SR. Can anybody guide me step by step.
    Thanks & Regards,
    Venkat K

    Hi venkat,
    Check out the blog : /people/daniel.graversen/blog/2008/02/27/publish-services-from-pi-71-to-the-service-registry
    also : https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0f3cf81-e6da-2a10-6891-ef321fdc1a6b
    Thanks,
    Pooja Pandey
    Edited by: Pooja Pandey on Jan 27, 2009 10:26 AM

  • More than one Thread accessing the same records in the database

    Hi, I have more than one thread accessing a synchronized method called getMinPrimaryKey() which gets the lowest of the primary key frm the table based on the a flag which is set to true. once it is retrieved the same method also sets the flag as false so it is not retrieved the second time. so next time a different thread calls this method it should retrieve the next available lowest primarmy key.
    but even when i have the method as synchronized different threads keep returning the same primary key instead of getting the next sequence. can some one let me know where I might go wrong and what could be the solution. is it because when once i retrieve the record and set the flag as false, i also need to commit it?, which could be the reason the select query still picks up the same primary key. please help me out on this.
    thanks,
    Harish

    Correction. If different threads always return the same key then your table isn't getting up dated. If different threads sometimes return the same key, then either the database is committing lazily, or else the threads are calling getMinPrimaryKey on different objects and so are not executing atomically with respect to each other.

  • Exception in thread "main" oracle.wsdl.toolkit.WSDLGenerationException:

    Hi,
    I am creating the PLSQL webservice to support refcursors. but when i am running the command java -jar WebServicesAssembler.jar -config config.xml i am getting this error.
    Exception in thread "main" oracle.wsdl.toolkit.WSDLGenerationException: java.lan
    g.Exception java.sql.Connection is an abstract class: cannot be instanciated
    at oracle.wsdl.toolkit.JavaXSDTypeMapper.getXSDType(JavaXSDTypeMapper.ja
    va:146)
    at oracle.wsdl.toolkit.WSDLGenerator.addOperationToWSDL(WSDLGenerator.ja
    va:466)
    at oracle.wsdl.toolkit.WSDLGenerator.generateWSDL(WSDLGenerator.java:259
    at oracle.wsdl.toolkit.WSDLGenerator.generateWSDL(WSDLGenerator.java:197
    at oracle.wsdl.toolkit.WSDLGenerator.generateWSDL(WSDLGenerator.java:185
    at oracle.j2ee.ws.tools.WsAssmWSDLGenerator.generateWSDL(WsAssmWSDLGener
    ator.java:343)
    at oracle.j2ee.ws.tools.WsAssmWSDLGenerator.generate(WsAssmWSDLGenerator
    .java:171)
    at oracle.j2ee.ws.tools.WsAssembler.assemble(WsAssembler.java:99)
    at oracle.j2ee.ws.tools.WsAssembler.main(WsAssembler.java:71)
    my config.xml file is like this
    <web-service>
    <display-name>Web Service using AASC_Ship_Console</display-name>
    <description>Exposing the PL/SQL package AascShipConsole as a Web Service under the endpoint: /PLSQL/aasc_ship_console
    </description>
    <destination-path>./aasc_ship_console.ear</destination-path>
    <temporary-directory>./tmp</temporary-directory>
    <context>/PLSQL</context>
    <!-- A stateless service based on a PL/SQL package. -->
    <stateless-stored-procedure-java-service>
    <!-- The URL under the context /PLSQL for the service -->
    <uri>/aasc_ship_console</uri>
    <!-- Info needed at publishing time -->
    <class-name>aasc_ship_console.aascImpl</class-name>
    <interface-name>aasc_ship_console.aasc_ship_console</interface-name>
    <java-resource>aasc_ship_console.jar</java-resource>
    <!-- Info needed at runtime - the JNDI DB connection -->
    <database-JNDI-name>jdbc/AppsDataSource</database-JNDI-name>
    </stateless-stored-procedure-java-service>
    <wsdl-gen>
         <wsdl-dir>wsdl</wsdl-dir>
    <!-- over-write a pregenerated wsdl , turn it 'false'
    to use the pregenerated wsdl-->
         <option name="force">true</option>
         <option name="httpServerURL">http://localhost:8888</option>
    </wsdl-gen>
    </web-service>
    if anybody knows the solution, please reply as soon as possible. Its very urgent.
    Thanks in advance.

    Hi,
    I am creating the PLSQL webservice to support refcursors. but when i am running the command java -jar WebServicesAssembler.jar -config config.xml i am getting this error.
    Exception in thread "main" oracle.wsdl.toolkit.WSDLGenerationException: java.lan
    g.Exception java.sql.Connection is an abstract class: cannot be instanciated
    at oracle.wsdl.toolkit.JavaXSDTypeMapper.getXSDType(JavaXSDTypeMapper.ja
    va:146)
    at oracle.wsdl.toolkit.WSDLGenerator.addOperationToWSDL(WSDLGenerator.ja
    va:466)
    at oracle.wsdl.toolkit.WSDLGenerator.generateWSDL(WSDLGenerator.java:259
    at oracle.wsdl.toolkit.WSDLGenerator.generateWSDL(WSDLGenerator.java:197
    at oracle.wsdl.toolkit.WSDLGenerator.generateWSDL(WSDLGenerator.java:185
    at oracle.j2ee.ws.tools.WsAssmWSDLGenerator.generateWSDL(WsAssmWSDLGener
    ator.java:343)
    at oracle.j2ee.ws.tools.WsAssmWSDLGenerator.generate(WsAssmWSDLGenerator
    .java:171)
    at oracle.j2ee.ws.tools.WsAssembler.assemble(WsAssembler.java:99)
    at oracle.j2ee.ws.tools.WsAssembler.main(WsAssembler.java:71)
    my config.xml file is like this
    <web-service>
    <display-name>Web Service using AASC_Ship_Console</display-name>
    <description>Exposing the PL/SQL package AascShipConsole as a Web Service under the endpoint: /PLSQL/aasc_ship_console
    </description>
    <destination-path>./aasc_ship_console.ear</destination-path>
    <temporary-directory>./tmp</temporary-directory>
    <context>/PLSQL</context>
    <!-- A stateless service based on a PL/SQL package. -->
    <stateless-stored-procedure-java-service>
    <!-- The URL under the context /PLSQL for the service -->
    <uri>/aasc_ship_console</uri>
    <!-- Info needed at publishing time -->
    <class-name>aasc_ship_console.aascImpl</class-name>
    <interface-name>aasc_ship_console.aasc_ship_console</interface-name>
    <java-resource>aasc_ship_console.jar</java-resource>
    <!-- Info needed at runtime - the JNDI DB connection -->
    <database-JNDI-name>jdbc/AppsDataSource</database-JNDI-name>
    </stateless-stored-procedure-java-service>
    <wsdl-gen>
         <wsdl-dir>wsdl</wsdl-dir>
    <!-- over-write a pregenerated wsdl , turn it 'false'
    to use the pregenerated wsdl-->
         <option name="force">true</option>
         <option name="httpServerURL">http://localhost:8888</option>
    </wsdl-gen>
    </web-service>
    if anybody knows the solution, please reply as soon as possible. Its very urgent.
    Thanks in advance.

  • Multipe threads access: best way to handle

    Hi,
    I understand that we have issues when multiple threads access the instance variables in a servlet. Do we have the same issue with the local variables? I have a doGet method that has two lines of code.
    line 1: read request parameters and create a data object.
    line 2: make a call to facade to update this object in database.
    What options I have to make sure that there are no concurrent access issues.
    -Deepak

    No, you don't have the same issue with local variables, new ones are created for each thread. You should either avoid adding attributes to a servlet, or synchronize access to them if they are objects (there are no issues with primitive values).

  • Invalid memory access of location error when exporting for iOS

    I have been recently been asked to convert a flash application for us on the iPad. When I try to publish the .ipa file I end up with the following error:
    Invalid memory access of location 0xceip=0x55492db4
    I have no idea what might cause this and my google search of the error message has come up pretty empty. If I remove the document class and republish it works fine so I know it has something to do with my code but I haven't the slightest idea where to start looking so I was hoping someone else had run into a similar error and could point me in the right direction.
    thanks so much
    -Ryan             

    I managed to figure this out through laborious guess and check. Just thought I would share the bug in case anyone else ever runs into it.
    A third party library I was using wrote try catch statements wrong:
    try{
    catch(Error:*){
    No idea why the original author did it like this, probably meant to write "error:*" and didn't release shift fast enough after the "(" but as you might suspect "Error" is a reserved object name to cannot be declared as a paramenter variable
    when replaced with:
    try{
    catch(error:Error){
    the memory access bug went away. What is strange is that the incorrect try/catch statement works just fine when published to swf, air, or android and is only an issue with the iOS converter, and obviously produces a very cryptic error.
    I was using CS5.5 so maybe this has been fixed (if not I would suggest making this a compile time error) but just thought I would post my findings.

Maybe you are looking for

  • ADF installation problem on XP

    Hello, I successfully installed the SOA suite. I'm now trying to install ADF, and running into the error below. Does anyone have any idea what is going on? C:\Documents and Settings\tshab\Desktop\adfinstaller>java -jar runinstaller.jar adfinstaller.p

  • DVI cable choice

    Could someone just confirm for me which dvi cable to buy to connect my mac mini to a lcd monitor? I've been looking on the net and there are dvi male to male, male to female, then there's dvi-i and dvi-d and dual and single link ones?? Just want to m

  • Managed server independence mode startup : VERY slow (2h~)

    Hello there, I'm posting this thread to ask for some help. In my production environnement, where I am running a cluster of several ALSB nodes, a problem showed up when a network card was unplugged on our admin server hardware. You have to know that f

  • How to rename computer in os 10.8

    My late 2011 iMac somehow inherited the name of my previious computer - MacPro G5. How do I remane my curent computer to iMac new or something like that

  • After latest Software Update my iMac goes to a prohibition sign on startup

    iMac Info: 24" Intel Core 2 Duo, 2.66Ghz, 4GB Ram, yadda yadda The latest software update notice I received informed me the following new software was available: * Performance Update (version 1.0) * iMovie Update (version 8.0.5) I told it to install