Publicando Servicio SOAP
Publicado por Edinson (4 intervenciones) el 16/06/2020 00:20:19
Buenas,
Tengo un proyecto Maven en el cual he implementado un servicio, pero tengo problemas al momento de publicarlo localmente.
Mis WebMethod tienen la siguiente definición:
La implementación de dichos WebMethod tienen la siguiente forma:
ProductoService es una interface cuya implementación realiza la conexión a la BD y realiza las operaciones correspondientes, es decir, en realidad son DAO's. Estoy tratando de inyectar dicho objeto (lo he hecho de manera similar cuando utilizo @AutoWired en una clase @Controller y se inyecta correctamente, pero es la primera vez que trato de inyectar en un @WebService
Ahora, pretendo registrar el servicio:
Cuando ejecuto esto último como Java Application, me arroja un NullPointerException debido a que el objeto svc no se está inyectado.
Por favor una mano, llevo horas dándole vueltas. Soy nuevo en Java generalmente me muevo en .Net.
Saludos y gracias.
Tengo un proyecto Maven en el cual he implementado un servicio, pero tengo problemas al momento de publicarlo localmente.
Mis WebMethod tienen la siguiente definición:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package soap.aldaz.interfaces;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import soap.aldaz.entity.ProductoBean;
@WebService(name = "Producto")
public interface Producto {
@WebMethod
public void save(@WebParam(name = "producto") ProductoBean bean);
@WebMethod
public List<ProductoBean> filtrarXPrecio(@WebParam(name = "minimo") double minimo, @WebParam(name = "maximo") double maximo);
}
La implementación de dichos WebMethod tienen la siguiente forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package soap.aldaz.ws;
import java.util.List;
import javax.jws.WebService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import soap.aldaz.entity.ProductoBean;
import soap.aldaz.interfaces.Producto;
import soap.aldaz.services.ProductoService;
@WebService(endpointInterface = "soap.aldaz.interfaces.Producto")
@Component
public class ProductoImpl implements Producto {
@Autowired
private ProductoService service;
@Override
public void save(ProductoBean bean) {
service.save(bean);
}
@Override
public List<ProductoBean> filtrarXPrecio(double minimo, double maximo) {
return service.filtrarXPrecio(minimo, maximo);
}
}
Ahora, pretendo registrar el servicio:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package soap.aldaz.ws;
import javax.xml.ws.Endpoint;
import org.springframework.beans.factory.annotation.Autowired;
import soap.aldaz.interfaces.Producto;
@Component
public class ProductoRegistro {
@Autowired
private static Producto svc;
public static void main(String[] args) {
String url = "http://localhost:8065/ealdaz/producto?wsdl";
Endpoint ep = Endpoint.publish(url, svc);
System.out.print(ep.isPublished());
}
}
Por favor una mano, llevo horas dándole vueltas. Soy nuevo en Java generalmente me muevo en .Net.
Saludos y gracias.
Valora esta pregunta


0