Java Web Service中方法URL的问题

时间:2018-09-25 13:42:19

标签: jpa java-ee jersey angular5

我对Java和angular中的Web服务有疑问。 当我用角度进行编辑操作时,该操作将成为加法操作。数据无法更改,而是添加到表格中

这是我的jpa(utilisateurJPA.java)

@Override
public void update(Utilisateur object) {
    EntityManager em = emf.createEntityManager();
    try {
        em.getTransaction().begin();
        em.merge(object);
        em.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
        LOGGER.error("Erreur lors de la mise à jour d'un Utilisateur");
    } finally {
        if (em.getTransaction().isActive())
            em.getTransaction().rollback();
        em.close();
    }   
}

这是我的休息(utilisateurRest.java)

// Mise a jour d'un enregistrement de type utilisateur
    @Path("/update")
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public void update(Utilisateur utilisateur) {
        jpa_utilisateur.update(utilisateur);
    }

这是我的corsfilter(CorsFilter.java)

package com.ws.util;

import java.io.IOException;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.container.PreMatching;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Provider;

@Provider
@PreMatching
public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext request) throws IOException {
        if (isPreflightRequest(request)) {
            request.abortWith(Response.ok().build());
            return;
        }
    }

    private static boolean isPreflightRequest(ContainerRequestContext request) {
        return request.getHeaderString("Origin") != null
                && request.getMethod().equalsIgnoreCase("OPTIONS");
    }

    @Override
    public void filter(ContainerRequestContext request, ContainerResponseContext response)
            throws IOException {
        if (request.getHeaderString("Origin") == null) {
            return;
        }
        if (isPreflightRequest(request)) {
            response.getHeaders().add("Access-Control-Allow-Credentials", "true");
            response.getHeaders().add("Access-Control-Allow-Methods",
                "GET, POST, PUT, DELETE, OPTIONS, HEAD");
            response.getHeaders().add("Access-Control-Allow-Headers",
                "Origin, X-Requested-With, Content-Type, Accept, Authorization, " +
                "Accept-Version, Content-Length, Content-MD5, CSRF-Token");
        }
        response.getHeaders().add("Access-Control-Allow-Origin", "*");
    }
}

这是我在angular(utilisateurService.service.ts)中的服务

import { Utilisateur } from "../modeles/utilisateur";
import { HttpClient } from "@angular/common/http";
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";

@Injectable({
  providedIn: 'root'
})
export class UtilisateurService {

  constructor(private http: HttpClient) { }

  getAll(): Observable<Utilisateur[]> {
    return this.http.get<Utilisateur[]>('http://localhost:8080/Gestion_tache/tache/utilisateur/getall');
  }

  getById(id: number): Observable<Utilisateur> {
    return this.http.get<Utilisateur>('http://localhost:8080/Gestion_tache/tache/utilisateur/' + id);
  }

  add(utilisateur: Utilisateur): Observable<Utilisateur> {
    return this.http.post<Utilisateur>('http://localhost:8080/Gestion_tache/tache/utilisateur/add', utilisateur);
  }

  edit(utilisateur: Utilisateur): Observable<Utilisateur> {
    return this.http.post<Utilisateur>('http://localhost:8080/Gestion_tache/tache/utilisateur/update', utilisateur);
  }

  supp(utilisateur: Utilisateur) {
    return this.http.post('http://localhost:8080/Gestion_tache/tache/utilisateur/delete', utilisateur);
  }
}

这是我的编辑组件(editUtilisateur.component.ts)

edit(utilisateur) {
    this.utilisateurService.edit(utilisateur)
        .subscribe( data => {
          alert('Utilisateur modifiée');
          this.location.back();
        });
  }

0 个答案:

没有答案