webservice三要素
soap协议
wsdl:webservice说明书
uddi: 注册webservice
@WebService 如果实现类中方法不能发布出来,可以再方法上加上@WebMethod
webservice的demo
import javax.jws.WebService;
@WebService //它作为一个Webservice标志
public interface IWeatherService {
/**
* 根据城市名返回天气结果
* @param cityName
* @return
*/
public String getWeatherByCityName(String cityName);
}
public class WeatherService implements IWeatherService {
public String getWeatherByCityName(String cityName) {
if("北京".equals(cityName)){
return "晴";
}else if("成都".equals(cityName)){
return "小雨";
}
return "查询失败";
}
}
<!-- CXF的核心控制器的配置 -->
<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
添加bean和发布服务服务端
<bean id="xxx" class="类路径">
<jaxws:server address="/xx">
<jaxws:servicebean>
<ref bean="/xxx"/>
</jaxws:servicebean>
</jaxws>
配置客户端
<jaxws:client id="xxxClient" address="http://localhost:8080/项目名/xx/xxx?wsdl"
serviceClass="类路径">
</jaxws:client>
public class SpringCxfTest {
@Test
public void testCxf(){
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
IWeatherService iws = (IWeatherService) ac.getBean("weatherBean");
String result = iws.getWeatherByCityName("成都");
System.out.println(result);
}
}