JAXWS con Spring 3
Hola a todos pues el motivo del post es comentarles que actualmente por hazares del destino jaja Ok ya a lo que vamos,
estamos empezando un proyecto estilo SOA, donde vamos a comuincar todo via jaxWs si los ws de Java jejee XD, pues resulta que para la parate de BackEnd usarmos spring3 con el poderosisimo JDBCTEMPLATE y pues necesito inyectar un servicio @service, en una clase de webService java @webService, segun la documentacion de spring hay que hacer un bean que consuma solamente la URL del endPoint pero nome queda claro como hacerlo y el ejemplo que ponen es algo ambiguo quiero preguntar si alguien ya lo ha hecho y si es asi como se hace? un ejemplito no caeria mal jeje XD, les dejo el codigo del o que tengo hecho en hasta el momento. deantemano gracias
public class UsuarioWS {
@Autowired
private UsuarioServico usuarioServico;
/**
* Método que expone el servicio de consulta de usuario por ID
* @param id
* @return
*/
@WebMethod
public Usuario consultarUsuarioPorId(int id){
Usuario usuario= usuarioServico.consultarUsuarioPorId(id);
return usuario;
}
/**
* @param usuarioServico the usuarioServico to set
*/
public void setUsuarioServico(UsuarioServico usuarioServico) {
this.usuarioServico = usuarioServico;
}
}
- ingscjoshua's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
referencia de Spring
esta es la liga de la refrefencia de spring aqui la liga
confusión
El URL del endpoint lo necesitas si vas a consumir un web service, pero por tu código parece que estás queriendo publicar un web service.
En mi blog escribí cómo publicar un web service usando Spring hace tiempo: http://www.javamexico.org/blogs/ezamudio/web_services_poliglotas_con_spring
algo asi
Sip lo que quiero es que en webService consuma mis servicios de spring y eso es donde me quedaba confundido en como hacerlo pero revisare lo que publicaste, una duda que me surge es se puede hacer esto con anotaciones? no esque no quiera poner un xml pero todo lo demas esta ocnfigurado con puras anotaciones y me gustaria poder conserver eso
public class UsuarioWS {
@Autowired
private UsuarioServico usuarioServico;
/**
* Método que expone el servicio de consulta de usuario por ID
* @param id
* @return
*/
@WebMethod
public Usuario consultarUsuarioPorId(int id){
Usuario usuario= usuarioServico.consultarUsuarioPorId(id);
return usuario;
}
/**
* @param usuarioServico the usuarioServico to set
*/
public void setUsuarioServico(UsuarioServico usuarioServico) {
this.usuarioServico = usuarioServico;
}
}
</ code>
Lo anterior es mi clase que quiero que consuma el un servicio hecho en spring es una clase que solo tiene @service porque asi nos pidieron la implementacion
ya Funciono
Bueno pues después de mucho darle vueltas al fin hice funcionar mi ws invocando Spring jeje XD es un ejemplo simple pero espero les sirva, todo lo deje en configuración contra anotación, en estos dias subo el ejemplo a mi github mientras dejo la parte del codigo que me hacia falta
public static void main (String args[]){
UsuarioWS usuarioWS=ctx.getBean(UsuarioWS.class);
System.out.println("UsuarioEndPoint.main() inicia el web service de usuario...");
//Endpoint.publish("http://localhost:8081/Usuario", new UsuarioWSImpl());
}
Y la clase de configuración:
@Import({ServicioCfg.class})
public class WebServiceCfg {
@Autowired
private UsuarioServico usuarioServico;
@Bean
public SimpleJaxWsServiceExporter simpleExporte(){
SimpleJaxWsServiceExporter wsExporter= new SimpleJaxWsServiceExporter();
wsExporter.setBaseAddress("http://localhost:8081/");
return wsExporter;
}
@Bean
public UsuarioWS usuarioWS(){
UsuarioWSImpl usuarioWS= new UsuarioWSImpl();
return usuarioWS;
}
cabe mencionar que para esto se necesita la dependencia de springweb .