Byte-ranging implementation (correct version)

I am trying to implement byte-ranging support for WebLogic 6.0.
          Unfortunately, Acrobat Reader does not understand my http response with
          ranges and crashes (or waits for something forever). Does anybody have any
          idea what might be wrong? See my code below.
          Is there a java servlet already that implements byte-ranging?
          Thank you,
          Andrei
          import java.io.*;
          import java.util.*;
          import javax.servlet.*;
          import javax.servlet.http.*;
          /** For testing only, do not look at it. */
          public class ViewFile extends HttpServlet
          public void service(HttpServletRequest req, HttpServletResponse res) throws
          ServletException, IOException
          System.out.println("ViewFile start at " + new Date());
          // Print the headers
          for (Enumeration e = req.getHeaderNames() ; e.hasMoreElements() ;)
          String name = (String)e.nextElement();
          System.out.println("> " + name + ": " + req.getHeader(name));
          // Get the file to view
          String file = req.getPathTranslated();
          // No file, nothing to view
          if (file == null)
          file = getServletContext().getRealPath("/index.html");
          System.out.println(file);
          // OK. Do the job!
          renderFileWithByteRanging(file, req, res);
          System.out.println("ViewFile finish\n");
          /** Represents a single byte range. */
          class Range
          public Range(long start, long end)
          this.start = start;
          this.end = end;
          /** The start of the range (zero based). */
          public long start;
          /** The end of the range. */
          public long end;
          * Parses the incoming ranges into a list of ranges.
          * @param ranges The string containing the ranges.
          * @param fileLength The length of the file.
          public LinkedList parseRanges(String ranges, long fileLength) throws
          Exception
          // Create an empty range list
          LinkedList result = new LinkedList();
          // Remove the "bytes=" part from the range
          int pos = ranges.indexOf('=');
          if (pos == -1)
          throw new Exception("Malformated range request: no '=' symbol");
          if ("bytes".equalsIgnoreCase(ranges.substring(pos).trim()))
          throw new Exception("Malformated range request: 'bytes'
          expected");
          ranges = ranges.substring(pos + 1);
          // Go through the range string and extract the ranges
          StringTokenizer tok = new StringTokenizer(ranges, ",");
          while (tok.hasMoreTokens())
          // Get the next range
          String rangesPart = tok.nextToken().trim();
          // Find a minus separating the range
          pos = rangesPart.indexOf('-');
          if (pos == -1)
          System.out.println("Malformated range request: no '-' symbol");
          continue;
          String strFirst = rangesPart.substring(0, pos).trim();
          String strLast = rangesPart.substring(pos + 1).trim();
          System.out.println("Parsed range: " + strFirst + "-" + strLast);
          long posFirst;
          long posLast;
          if ("".equals(strFirst)) // The first parameter is missing
          // Last n bytes. Example: -500
          posFirst = fileLength - Integer.parseInt(strLast);
          posLast = fileLength;
          else if ("".equals(strFirst)) // The second parameter is missing
          // All bytes except first n bytes. Example: 500-
          posFirst = Integer.parseInt(strFirst);
          posLast = fileLength;
          else // Full range request
          // All bytes from n to m. Example: 500-600
          posFirst = Integer.parseInt(strFirst);
          posLast = Integer.parseInt(strLast);
          // Final checks
          if (posLast > fileLength)
          posLast = fileLength - 1;
          if (posFirst >= posLast)
          posFirst = 0;
          posLast = fileLength - 1;
          // Add the range to the list
          result.addLast(new Range(posFirst, posLast));
          // That's all
          return result;
          /** Put entire file to the outpt stream. */
          public void renderFile(ServletOutputStream sos, File file) throws
          Exception
          FileInputStream fis = null;
          try
          // Create the input stream
          fis = new FileInputStream(file);
          // Allocate the 4K buffer
          byte[] buffer = new byte[4 * 1024];
          // Copy the input to the output
          int bytesRead;
          while((bytesRead = fis.read(buffer)) != -1)
          sos.write(buffer, 0, bytesRead);
          finally
          if (fis != null)
          fis.close();
          /** Put the range of the file to the output stream. */
          public void renderFileRange(ServletOutputStream sos, File file, Range
          range) throws Exception
          FileInputStream fis = null;
          try
          System.out.print("Serving range: " + range.start + "-" + range.end);
          // Create the input stream
          fis = new FileInputStream(file);
          // Skip the first bytes
          if (range.start > 0)
          long skipped = fis.skip(range.start);
          System.out.print("; skipped=" + skipped);
          // Read the requested bytes
          int rangeLength = (int)(range.end - range.start + 1);
          byte[] buffer = new byte[rangeLength];
          int bytesRead = fis.read(buffer, 0, rangeLength);
          // Write the bytes
          if (bytesRead > 0)
          sos.write(buffer, 0, bytesRead);
          System.out.println("; read=" + bytesRead);
          finally
          if (fis != null)
          fis.close();
          /* Calculate multi part content length. May not work properly. */
          public long calculateContentLength(LinkedList ranges, long fileLength,
          String contentType)
          String str;
          long length = -2;
          String boundary = "multipart-boundary";
          for (Iterator i = ranges.iterator(); i.hasNext();)
          // Get the next range
          Range range = (Range)i.next();
          // Render a new boundary
          str = "--" + boundary +
          "Content-type: " + contentType +
          "Content-range: bytes " + range.start + "-" +
          range.end + "/" + fileLength;
          length += 10 + str.length() + range.end - range.start + 1;
          str = "--" + boundary + "--";
          length += 4 + str.length();
          System.out.println("Multi-range response length: " + length);
          return length;
          * Render the specified file to the output stream.
          * The whole file is rendered in binary mode, no other output is
          allowed.
          * @param fileName The name of the file render.
          public void renderFileWithByteRanging(String fileName,
          HttpServletRequest request, HttpServletResponse response) throws IOException
          System.out.println("Serving the file: " + fileName);
          FileInputStream fis = null;
          try
          // Get the output stream
          ServletOutputStream sos = response.getOutputStream();
          // Get and set the type of the file
          String contentType = getServletContext().getMimeType(fileName);
          System.out.println("Content Type: " + contentType);
          // Open file and its length
          File file = new File(fileName);
          long fileLength = file.length();
          System.out.println("File length: " + fileLength);
          // Get ranges
          String httpRange = request.getHeader("Range");
          // Are ranges requested?
          if (httpRange == null)
          // No ranges needed
          System.out.println("No ranges. Proceed in usual way");
          response.setHeader("Accept-ranges", "bytes");
          response.setContentType(contentType);
          response.setHeader("Content-length",
          String.valueOf(file.length()));
          // Disable all kinds of caching
          // response.setHeader("Cache-Control", "no-store");
          // Render the entire file content
          renderFile(sos, file);
          else
          // Well, ranges.......
          System.out.println("Ranges are requested.");
          LinkedList ranges = parseRanges(httpRange, fileLength);
          Range range;
          // Check if we got a single range request
          if (ranges.size() == 1)
          // Yeah... a single range. Return it in the simple form
          (Apache-style)
          System.out.println("Serving a single range.");
          range = (Range)ranges.getFirst();
          sos.println("Status: 206 Partial content");
          sos.println("Content-range: bytes " + range.start + "-"
          + range.end + "/" + fileLength);
          sos.println("Content-length: " + (range.start -
          range.end + 1));
          sos.println("Content-type: " + contentType);
          sos.println();
          sos.println();
          // Render the range of the file
          renderFileRange(sos, file, range);
          else
          // Well... many ranges. Return a multipart response
          System.out.println("Serving multiple ranges.");
          // Render the multi-parse response header
          String boundary = "multipart-boundary";
          sos.println("Status: 206 Partial content");
          sos.println("Accept-ranges: bytes");
          sos.println("Content-type: multipart/x-byteranges; boundary=" +
          boundary);
          // sos.println("Content-length: " + calculateContentLength(ranges,
          fileLength, contentType));
          sos.println();
          // Go through the range list and return the
          corresponding file bits
          for (Iterator i = ranges.iterator(); i.hasNext();)
          // Get the next range
          range = (Range)i.next();
          // Render a new boundary
          sos.println();
          sos.println("--" + boundary);
          sos.println("Content-type: " + contentType);
          sos.println("Content-range: bytes " + range.start +
          "-" + range.end + "/" + fileLength);
          sos.println();
          // Render the range of the file
          renderFileRange(sos, file, range);
          // Finish the multipart response
          sos.println();
          sos.println("--" + boundary + "--");
          System.out.println("Done Serving");
          catch(FileNotFoundException fnf)
          // Send the file-not-found status if we could not open the file
          response.sendError(response.SC_NOT_FOUND);
          System.out.println("File '" + fileName + "' is not found");
          catch(Exception e)
          // Send the internal-error status for all other reasons
          if (!response.isCommitted())
          response.sendError(response.SC_INTERNAL_SERVER_ERROR,
          e.getMessage());
          e.printStackTrace();
          

First just to clarify EBS is currently using OAF and not ADF.
More info here:
http://blogs.oracle.com/schan/2007/06/28#a1721
OAF uses ADF Business Components - so if you want to use ADF to build a system that will integrate with EBS then it would make sense to go to the "ADF Tutorial for Forms/4GL Developers" tutorial.

Similar Messages

  • HT1819 'Byte-Range' request error, but no problems using Advanced menu

    On Windows Vista PC, latest iTunes update:
    No trouble subscribing to podcast feed using Advanced menu. iTunes will even update/load new episodes, but I receive 'byte-range' request error when submitting podcast feed to the directory.
    Is it normal to be able to use the advanced menu option, but not be able to submit the same feed to the podcast directory?
    PS: No trouble subscribing to same feed with Banshee media player using ubuntu Natty Narwhal. All podcast artwork and information intact.

    I'm afraid you've fallen over a requirement that Apple has recently introduced. The iPhone plays podcasts by using 'byte-range requests', which means calling for part of the file at a time rather than the whole thing. Unfortunately some servers don't support this, and there were an increasing number of complaints that podcasts which worked elsewhwere weren't working on an iPhone.
    So Apple are now making the ability to handle this a condition of submission. Evidently your server doesn't support this, so all you can do is to ask them whether they can implement it. If not, you will have to find another hosting service - ask about this before committing yourself, and if they say no, or don't know what it is, find another host.

  • Does anyone know how to enable byte-range requests on Mac OS X Server 10.5?

    I need to be able to host my podcast episodes on the server and iTunes is giving me the error that my episodes are on a server that does not support byte-rnage requests when I try to submnit the podcast feed the iTunes directory. Any help is greatly appreciated! Thanks

    I'm afraid you've fallen over a requirement that Apple has recently introduced. The iPhone plays podcasts by using 'byte-range requests', which means calling for part of the file at a time rather than the whole thing. Unfortunately some servers don't support this, and there were an increasing number of complaints that podcasts which worked elsewhwere weren't working on an iPhone.
    So Apple are now making the ability to handle this a condition of submission. Evidently your server doesn't support this, so all you can do is to ask them whether they can implement it. If not, you will have to find another hosting service - ask about this before committing yourself, and if they say no, or don't know what it is, find another host. Note that if, as some people do, you are hosting the feed and the episodes on different servers, it is the server hosting the episodeswhich is in question.
    If you would like to post the URL of one of your media files it may be possible to check your server - there is a test though I'm not sure it's 100% accurate.

  • Does anyone know how to enable byte-range requests on Mac OS X Server 10.6?

    I need to be able to host my podcast episodes on the server and iTunes is giving me the error that my episodes are on a server that does not support byte-range requests when I try to submit the podcast feed to the iTunes directory. Any help is greatly appreciated! Thanks

    I'm afraid you've fallen over a requirement that Apple has recently introduced. The iPhone plays podcasts by using 'byte-range requests', which means calling for part of the file at a time rather than the whole thing. Unfortunately some servers don't support this, and there were an increasing number of complaints that podcasts which worked elsewhwere weren't working on an iPhone.
    So Apple are now making the ability to handle this a condition of submission. Evidently your server doesn't support this, so all you can do is to ask them whether they can implement it. If not, you will have to find another hosting service - ask about this before committing yourself, and if they say no, or don't know what it is, find another host. Note that if, as some people do, you are hosting the feed and the episodes on different servers, it is the server hosting the episodeswhich is in question.
    If you would like to post the URL of one of your media files it may be possible to check your server - there is a test though I'm not sure it's 100% accurate.

  • Unable to submit podcast due "Enable byte range requests" error

    Hi, I'm trying to submit a podcast feed but the "enable byte range requests" error shows, I'm in the full control of the server so I've tested from another server and the header seems to be correct:
    HTTP/1.1 206 Partial Content
    Date: Mon, 22 Apr 2013 18:40:58 GMT
    Server: Apache/2.2.15 (CentOS)
    Last-Modified: Tue, 02 Oct 2012 20:59:21 GMT
    ETag: "e0adb-546b70-4cb19cbd1fc40"
    Accept-Ranges: bytes
    Content-Length: 101
    Content-Range: bytes 200-300/5532528
    Connection: close
    Any ideas why iTuns keeps showing me that error?
    Thanks in advance

    To anyone who may be interested:
    Now iTunes accepted my podcast submition, the previous feed had near 100 chapters, so I deleted most of them keeping just 4 chapters.

  • Byte-Range Serving - PLEASE HELP

    Hey Everyone,
    I am trying to display very large documents from a servlet and need to stream only the requested bytes to the end-user so they don't have to wait for the entire file to download. I have found an example in perl, but I really want a Java version. Currently my code is set to accept byte ranges and will print out the first range of bytes. The problem is on the second request, when I look for Range in the request header, it is null. I have tried this with both PDF and Word documents and I get the same results for both. Any help anyone could give me would be greatly appreciated. I am under a huge deadline and really need the help.
    Thanks

    Sean,
    Here is the method I am calling within my Servlet...Thanks again for your help.
    private void sendPDF(HttpServletRequest req, HttpServletResponse resp, String fullDoc) throws IOException
              long fByte;
              long lByte;
              StringTokenizer stok;
              String tok;
              String curRange;
              File ckFile = new File(fullDoc);
              String shortFile = fullDoc.substring(fullDoc.lastIndexOf(File.separator) + 1);
              resp.setHeader("Content-Disposition", "inline;filename=\"" + shortFile + "\"");
              String rangeStr = req.getHeader("Range");
              long contentLength = 0;
              // check to see if there was a range specified, First time in from the request.
              if (rangeStr == null)
                   resp.setContentLength((int) (new File(fullDoc)).length());
                   resp.setHeader("Accept-ranges", "bytes");
                   FileInputStream fis = new FileInputStream(fullDoc);
                   BufferedOutputStream out = new BufferedOutputStream(resp.getOutputStream());
                   byte[] inputLine = new byte[1024];
                   int numRead = 0;
                   int byteCounter = 0;
                   resp.setContentType("application/pdf");
                   shortFile = fullDoc.substring(fullDoc.lastIndexOf(File.separator) + 1);
                   try
                        while ((numRead = fis.read(inputLine)) != -1)
                             byteCounter += numRead;
                             out.write(inputLine, 0, numRead);
                             for (int y = 0; y < 10000; y++);
                        fis.close();
                        out.close();
                   catch (SocketException se)
                        fis.close();
              else
                   // remove the "bytes=" off the front of the range string
                   rangeStr = rangeStr.substring(rangeStr.indexOf("=") + 1);
                   // now divide up the ranges into their groups
                   StringTokenizer ranges = new StringTokenizer(rangeStr, ",");
                   long fileSize = (new File(fullDoc)).length();
                   // go through and verify the ranges are valid
                   while (ranges.hasMoreTokens())
                        // get the next range set
                        curRange = ranges.nextToken();
                        // breakup the range set
                        stok = new StringTokenizer(curRange, " ,-");
                        tok = stok.nextToken();
                        // convert the first range to a long value
                        fByte = (new Integer(tok)).longValue();
                        lByte = fileSize;
                        // if there is a second value, convert it too
                        if (stok.hasMoreTokens())
                             lByte = (new Integer(stok.nextToken())).longValue();
                        // test to make sure the ranges are valid
                        if (fByte < 0 || fByte > lByte || lByte > fileSize)
                             // error in range
                             return;
                        contentLength += lByte - fByte + 1;
                   // the ranges are valid, since we pulled out all of the tokens
                   // to check the ranges we need to tokenize again
                   // now divide up the ranges into their groups
                   ranges = new StringTokenizer(rangeStr, ",");
                   // set some header stuff
                   String boundary = "multipart";
                   resp.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
                   resp.setHeader("Accept-ranges", "bytes");
                   resp.setHeader("Content-Length", String.valueOf(contentLength));
                   resp.setHeader("Content-Range", rangeStr);
                   resp.setContentType("multipart/x-byteranges; boundary=" + boundary);
                   // open the output stream
                   ServletOutputStream out = resp.getOutputStream();
                   out.flush();
                   while (ranges.hasMoreTokens())
                        curRange = (String) ranges.nextElement();
                        stok = new StringTokenizer(curRange, " ,-");
                        long fTok = (new Integer(stok.nextToken())).longValue();
                        if (stok.hasMoreTokens())
                             fByte = fTok;
                             lByte = (new Integer(stok.nextToken())).longValue();
                        else
                             if (curRange.startsWith("-"))
                                  fByte = fileSize - fTok;
                                  lByte = fileSize;
                             else
                                  fByte = 0;
                                  lByte = fTok;
                        long bytesToRead = lByte - fByte + 1;
                        out.println();
                        out.println("--" + boundary);
                        out.println("Content-type: application/pdf");
                        out.println("Content-Range: bytes " + fByte + "-" + lByte + "/" + fileSize);
                        out.println();
                        // open the file and send it!
                        FileInputStream fis = new FileInputStream(fullDoc);
                        fis.skip(fByte);
                        byte[] inputLine = new byte[1024];
                        int bytesRead = 0;
                        try
                             while (bytesToRead > 0)
                                  if (bytesToRead < inputLine.length)
                                       bytesRead = fis.read(inputLine, 0, (int) bytesToRead);
                                  else
                                       bytesRead = fis.read(inputLine);
                                  if (bytesRead < 0)
                                       break;
                                  bytesToRead -= bytesRead;
                                  // write the bytes out to the browser
                                  out.write(inputLine, 0, bytesRead);
                                  out.flush();
                             if (bytesToRead != 0) System.out.println("bytesToRead is not zero: " + bytesToRead);
                             fis.close();
                             out.flush();
                        catch (SocketException se)
                             fis.close();
                   // close the current boundary
                   out.println();
                   out.println("--" + boundary + "--");
                   // close the output stream
                   out.close();

  • I am using an Mac PPC version 10.5.8 and I am trying to download the correct version of Flash Player.  I did once but I had to install a "Clean Install" of my computer and when finished I had put back the new Flash Player I just installed well every time

    I am using an Mac PPC version 10.5.8 and I am trying to download the correct version of Flash Player.  I did once but I had to install a "Clean Install" of my computer and when finished I had put back the new Flash Player I just installed well every time I try install the new player it is place in my Trash Folder and I can not get Player to work.  I did everything I was to install it correctly but it still does not install it correctly.  Can some help me.  Bob

    Some MacBook Pro versions cannot be upgraded past 10.6.8; others are maxed out at 10.7.5. newer models can go all the way to 10.10. So it is important to know exactly what version you have--there may be close to 40 variants produced since the MB made its debut in 2006.
    You can safely give us a snapshot of your model and its current config that will allow us to deternmmine your model and its upgrade potential, plus show it you have any software that may impede any upgrades. Please download and install this free utility:
    http://www.etresoft.com/etrecheck
    It is secure and written by one of our most valued members to allow users to show details of their computer's configuration in Apple Support Communities without revealing any sensitive personal data.
    Run the program and click the "Copy report to clipboard" button when it displays the results. Then return here and paste the report into a response to your initial post. It can often show if any harmful files/programs are dragging down your performance.
    Remember that, on leaving OS10.6.8, you lose the ability to run older softare written for older PowerPC Macs (yours in Intel-based). Programs such as Office 2004 will no longer work (min of Office 2008 needed to work on newer OS versions), and AppleWorks will stop working completely

  • How do I choose and then install the correct version of Adobe Flash Player for my machine?

    First thing - My computer -   PROCESSOR: Intel Celeron 450 @2.2 Ghz,  MEMORY: 4GB,  OS:  Windows 7 Home Premium SP1 64 bit,  BROWSER:  IE 9.0.8112.16421
    Everything was hunky-dory until the auto-installer updated my version to the Flash Player 11.2 version and that's when it all went downhill.  As soon as it installed that version, none of the TV networks, news networks or Hulu recognized that I had Adobe Flash Player.  In addition, I could no longer create a blank new tab in IE or use the tools button (the little gear symbol) in the upper right hand of an IE window.  Because of the IE problems, I figured it was a problem with IE and went about searching for a solution in that arena.  I finally found something at Microsoft that helped me determine if it was an IE problem and went through the various steps.  The final step required booting into safemode and trying to replicate the problem.  IE worked fine in safemode so, Microsoft determined the problem had to be with outside influences.
    After several frustrating attempts with other fixes including virus scanning and firewall settings, the problem persisted.  I then un-installed Flash Player per Adobe's instruction and re-installed the recommended 'latest' version.  The problem remained.  So, when all else had failed I did a full system restore to a point over a month ago, which is prior to the occurence of the problem, while at the same time noting which drivers and programs would be affected.  I already had a sneaking suspicion that it was Flash Player because I read the full system requirements for the recommended version that the auto installer was trying to install (see below).  I then began updating everything one at a time to see if any of the windows/software/driver updates had any affect on IE.  None did until I got to the Adobe Flash Player and updated it.
    Now, what I think the problem is:  The auto installer ONLY looks at Operating System and Browser to determine which version of Adobe Flash Player is correct.  In this regard, my machine should use the latest 11.2 version.  HOWEVER, if you look at the full system requirements for the 11.2 versions, you will note that it requires a...... 2.33 Ghz processor!  In this regard, 11.2 is NOT the correct version for my machine as it only has a 2.2 Ghz processor.  And I think therein lies the problem.
    So.  I freely admit that I am not a computer expert and am, in fact, so far removed from ever even contemplating wearing such a title that I'm sure all who read this are sitting in your offices having a good laugh at my expense.  As such, I welcome anyone and everyone to tell me what I've done wrong and how I should go about fixing it.  If my deductions are correct, then could someone please tell me how to choose the correct version for my machine and then tell me how to actually install it on my machine.
    I know that this is a long post and I thank you all for your patience and any help you choose to offer me.

    Mr. Willener,
    Thank you for your reply.
    I did un-install and then re-install per the Adobe recommendations which are what you listed in your reply.  The problem remained until I did a MS Windows restore to a restore point a month or so ago.  The IE problems vanished.  However, now I'm using an outdated and unsupported version that is lower than most of the web pages require for their sites, at least the ones I want to view (they all say I need to upgrade my Flash Player which, when I did, put me in this fix).
    As to:
    Pat Willener wrote:
    Usuallyexasperated wrote:
    it requires a...... 2.33 Ghz processor!
    You can safely ignore that requirement; it is simply not true.
    Why would Adobe post a system requirement of 2.33 Ghz for 11.2 if it simply were not true?
    Message was edited by: Usuallyexasperated

  • Byte Range Requests

    Hi,
    Any help on this topic would be much appreciated.
    The following feed was recently working on iTunes, but seems to have stopped working.
    http://www.backpagelead.com.au/podcasts?format=feed&type=rss
    I understand the issue with byte-range requests and am trying to get an answer from a hosting company.
    In the meantime, is there anything in particular in my RSS feed that I should look out for that could be causing a problem?
    Cheers,
    Brendan

    The page you link to shows the link as text rather than a link:
    The Geoffery Podcast Episode 13: The One With The Balance Pt. II: The Sequel of the Sexes.
    <a href=”http://dl.dropbox.com/u/63074747/the%20geoffery%20podcast%2013.mp3”></a> 
    Lissa, Bre and Dexter made a podcast
    This link therefore doesn't work, though the one on the word 'podcast' does and the file plays OK. Your feed still has no 'enclosure' tags in it so no media files will appear in iTunes. This is something you will have to sort out with Tumblr: there will be a way of making it work since other people have Tumblr based podcasts.

  • Need to dowload correct version of Firefox for Mac OS X 10.3.9

    I have an old Mac which I will be retiring soon...as soon as I can get my information off it. To do so, I need to be able to use Firefox to upload it to a cloud storage system. But... I need the correct version of Firefox which will work with my old system. Any ideas? I certainly appreciate it.

    The last version of Firefox to work on OS X 10.3.9 was Firefox 2.0.0.20, you can get it from ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.20/mac/en-US/
    That link is for the English-US version.

  • Correct version of jdeveloper to use with Oracle App Server 10g 10.1.2.0.2

    Hi,
    I just want to be sure, I am new to JDeveloper and I would just like to verify/ask what correct version of JDeveloper should we use so we could deploy the finished applications on our Oracle Application Server 10g 10.1.2.0.2 without errors?
    Looking at this support matrix: http://www.oracle.com/technology/products/jdev/htdocs/11/as_supportmatrix.html#1013
    I think we can use JDeveloper 10g (10.1.2)?
    I downloaded Jdeveloper 10.1.2 from this link: http://www.oracle.com/technology/software/products/jdev/htdocs/soft10g.html.
    Will this work well with Oracle Application Server 10g 10.1.2.0.2?
    Thank you very much,
    Mickey
    Edited by: [email protected] on Aug 13, 2009 2:20 AM

    Yes, it works well.
    --olaf                                                                                                                                                                                                                                       

  • Correct version of Memory analyzer

    HI
    I have installed the memory installer from https://www.sdn.sap.com/irj/sdn/wiki?path=/display/java/javaMemoryAnalysis&.
    And I have also gone through the 10 min video course available at
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f0a5d007-a35f-2a10-da9f-99245623edda.
    But when I try to do the same analysis that what they explained in the video course, I found that options are not available in the tool that I downloaded. Could you plz advise where can I get the correct version of the tool or video course ??
    Thanks
    kumar

    Hi Kumar,
    you have downloaded the latest version of the tool. It is the video tutorial that is a little bit out of date. Most of the features are available in the current version of Memory Analyzer, but the menues and toolbar buttons might look different (e.g. the icons were replaced).
    If you list the functions you are missing (cannot find) - I will guide you how to find them.
    Best Regards,
    Elena.

  • I talked to your guys yesterday about installing correct version of Lightroom 5 which I legally owned, and your guy provided me a download link (different from Creative cloud account), but somehow it was for Windows version not for Mac version. I would ve

    I talked to your guys yesterday about installing correct version of Lightroom 5 which I legally owned, and your guy provided me a download link (different from Creative cloud account), but somehow it was for Windows version not for Mac version. I would very much like to download a Mac version, so please send my correct web link. By the way my s. number for Lightroom 5 up is [removed], and I also have s.number for 4 up and 3 full.

    The latest non-CC version of LR 5 is 5.7.1 and download links are available on the Adobe Updates page:
    http://www.adobe.com/downloads/updates/
    Both Mac and Win links are there.
    If you are asking for a LR 5 CC link, which wouldn't require a serial number, please be more clear about that.

  • TS1424 error when submitting a podcast rss: byte-range requests

    Hi when I submit rss feeds now I'm getting an error message that we need to enable byte-range requests.
    I saw this article:
    http://theaudacitytopodcast.com/itunes-changes-podcast-specs-and-features/
    saying that " iTunes now requires all hosting servers to enable Byte Range Requests"
    my podcast mp3 is hosted in CDN that, as I've checked, supports range requests.
    but my rss feed contains urls that first return a redirect, to the real url (where range requests are supported)
    could this be a problem? are redirects on episode urls supported (they were until now)? should I modify the redirect response somehow to indicate that range requests are supported on the target server (I thought that shouldn't be necessary)?
    take this as a feed example: http://www.blogtalkradio.com/djsqwyd.rss
    Thanks in advance,

    URL:
    https://www.seven-thoughts.com/rss/rss.xml

  • Error message when uploading: my server does not support byte-range requests

    Hi I am trying to get a pocast up on itunes - I am first just sending a test mp3 - ebenezer.bruceclark.eu/podcast.xml. I have validated the xml keeping it to a minimum and constantly get the message saying my server does not support byte-range requests. Once I got some meassage about "White spaces are required between publicId and systemId". It all seems so random I am using Drupal 7 cms with views_rss module + itunes elements. It's been my 3rd night into the early morning and I need to sort this out for my client.
    Thanks to anyone who can help
    Bruce

    Your feed does not contain an 'enclosure tag' which would contain the URL of your mp3 file, so at the moment it basically has no content and would be of no use to iTunes. You may find it helpful to read this page which gives you basic information on making a podcast:
    http://rfwilmut.net/pc
    Note that when you do get it working and submitting, the iTunes Store won't accept a podcast which is merely a technical test: they need to see at least one proper episode so that they can check that your podcast does not contain unsuitable material.

Maybe you are looking for