Wednesday, November 15, 2006

IIS not streaming PDF

IIS 6.0 not streaming PDF IE

As is the theme for many of these posts. The setup is IIS -> ISAPI/JK -> Tomcat. The application running on Tomcat is generating PDF. If you access the application directly via Tomcat the PDF content is returned fine - ie. Opens via the Adobe Reader plugin in IE. If you access the application via IIS you get a blank page in IE. All other formats work fine.

The problem in this case was a setting in IIS that zips the content it's serving up. This is fine for HTML as browsers recognise this and unzip. For the Adobe PDF reader, the content is not expected to be compressed - hence the blank page, it doesn't know what to do (but an error message would have helped).

In IIS Manager, right click on the folder "Web Sites" and choose Properties. Click the "Services" tab.

You need to make sure HTML Compression is turned off. I’m not sure about the IIS 5.0 isolation setting ...

Restart IIS – right click the server (above the Web Sites folder) and choose All Tasks > Restart IIS ...

Select the "Restart Internet Services on YOUR-SERVER" option. It will only take only a few seconds (rather than 300).

Tuesday, November 14, 2006

Can't start IIS "World Wide Web Publishing Service" Error 126

Could not start IIS "World Wide Web Publishing Service" "Error 126"

Trying to manually start the WWW service for IIS gives the following message:
"ERROR 126: The specified module could not be found."

The "World Wide Web Publishing Service" goes back to a stopped status. While this service is stopped, in the IIS Manager, the Web Sites folder is marked with an X and none of the Web Sites can be started.

Need to check the Event Logs (Start > Programs > Administrative Tools > Event Viewer)

Clicking on the Application section shows a number of Errors. The most recent two errors were the most relevant:
  • Could not load all ISAPI filters for site/service. Therefore startup aborted.

  • The HTTP Filter DLL C:\[path to a DLL that no longer exists] failed to load. The data is the error.
I had to go into IIS Manager. View the ISAPI Filters (right click the Web Sites Folder > Properties > ISAPI Filters) and remove the filter that was referencing this DLL.

Going back to services, the WWW Publishing Service then starts fine.

Wednesday, November 08, 2006

spring webflow 1.0 build fails

spring webflow 1.0 build sample

Downloaded the latest spring webflow distribution (1.0) and trying to build (just a sample app. in this case) causes NoClassDefFoundError errors ... but surely this is shipped with the right libraries?

[echo] reading ivy config
[ivy:configure] :: Ivy 1.4 - 20061009124215 :: ::

java.lang.NoClassDefFoundError: org/apache/commons/httpclient/UsernamePasswordCredentials

It's not enough to make sure you have Java 1.5+ and Ant 1.6+ ... these must also not have different versions of the dependent libraries.

In my case, there was an different version of apache commons-httpclient in the ant/lib folder ... removing this from the /lib folder or pointing at a 'clean' version of Ant resolves the issue.

Friday, November 03, 2006 spring-beans_2_0.dtd

Keywords: spring-beans_2_0.dtd spring java 2.0 MVC

Following the guide (such as the "Spring Framework MVC application step-by-step") and you get this error about the DTD reference in the -servlet.xml file.

This is an easy one, the file seems to have been renamed ... the DTD is actually accessed from the web. Change the _2_0 to -2.0

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "">

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "">