Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Web services en netbeans insertar datos en dos tablas

Estas en el tema de Web services en netbeans insertar datos en dos tablas en el foro de Java en Foros del Web. Buenas, verán tengo un problema, estoy realizando un web services y todo me va bien cuando a través de ese web service inserto datos en ...
  #1 (permalink)  
Antiguo 17/12/2015, 18:17
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Mensaje Web services en netbeans insertar datos en dos tablas

Buenas, verán tengo un problema, estoy realizando un web services y todo me va bien cuando a través de ese web service inserto datos en una sola tabla, aquí el ejemplo:

Código:
 @POST
    @Path("Guardar")
    @Consumes({"application/json"})
    @Produces("text/plain")
    public String guardar(Activo entity) {
        em.persist(entity);
        em.flush();
        return "Activo guardaddo " + entity.getNumeroSerie();
    }
Me guarda perfecto, ahora lo que quiero es que a partir de lo que inserte en ese web service yo guarde en otra tabla, la cual llevaría el historial de lo que se realiza.
Intente hacer lo siguiente:

Código:
@POST
    @Path("Guardar")
    @Consumes({"application/json"})
    @Produces("text/plain")
    public String guardar(Activo entity) {
        em.persist(entity);
        em.flush();
        String oficina,incidencia,activo,usuario,actividad,tipoMovimiento,observaciones;
        int idIncidencia,idActivo,idUsuario;
        Date fecha;
        oficina = entity.getIdOficina().getNombreOficina();
        idIncidencia = 0;
        incidencia = "No";
        idActivo = 0;
        activo = String.valueOf(entity.getNumeroSerie());
        idUsuario = X;
        usuario = "USUARIO";
        actividad = "ALTA DE ACTIVO";
        fecha = new Date();
        tipoMovimiento = "ALTA DE ACTIVO";
        observaciones = "SE DIO DE ALTA";
        guardaHistorial(oficina, idIncidencia, incidencia, idActivo,
            activo, idUsuario, usuario, actividad, fecha, tipoMovimiento,
            observaciones);
        return "Activo guardaddo " + entity.getNumeroSerie();
    }
Mi método es este:

Código:
public String guardaHistorial(String oficina, int idIncidencia, String incidencia, int idActivo,
            String activo, int idUsuario, String usuario, String actividad, Date fecha, String tipoMovimiento,
            String observaciones) {
        HistorialActivos historial = new HistorialActivos();
        historial.setOficina(oficina);
        historial.setIdIncidencia(idIncidencia);
        historial.setIncidencia(incidencia);
        historial.setIdActivo(idActivo);
        historial.setActivo(activo);
        historial.setIdUsuario(idUsuario);
        historial.setUsuario(usuario);
        historial.setActividad(actividad);
        historial.setFecha(fecha);
        historial.setTipoMovimiento(tipoMovimiento);
        historial.setObservaciones(observaciones);
        em.persist(historial);
        em.flush();
        return "Activo guardado en historial";
    }
Pero no funciona, me manda el sigueinte error: POST RequestFailed RequestFailed --> Status: (400)
Response: {

HTTP Status 400 - Bad Request

--------------------------------------------------------------------------------

type Status report

messageBad Request

descriptionThe request sent by the client was syntactically incorrect.

--------------------------------------------------------------------------------

GlassFish Server Open Source Edition 4.1

}

Alguna idea. Gracias
  #2 (permalink)  
Antiguo 18/12/2015, 15:36
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Web services en netbeans insertar datos en dos tablas

El error 400 te está diciendo que la llamada que haces es incorrecta, no se llega a ejecutar tu código.

http://www.checkupdown.com/status/E400_es.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 14/01/2016, 22:28
LDN
 
Fecha de Ingreso: diciembre-2015
Mensajes: 22
Antigüedad: 8 años, 4 meses
Puntos: 0
Mensaje Respuesta: Web services en netbeans insertar datos en dos tablas

Les comento, solucione el problema, veran al querer mandar la oficina esta me la enviaba con valor nulo, lo que tuve que hacer fue: realizar un query nativo, algo como esto:

Código:
Query query = em.createNativeQuery("SELECT ID_OFICINA, NOMBRE_OFICINA FROM OFICINAS WHERE ID_OFICINA = \""+entity.getIdOficina().getIdOficina()+"\"", Oficinas.class);
        List<Oficinas> listOficinas = (List<Oficinas>)query.getResultList();
        for(Oficinas oficinas: listOficinas) {
            oficina+= oficinas.getNombreOficina();
        }
Donde claramente yo puedo obtener el id de la oficina, y haciendo el query logre obtener lo que quería.

Etiquetas: netbeans, services, string, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:34.