@delete Restful - Relativer Pfad zu Upload Ordner ermitteln

Andyx1975

Mitglied
Hallo,

ich habe für die Jersey Implementierung einen RestFul geschrieben, der per JPA / EclipseLink Daten aus der DB löscht. Hierbei handelt es sich um uploads, die auf der Server unter "WEB-INF/uploads" gespeichert werden. Beim Aufruf des Restful soll natürlich auch der File aus dem Verzeichnis gelöscht werden. Der "filePath" stimmt jetzt natürlich nicht, da er den Ordner "WEB-INF/uploads" nicht findet. Wie kann ich den richtigen relativen Pfad auf dem Server ermitteln?

Danke
Andy


Der RestFul sieht wie folgt aus.
Java:
@DELETE
    @Path( "delete/upload/{id}" )
    @Produces( MediaType.APPLICATION_XML )
    public DUpload deleteEmail( @PathParam( "id" ) long id)
    {
        
        DUpload upload = null;
        EntityManager em = factory.createEntityManager();
        
        try
        {
            EntityTransaction entr = em.getTransaction();
            boolean committed = false;
            entr.begin();
            try
            {
                upload = em.find( DUpload.class, id );
                String filePath = "uploads/" + upload.getUpload_link();
                System.out.println(filePath);
                File file = new File(filePath);
                file.delete();
                
                
                em.remove( upload );
                entr.commit();
                committed = true;
            }
            finally
            {
                if ( !committed )
                    entr.rollback();
            }
        }
        finally
        {
            em.close();
        }

        return upload;
    }
 
Zuletzt bearbeitet:
Das Problem hat sich mittlerweile erledigt. Ich habe mir einfach eine Klasse (z.B. DEmail) ausgesucht und die folgende Methode verwendet:

Java:
String filePath = DEmail.class.getResource( "/" ).getPath()

Die Methode liefert mir den Pfad zurück wo diese auf dem Server platziert ist. Durch String manipulation kann ich mich zu dem gewünschten Ordner navigieren, da die Ordnerstruktur innerhalb des WAR Verzeichnisses immer gleich bleibt.
 
Zurück