This week's book giveaway is in the Jython/Python forum.
We're giving away four copies of Hands On Software Engineering with Python and have Brian Allbey on-line!
See this thread for details.
Win a copy of Hands On Software Engineering with Python this week in the Jython/Python forum!

Tim Moores

Saloon Keeper
+ Follow
since Sep 21, 2011
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Rancher Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Tim Moores

The answer, of course, is: it depends. What is the web site like? Meaning, how many concurrent users are there, what are they doing, how much storage do they need.

I host the backend of my app (which has many more users per day than 80) along with a web site in a Tomcat instance that is just one of many on that server.
20 hours ago
The problem with merging PDFs in this way is that PDF content -once created- is tied to particular positions on the screen. So if you have two PDFs with half a page of content each, merging them will (at best) result in a page with both content sort of overlaid on top of each other on the top half of the output PDF.

No free tool I'm aware of can address this on its own (which is why I pointed to Adobe's tools, which may have an API that helps with this, but which will certainly cost you quite a bit).
As I said, PDFBox can do this. Since you are already using it, why are you contemplating some other library?

Copying just parts of a page is quite tricky, no matter which library you use. Unless you have quite some time to spend, or money to license something from Adobe, I advise to leave out that part.
80 is a really small number. How much data will each user store? It sounds as if even a shared server will be able to store the app data and hosting whatever site you have.
1 day ago
Is this a web app where both jar files are located in WEB-INF/lib? If they are, then this kind of error shouldn't occur, unless one of the files -possibly the Weblogic one- is also present somewhere else, most likely in a directory that belongs to the app server rather than the web app. So try to find out if the one of the classes is also present in one of the directories that's part of the server.
1 day ago
Are the jar files that contain those two classes loaded by different classloaders?
1 day ago
How do I access the XYZ file format in java ?

A large database of file extensions be found at and

And if you don't know what type a given file is, they there are various way to determine it programmatically:

An interesting article about Microsoft's binary file formats, especially DOC and XLS, is Why are the Microsoft Office file formats so complicated? (And some workarounds) It also mentions some alternatives to dealing with those formats directly.

  • Jackcess - library to read and write MDB files
  • HXTT Access - commercial pure Java JDBC driver for MS Access

  • CHM
  • JChm - library to read CHM files

  • Excel
  • Apache Commons CSV, Ostermiller Utils, CSVObjects, CSVBeans, opencsv, Java CSV, Super CSV - libraries to read and write CSV files. CSV is not as easy to read and write as it first looks - once all the special cases are considered, one might as well use a library.
  • POI - library to read and write XLS and XLSX files
  • jXLS - library for writing XLS files based on templates
  • Obba works with Excel spreadsheets on Windows
  • OpenXLS - "OpenXLS is the open source version of ExtenXLS - a Java spreadsheet SDK that allows you to read, modify and create Java Excel spreadsheets from your Java applications."

  • Gedcom
  • GDBI
  • gedcom4j
  • GenJ

  • HDF (Hierarchical Data Format)
  • Java products by the HDF Group

  • Image and movie files
  • ImageJ - Java image processing application and library that has plugins for lots of image file formats
  • JIMI - library to read and write BMP, CUR, GIF, ICO, JPEG, PICT, PNG, PSD, Sun Raster, TGA, TIFF, XBM and XPM. There's a plugin for using JIMI with ImageJ, which also includes a couple of JIMI patches.
  • GIF write, TIFF, RAW, PNM and JPEG2000 read/write support for ImageIO: JAI Image I/O Tools
  • TwelveMonkeys| - additions for the ImageIO API
  • MP4 parser
  • Apache Commons Imaging is a library that reads and writes a variety of image formats, including fast parsing of image info (size, color space, ICC profile, etc.) and metadata.

  • INI
  • ini4j "is a simple Java API for handling configuration files in Windows .ini format."

  • Matlab
  • JMatIO - Matlab's MAT-file I/O in JAVA

  • OpenDocument (ODF)
  • ODFDOM is a Java library for accessing ODF files.
  • has an open-source library for accessing all Open Document file types.
  • Obba works with OpenOffice spreadsheets
  • Office2FO converts ODF documents to XSL-FO documents, making possible further transformations (like conversion to PDF using FOP)

  • Office Open XML
  • These are the XML-based Microsoft Office formats, standardized by ECMA, but implemented by Microsoft in a non-compliant way
  • docx4j - create and edit docx documents using a JAXB content model matching the WordML schema
  • Apache POI implements these formats.

  • OpenOffice Java API
  • OpenOffice can read a number of file formats, and makes them accessible through its API. A starting point might be this article and of course the OO developer site
  • Some introductory information about the OO file format can be found here
  • JODConverter is a Java library that uses the OO Java API to perform document conversions between any formats supported by OO

  • Outlook / PST
  • The Apache POI project developed some code that can read the texual contents of Outlook's MSG files. This page talks about that.
  • Xena can convert multiple file formats -including MSG- to XML. Either the result of that conversion, or Xena's source code, may be helpful.
  • JPST can read and extract PST files.
  • java-libpst is a pure Java library that can access 64bit PST files.

  • PDF
  • PDF is a hard to read format. The best one can do is try to extract the text contained in a PDF file.
  • OpenODF is a library to create PDFs built on top of iText2, but still licensed under a business-friendly license. code example - more examples - javadocs
  • PDFBox - library that can create, merge, split and print PDFs, extract text, create images from PDFs, encrypt/decrypt PDFs, fill in PDF forms and more. See PDFBoxExample for example code of how to use it to create a PDF.
  • FOP - library to create PDFs (and other formats) from XML by using XSL-FO transformations
  • FlyingSaucer - library to convert CSS-styled XHTML to PDF
  • JPedal - library for viewing and printing PDFs, can also extract text (how to print PDFs); commercial (the LGPL version provides PDF viewing only)
  • PDFxStream - commercial library to extract text from PDFs
  • PDF Renderer is a more up-to-date PDF viewer that renders using Java2D. Download, Examples, Printing PDFs
  • ICEPdf is another library that can render PDFs.
  • Qoppa offers numerous libraries for PDF-related tasks
  • Aspose.Pdf for Java is a commercial library for reading and writing PDFs
  • jPod is a rich PDF manipulation and rendering framework
  • OrsonPDF is a fast, lightweight PDF generator for the Java platform

  • PowerPoint

  • The Apache POI project developed some code that can open and (to a limited extent) edit PPT files. This page talks about it.

  • Project
  • The MPXJ library can work with several Project file formats.

  • QIF (used by Microsoft Money and Quicken)
  • Buddi and Eurobudget are Java applications that can import and export QIF files (and thus contain code you may be able to use in your application). Both are licensed under the GPL.

  • RTF
  • jRTF can create RTFs
  • iText 2 can create RTFs: jar file, javadocs
  • JavaCC - is a lexer/parser for which an RTF grammar is available. From that an RTF reader can be constructed.

  • Visio
  • The Apache POI project developed some code that can read Visio files. This page talks about that.

  • Word

  • POI - library to read and write DOC and DOCX files. It can also be used for extracting the text of a document.
  • WordApi.exe is native Windows component with a Java interface, which lets you create Word documents, and alter word templates. Some impressions about it can be found here.
  • Java2Word - library to create Word documents, especially reports, on the fly.

  • Something else?
    If you encounter an obscure format for which no library is available, it may be feasible to create a reader for it if you have a file format description (which may be available on Wotsit, see link above). Several libraries, so-called lexers and parsers, are available that help in creating a reader, especially if the file format is ASCII, and not binary. You will need knowledge of regular expressions, though. Some file formats that have been tackled using this approach include RTF, CSV, HPGL and PBM/PGM/PPM. Lexers are easier to start with, but parsers can do more of the work for you. All these have ready-to-use examples on their web sites.

  • Lexers: JFlex (introductory article in the JavaRanch Journal)
  • Parsers: Antlr, SableCC, JavaCC

  • CategoryFaq CategoryHowTo
    1 day ago
    This example shows how to create a document using the Apache PDFBox library. The first page contains text in various styles, fonts and colors. The second page adds an image, draws a couple of lines, and a colored rectangle. While PDFBox can do many things with an existing PDF, its API is somewhat low-level. For example, it's not easily possible to add underline or strikethrough effects to text.

    To get started, download the latest pdfbox-app-X.Y.Z.jar file; it contains everything in one convenient file.

    The same code example for iText 2 (and its API-compatible replacement OpenPDF) and iText 5 can be found here.

    OtherOpenSourceProjectsFaq CategoryCodeSamples CodeBarn
    1 day ago
    I'm not sure what PDFBlock is -a quick web search finds nothing- but Apache PDFBox can do this:
    JavaMail is the standard Java API for handling email. You can indeed use Gmail with JavaMail - see for some information on that.
    2 days ago
    The JMS server would be server process outside of Tomcat, but it can run on the same physical machine, provided it's powerful enough for both.
    You can use a service like Pingdom, which also provides information about site speed. Or you can build something like it yourself.
    3 days ago
    Define "cloud based hoster". There is a wide variety of hosting options - which one might be suitable for you depends on your requirements about which we know nothing.

    As to monitoring uptime and accessibility - you should be monitoring those all the time in an automated fashion, so that you will be alerted you when the site is  slow or unreachable. The hoster's responsibility is to keep the machine running and reachable from the outside; yours is to make sure the software runs as intended.
    3 days ago
    Those rules are for inbound traffic, but you accessing the internet is outbound traffic - if you want to filter or block any of that, you need to do it independently of the inbound rules.
    4 days ago
    Define "more". You're probably underestimating how many messages a mature product like ActiveMQ can handle.
    4 days ago