es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo llamo a un método de Java Spring anotado con @Component?

Tengo un frontend ejecutado por Tomcat y mi procesamiento del backend se ejecuta en Mule.

Toma como ejemplo,

HelloWorld.html

HelloWorld.js

$scope.sayHello = function() {
$http({
method: ‘GET’,
url: $rootScope.serviceUrl + ‘/triggers/greetings/’ + $scope.name
}).success(function (response) {
alert(“Éxito”);
}).error(function () {
alert(“Error”);
})
}

MyTriggers.java

@Component
@Path(“/triggers”)
public class MyTriggers {

@GET
@Produce(“text/plain”)
@Path(“/greetings/{name}”)
@Consume(“text/plain”)
public String sayHello(@PathParam(“name”) String name) {

log.info("Hola, " + name);

return "ÉXITO";

}

}

greeting.xml





Mi resultado sigue arrojando un error, lo que significa que falló a nivel de JavaScript.

No estoy seguro de qué salió mal.

Tomcat se está ejecutando en localhost:8080.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basándose en los fragmentos de código proporcionados, hay algunas posibles razones por las cuales el resultado continúa volviendo como Error:

    1. La variable $rootScope.serviceUrl en HelloWorld.js podría no estar configurada correctamente con la URL correcta para el backend de Mule. Asegúrese de que apunte al punto final correcto para el disparador “greetings”, incluyendo el nombre del host, el puerto y la ruta de contexto correctos si corresponde.
    2. Es posible que la clase Java MyTriggers no esté registrada o configurada correctamente como un recurso de Jersey en el flujo de Mule. Asegúrese de que el archivo greeting.xml esté haciendo referencia correctamente al componente MyTriggers como un bean de Spring dentro del elemento de recursos de Jersey.
    3. Las anotaciones @Produce y @Consume en MyTriggers.java podrían no coincidir con los formatos de solicitud y respuesta esperados para el disparador. En este caso, ambas anotaciones están configuradas como “text/plain”, pero la función JavaScript en HelloWorld.js está esperando una respuesta JSON basada en el uso de $http. Asegúrese de que tanto MyTriggers como la función JavaScript estén utilizando los mismos formatos de solicitud y respuesta.

Comments are closed.