I've installed a new system disk on my computer.
On my old system I had Oracle XE + Apex 3.1 installed on a data drive in e:\oracleXE
On my new system I installed Oracle XE in e:\oracleXE2. Then copied the contents of E:\oracleXE\oradata\XE to E:\oracleXE2\oradata\XE and hoped everything I had in the old environment would work in the new environment.
My new database starts fine and all the old data is now available.
Unfortunately APEX is not available. When I go to localhost:8080 I get the Oracle XE license agreement page but going to localhost:8080/apex gives a 404 error.
Any suggestions for things I have missed or things to check are welcome.
To answer my own question. I tried to export my apex applications using SQLDeveloper when I got an error message indicating that my temporary tablespace did not have any tempfiles. After adding a tempfile things run as normal.