1、 创建WEBSERVICE的服务端:
创建一个CALSS在com.wfy.ws下:
如下例子所示:注意 创建的class一定要继承SpringBeanAutowiringSupport,否则在SPRING3.0下注解是无法扫描的(这是以前一直痛苦的事情),这个例子是采用注解的方式标注WEBSERVICE和对应的方法,对于注解的方式参考例子,每个注解缺一不可。
package com.wfy.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import com.wfy.dao.SendGoodsInfoToECDao;
import com.wfy.service.TestJaxService;
@WebService(serviceName = "FirstService")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class testjaxWs extends SpringBeanAutowiringSupport{
@Autowired
private TestJaxService testJaxService;
@Autowired
private SendGoodsInfoToECDao sendGoodsInfoToECDao;
@WebMethod()
public CommResponse test1 (CommRequest testRequest) {
testJaxService.testService(null);
System.out.println("okokokokokok");
CommResponse testResponse = new CommResponse();
testResponse.setReCode("Y");
testResponse.setReMessage("OK");
return testResponse;
}
}
2、 发布WEBSERVICE的服务端:
需要写一行这样的代码将注解的WS发布一下:
@Override
public void init(ServletConfig arg0) throws ServletException {
//Endpoint.publish("http://127.0.0.1/wfy",new MyServiceImpl());
Endpoint.publish("http://127.0.0.1/services",new testjaxWs());
}
我已经写到了一个SERVERLET的INIT方法中,在WEB工程启动的时候自动发布,到时只要把自己的地址加到serverlet中便可。
发布的时候url可以自动指定,包括端口包括上下文。
3生成wsdl文件
在浏览器上输入 http://127.0.0.1/services?wsdl就可以生成wsdl文件如下所示:
4、在一个普通JAVA工程中按照WSDL文件生成对应的CLASS方式和之前是一样的
5、客户端调用:
编写测试样例程序:注意FirstService是指的当初创建WEBSERVICE是的注解制定的servername,TestjaxWs是具体的class的名字。也是采用代理模式测试
6、事务管理,事务管理器的配置都放到了app*.xml文件中有spring自动管理,按照规范要求事务尽量要在service层控制,如下例子所示:
DAO层:一个方法失败整个事务回滚
7、其他要求
SERVICE层可以调用多个DAO层方法,对于DAO层统一放到com.wfy.dao下,对于service 放到com.wfy.service,对于webservice放到com.wfy.ws下:
Service的方法尽量get或者put开头,dao层的方法尽量save或者update开头。
本文来源:https://www.2haoxitong.net/k/doc/4e57f9f10029bd64783e2cdd.html
文档为doc格式