Skip Navigation LinksHome > Support > Frequently Asked Questions > Troubleshooting Questions

Troubleshooting

  •   Problems with Namespaces?
    • The most common mistake we see is users pointing to the service Namespace instead of its Url. This leads to a 404 or 405 error. For instance, the namespace of the GetQuote operation is http://www.xignite.com/services/GetQuote. That address does not point to a valid URL. The correct URL is http://www.xignite.com/xQuotes.asmx. Review the operation descriptions for details. >
  •   Problems with Parameters
    • Another common mistake is to enclose parameters in quotes (') or double quotes("). If you invoke a Quote for MSFT, the parameter should be MSFT. If you pass 'MSFT' or "MSFT", you should get a "Symbol Not Found" message in response.

      Remember that all parameters with a non-string data type are required. This include numerics, dates and enumerations (which are really numerics).
  •   Diagnosing SystemErrors
    • SystemError is one of the 4 values that the "Outcome" Standard Return Element can take on a return class (The other values are RegistrationError, RequestError, and Success.).

      An outcome value of SystemError indicates a problem on our side. It could be due to a bug, to an environmental issue, or to a database problem. For services that depend on scraping other web pages successfully, it can also be linked to a failure to retrieve the source data. In any case, the problem is not yours, it is ours. We track these problems as they occur so chances are that we are already trying to fix it. If the problem recurs after a few tries and is causing you grief, drop us an email with detailed information about the service and operation you are using as well as the parameters you are submitting.
  •   Diagnosing RegistrationErrors
    • RegistrationError is one of the 4 values that the "Outcome" Standard Return Element can take on a return class (The other values are SystemError, RequestError, and Success.).

      An outcome value of RegistrationError indicates that you have exceeded your request credits. The path to take depends on your current status for the service. Click here to check your subscription status.
      1. Unregistered. If you never registered for a service, simply register and then click on the the "Free Trial" click for the service that you are interested in. This will increase the number of free requests you can place.
      2. Subscribed. If you already subscribed for a service but ran out of requests you should probably consider upgrading your subscription. To review the various subscription options for a service, click on the Subscribe link in the menu or give us a call at 650-655-3700.

      If you registered or subscribed to a service and yet are running into this error while you have remaining credits, it is likely that your request is not authenticated properly. The first thing to do is to find out which method our system uses to authenticate your request. This is provided as a standard data element on all operation. Just check for the value of the Identitydata element:
      1. If Identity = IP, verify that the IP of your server is properly registered. If your IP is dynamic, you should probably use a different method for authentication. You may also bleieve that you are properly passing a SOAP Header with your requests but this header is not being recognized by our system.
      2. If Identity = Cookie, verify that you are passing the proper cookie with your requests. Note that when calling a service using your browser, the system will by default pass a cookie with your requests if it exists while programmatic calls to our web services require you to explicitely pass a cookie with your requests.
      3. If Identity = Request, this means that our system is reading your username from the 'Header_Username' value passed with your POST or GET requests. Verify that you are passing the proper value.
      4. If Identity = Header, this means that our system is reading your username from the Username element from the SOAP Header value passed with your SOAP requests. Verify that you are passing the proper value.
  •   Diagnosing RequestErrors
    • RequestError is one of the 4 values that the "Outcome" Standard Return Element can take on a return class. (The other values are SystemError, RegistrationError, and Success.).

      An outcome value of RequestError indicates that you have formulated an request that cannot be answered. The causes for that are specific to the operation. Use the Message return element to assess the cause of the problem. Examples of problems include:
      1. Missing Required String Parameters. If you omit to provide a DATE, NUMERIC (Integer, Double), or ENUMERATION parameter, you will get a SOAP exception. But if you omit a required STRING parameter, you should receive a RequestError. The Message value will tell you which parameter is missing.
      2. Invalid String Parameter. If you provide a bad DATE, NUMERIC (Integer, Double), or ENUMERATION parameter, you will get a SOAP exception. But if you provide an invalid string parameter, you will get a RequestError. The Message value will tell you which parameter is invalid.
      3. Invalid Request Context. The data you requested does not exist.
  •   Tracing SOAP Requests
    • The SOAP Trace feature is currently unavailable. Please contact us for help with your SOAP requests.

      Troubleshooting problems with SOAP requests can be difficult as development toolkits do not always let you visualize the SOAP request sent to our servers and the response returned. Visualizing such request and response can be helpful in troubleshooting a problem as you can almost instantly verify whether your request was well formed and our response was appropriate.

      To make such diagnosis easier, Xignite provide a tracing mechanism for your SOAP requests. Using this tracing mechanism involves two steps:
      1. Activating tracing for a request.
      2. Viewing the Trace.

      Activating Tracing for a Request

      To activate tracing for a request, you must provide a value for the Tracer parameter of the optional SOAP Header available for all Xignite operations. This Header (simply named Header) accepts three parameters. None of these parameters are required:
      1. Username holds your system Username, which is the email address you provided when registering for the service. You should only provide this value if you are using SOAP headers for authentication. It is not required to provide this value to activate tracing.
      2. Password is currently unused
      3. Tracer is the value you must provide to activate tracing. You should use a very unique value for this argument as Tracer values are common across all users. If someone uses the same name as yours, their trace will override yours. This value can be any valid string containing letters, numbers, and underscore. Do not provide special characters such as / or \. If you need to trace separate operations at the same time, provide a different Tracer value for each operation. The system only lets you view the last request and response for a specific Tracer value.
      The technique to add a soap header to your SOAP request will depend on your developement tookit. If you use VisualStudio.Net, you can follow these instructions:

      When you add a web reference to an Xignite service using VisualStudio.Net, the proxy class that is automatically generated recognizes the optional SOAP Header and makes it easy for you to provide a value:

      VB

      'RemoteQuotes is the web reference to the XigniteQuotes service
      'objRemoteQuote is an instance of the service proxy
      Dim objRemoteQuote as New RemoteQuotes.XigniteQuotes()
      'create an instance of the header
      Dim objHeader As New RemoteQuotes.Header()
      'assign your Tracer value
      objHeader.Tracer = "mytracervalue"
      'assign the header to the service proxy
      objRemoteQuote.HeaderValue = objHeader
      'you can then call any method
      Dim objExtendedQuote as RemoteQuotes.ExtendedQuote = objRemoteQuote.GetQuote("MSFT")

      C#

      ///RemoteQuotes is the web reference to the XigniteQuotes service
      ///objRemoteQuote is an instance of the service proxy
      RemoteQuotes.XigniteQuotes objRemoteQuote = new RemoteQuotes.XigniteQuotes();
      ///create an instance of the header
      RemoteQuotes.Header objHeader = new RemoteQuotes.Header();
      ///assign your tracer value
      objHeader.Tracer = "mytracervalue";
      ///assign the header to the service proxy
      objRemoteQuote.HeaderValue = objHeader;
      ///you can then call any method
      RemoteQuotes.ExtendedQuote objExtendedQuote = objRemoteQuote.GetQuote("msft");

      Viewing the Trace

      You can view your trace by using the ViewTrace operation. You simply need to provide your Tracer value as a parameter and the system will display the last trace for this Tracer value. Note that the system only lets you view the last SOAP request and response for a specific Tracer value.
  •   SOAP Exceptions versus HTTP Errors
    • When you invoke a service using SOAP, our servers will return a SOAP exception. This SOAP exception should be interpreted by your SOAP toolkit and passed back to your calling program. If you test our services using a browser (for instance using our test forms), you will get an HTTP error, not a SOAP exception.
  •   500 Errors
    • You should never get a HTTP 500 error in normal operation mode. There are two causes for HTTP 500 errors:
      1. A major problem on our side.
      2. A problem with your request.


      The first thing you should do is examine possible problems with your request:
      1. Missing Required Parameters.
        All parameters with a non-string data type are required. This include numerics, dates, booleans, and enumerations (which are really numerics). Only missing string values will not cause an HTTP 500 error
      2. Mistyped Enumerations.
        Enumerations are case-sensitive. Make sure you look at the list of valid values in the SOAP, GET or POST description. Our test form makes it easy by using drop-downs but your code must be correct.


      For instance, you may get the following response if you omit an integer parameter:
      System.ArgumentException: Cannot convert to System.Int32.
      If your request is valid and the problem persists, there might be a problem on our side so email us.
  •   403 Errors
    • A 403 Errors indicates that we have blocked access to our computers from your computer. This is extremely unlikely and we will attempt to warn you before taking such a drastic step. Possible causes for blocking your IP are:
      1. Your requests are somehow affecting, maybe even crashing our servers. This could be caused by a malformation of your requests or some problem on our part. In any case, we had to block your IP to prevent further crashes.
      2. We have noticed abusive usage coming from your IP.
      Please contact our support team to address this issue so that we can reactivate your IP.
  •   404 or 405 Errors
    • The most likely cause for a 404 or 405 error (beside a typo in a url) is that your are pointing to the service namespace instead of its url. For instance, the namespace of the GetQuote operation is http://www.xignite.com/services/GetQuote. That address does not point to a valid URL. The correct URL is http://www.xignite.com/xQuotes.asmx. Review the operation descriptions for details.
  •   Error Handling
    • All our return classes inherit from a basic class ('Common') that provides two error return values:
      1. Outcome. This value indicates what happened with the request. You can use them to assess the result of the request on your side. Valid values are:
        1. Success. The request worked properly.
        2. RequestError. Although your request was complete, the combination of parameters you provided led to an 'abnormal' result (e.g. no data found). Use the Message element to learn more about the cause and remedy.
        3. RegistrationError. Your have run out of request credits. To remedy, you should register for the operation or service (this will usually increase the number of requests you can perform). If you are already registered, consider subscribing.
        4. SystemError. Something happened on our side that is not normal. Our system Administrator gets automatically notified of such problems so that we can fix them as they arise. If this error puts you in a predicament, email us right away.
      2. Message. This value holds an informational message related to the Outcome that should help you with troubleshooting. It is empty when Outcome=Success.

      Dealing With Arrays

      Return classes can consist of a single instance or an array (collection) of instances (indicated as ArrayOf... in the WSDL). When the return class is a single instance, you simply need to test for Outcome in that instance. If the result is an array, you should always get at least one instance in the array. If an error occurred, it will be displayed in that first instance. It is therefore safe to test for Outcome in the first instance of the return array.

      Example

      You could safely use the following code:

      VB

      'RemoteQuotes is the web reference to the XigniteQuotes web service
      Dim objQuotes As New RemoteQuotes.XigniteQuotes()
      Dim objQuote As RemoteQuotes.ExtendedQuote = objQuotes.GetQuote("MSFT")
      If Not objQuote Is Nothing Then
         Select Case objQuote.Outcome
            Case RemoteQuotes.OutcomeTypes.RegistrationError
               'add processing for handling subscription problems, e.g.
               label2.Text = "Our subscription to this service has expired."
            Case RemoteQuotes.OutcomeTypes.RequestError
               'add processing for handling request problems, e.g.
               label2.Text = objQuote.Message
            Case RemoteQuotes.OutcomeTypes.SystemError
               'add processing for handling system problems
               label2.Text = "Service is unavailable at this time."
            Case Else
               'add processing for displaying the results, e.g.
               Label1.Text = objQuote.Quote.Last
         End Select
      Else
         'add error processing here
         'this condition is likely caused by a 500 error
         label2.Text = "Service is unavailable at this time."
      End If
  •   Java/Axis Compilation Errors
    • Occasionally developers have run into problems using Java/Axis to work with our web services.
      In GetQuotes you may encounter an error message when attempting to compile the classes:
      C:\axis>java org.apache.axis.wsdl.WSDL2Java http://www.xignite.com/xQuotes.asmx?WSDL
      C:\axis>javac com\xignite\*.java
      C:\axis>

      If you get an error that reads 'Exception in thread 'main' java.lang.NoClassDefFoundError: org/apache/axis/wsdl/WSDL2Java' you should include a cross path with the following files all in one line:
      java -classpath .;activation.jar;mailapi_1_3_1.jar;axis-ant.jar;axis.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;
      jaxrpc.jar;log4j-1.2.8.jar;saaj.jar;wsdl4j-1.5.1.jar org.apache.axis.wsdl.WSDL2Java

      If your error reads 'Not recognized as an internal or external command, operable program or batch file' you should set your "path" environment variable to include the Axis install directory or where the Java executable locates.

      In addition, if you’re getting compile errors make sure you’ve included all your Axis libraries. If you’re getting errors or are not sure you have the most up-to-date libraries, you can always go to the Sun Microsystems website to find and download the latest libraries.
  •   WebExceptions When Calling Xignite Services
    • A WebException can be thrown at any time when calling our services. Refer to the following sample codes for an instance when you can prevent your code from crashing by throwing a WebException.

      The following code calls a web service:
      Dim FuturesWebService As New RemoteFutures.XigniteFutures()
      Dim Exchanges() As RemoteFutures.Exchange = Nothing


      'The FuturesWebService.ListExchanges() call can throw a WebException if it cannot
      'get an Internet connection. Put it in a try-catch block to catch this exception.
      Exchanges = FuturesWebService.ListExchanges()

      Here is the code that would then catch the exception:
      Dim FuturesWebService As New RemoteFutures.XigniteFutures()
      Dim Exchanges() As RemoteFutures.Exchange = Nothing


      'The FuturesWebService.ListExchanges() call can throw a WebException if it cannot
      'get an Internet connection. Put it in a try-catch block to catch this exception.
      Try
      Exchanges = FuturesWebService.ListExchanges()
      Catch ex As System.Net.WebException
      'Handle the exception here. You could show or log an error message like this:
      Console.WriteLine("Unable to get exchanges. Error message = " + ex.Message)
      End Try

      In this example you must enclose the call to ListExchanges () in a try-catch block.
  •   IllegalArgumentException Using ColdFusion
    • Developers using ColdFusion from MacroMedia have run into problems using operations that require one or more Enumerations as parameters. It does not appear that ColdFusion supports Enumerations at this time. The error you may receive when using such an operation will be like:
      Could not perform web service invocation "getRealQuote"
      because java.lang.IllegalArgumentException: argument type mismatch
      The error occurred in [LocalPath]: line 9

      7 : <cfscript>
      8 : ws = createObject("webservice", "http://www.xignite.com/xrealtime.asmx?WSDL");
      9 : realQuote = ws.getRealQuote("Island", "msft", "false");
      10 : </cfscript>


      Here "Island" is the string version of the Enumerated value. To work around this problem, you may want to make a local copy of our WSDL and replace the Enumeration definitions with string definitions and use this WSDL to generate your ColdFusion code. We have not tested this work around.

      If this problem is preventing you from subscribing to a service, please contact us.
  •   The underlying connection was closed: The remote name could not be resolved.
    • You may get this Microsoft.Net error under two circumstances:
      1. You mistyped the url of a web service WSDL or page.
      2. A local, or global DNS (domain name server) problem is preventing your application to map our domain now (xignite.com) to the IPs of our servers.


      First make sure that you did not mistype the url of our service. If the problem persists, please contact us.
  •   Invalid Response From Server: Value cannot be null. Parameter name: s
    • You may get this error when using the HTTP GET or HTTP POST protocol to invoke a web service (not when using SOAP). The problem is that you probably mistyped the name of the operation or the name of a non-string parameter. Check the spelling (case-sensitive) of the operation and parameters in your call and try again.
  •   org.xml.sax.SAXException: Invalid element...
    • If you run into the org.xml.sax.SAXException: Invalid element in com.xignite.www.services.Service exception, where 'Service' is the name of the Xignite web service you are using, the cause is most likely the addition of a new element to a return class in our service.

      Most SOAP parsers are completely unaffacted by the addition of new elements to a return class, this is why we do not notify our clients if we add such an element. Depending on your Axis implementation, you may run into such an exception. This occurs when the SAX parsers fails to deserialize the returned XML document due to the addition of the new element.

      To solve this problem, simply refresh your web reference so that your code knows about the new element.
  •   When using Apache Axis2, the web services call is not returning the data as expected. Why?
    • Apache Axis2 by default allow HTTP content to be chunked. This causes the SOAP request to be broken up into chunks and caused our webservice to return last cached results disregarding symbol, username...etc. So a request of IDX could return results for RUT.

      Following is some sample code that shows how to turn off HTTP chunking before calling our web services:

      XigniteRealTimeStub stub = new XigniteRealTimeStub("http://www.xignite.com/xRealTime.asmx");
      // Begin - code to turn off HTTP chunking
      Options options = stub._getServiceClient().getOptions();
      options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE);
      stub._getServiceClient().setOptions( options );
      // End - code to turn off HTTP chunking
      GetRealQuote quote = new GetRealQuote();
      quote.setExchange(ECNTypes.INET);
      quote.setSymbol(symbol);
      Header3 header = new Header3();
      Header h = new Header();
      h.setUsername("yourusername");
      h.setPassword("yourpassword");
      // Note: if you set the tracer with a different value, the results will not be cached properly.
      h.setTracer("");
      header.setHeader(h);
      GetRealQuoteResponse response = stub.GetRealQuote(quote, header);
      System.out.println(response.getGetRealQuoteResult().getMessage());
      System.out.println(response.getGetRealQuoteResult().getLast() + " : " +
          response.getGetRealQuoteResult().getName() + " : " +
          response.getGetRealQuoteResult().getSymbol());
  •   Problems Consuming Xignite Web Services in Crystal Reports
    • If you run into issues with Crystal Reports, such as:
      Able to use Crystal Reports Wizard to setup the connection, browsing and discovering the various services. But when the data is retrieved, i.e. when the service call is made, problems occur with parameter passing. Also, when data is sometimes returned, Crystal Reports expects ELEMENT tags in uppercase, although they are defined differently in the WSDL.

      Please check your Crystal Reports version, upgrade to Crystal Reports XI Rel.2 SP2 or newer should solve the problem.
  •   Error: The underlying connection was closed: Unable to connect to the remote server
    • You are getting the error message "The underlying connection was closed: Unable to connect to the remote server". When calling a web service, there are several possible causes for this error. But generally it means that your requests are not being able to reach our service.

      Please do the following to diagnose and resolve the problem:

      Try to access the service using a web browser on the same machine as the one calling the service. For example open a browser and navigate to:
      http://www.xignite.com/xofac.asmx/SearchByName?Name=Bin+Laden&Type=Individual&SearchType=Contains&Header_Username=<username>"

      Note that the "username" is your account username. If you get any kind of XML message back then you are able to access the service.

      If you are able to access the service through a browser but not through your code, then the problem is most likely due to a proxy server being used at your end. The web browser has proxy settings, so you can access our web service through the browser without any problem. However, you may not have defined any proxy settings in your code. So the request cannot make it out of your network and causes the type of error you encountered.

      To solve the problem, you have to explicitly set the settings for the proxy.

      Check with your network administrator to confirm the existence of a proxy server, and obtain the IP address for that proxy.

      Then add that proxy configuration to your code.

      For instance, configuring a proxy server in VB.Net is done this way:

      Dim objService As New RemoteRealTime.XigniteRealTime Dim objProxy As New WebProxy("The IP for your proxy") objService.Proxy = objProxy

      If you have already set the IP address of the proxy in your code, the error may caused by the change of proxy configuration. Please check with your network administrator and obtain the new IP address for that proxy.
  •   NetBeans Problems
    • If you are using NetBeans as your Java development IDE, and encounter the following exception when calling our web service operation:

      class xignite.GetGlobalLastClosingPrice do not have a property of the name {http://www.xignite.com/services/}AdjustmentMethod javax.xml.ws.WebServiceException: class xignite.GetGlobalLastClosingPrice do not have a property of the name {http://www.xignite.com/services/}AdjustmentMethod

      The cause of the problem:

      Netbean 5.5.1 uses the JAXB library by default to generate the java classes from the WSDL and for processing the SOAP Requests/Responses. If look into those automatically generated java files, it's easy to found that the classes that use the AdjustmentMethod enumeration contain only the get methods, but no set methods. The limitation of JAXB is the cause of the exception. So far, there is no solution or a patch from Sun that can solve the problem.

      Suggestion:

      1. You can switch your development environment by using Eclipse with axis2 library (and alternative SOAP toolkit, you can get it from this location ).

      2. If you have to stay with NetBeans as you IDE, then you should consider using an alternative SOAP toolkit. You can use the Axis2 library (you can get it from this location) to do the job instead of JAXB library. The following is the detail steps about setting the axis2 library to NetBeans:
      1. Use the following command at your axis bin directory:
        ..\axis2\bin>wsdl2java.bat -uri http://www.xignite.com/xGlobalHistorical.asmx?wsdl -g -ss
      2. copy the ..\axis2\bin\src\com folder to your NetBeans project source folder (same folder contains all the java files you wrote).
      Note: It is important to use the option -g -ss. If you don't use these options, axis will generate a java file that is close to 3MB, and NetBeans seems having trouble to handle such a large java file.
  •   Cookie Problems
    • If you have not exceeded your request credits, and you are trying to use some of the requests from www.xignite.com site, however you are getting the registration error shown as following:

      -<Outcome>RegistrationError</Outcome>
      -<Message>XigniteHoldings: Maximum number of requests exceeded. Consider registering or subscribing to expand usage. Your request was authenticated using your IP address (XXX.XXX.XXX). If you think you received this message in error, please contact us at support@xignite.com.</Message>


      Then the problem is likely caused by the fact that you no longer have the right cookie on your machine. This cookie was added to your machine when you registered, but it could have been deleted since.

      Please open a web browser, go to http://www.xignite.com/xhelp.asmx?op=AddCookie, then type your normal username and submit. This will recreate a Xignite cookie on your computer.
  •   Web Site Login Problems
    • If you are unable to login onto our web site, there are two possible situations:

      1. You registered on our web site after 2/1/2007. In this case you should be able to use the "forgot your password" link to get it reset.

      2. If you registered on our web site before 2/1/2007, the "forgot password" link will not work. This is simply because we added our new web site on 2/1/2007 and any previous registration is out of date. To solve the problem, please register again on https://www.xignite.com//MyAccount/Register.aspx?ReturnUrl=%2fShop%2fFreeTrial.aspx&service=All

      Note: Please use the exact same email address you used last time to register.
 




Hostname: xignite15