服务端:
1.创建一个web项目。(用的eclipse)new--create others --选中Dynamic Web Project--next
2.项目创建成功后,导入相关jar包(我用的是cxf),下一步buildpath
3.创建接口和实现类,需要注意的是@WebService()注解
接口文件IOrderDetailService.java:
@WebService()
public interface IOrderDetailService {
public String saveOrderDetail(String memberId,String goodsId,String callId ,String callNo ,String consigneeId,String colored ,String styleId ,String serviceNumber,String flag,String address);
public String test();
}
接口实现类OrderDetailServiceImpl.java(其中endpointInterface 指向的是接口文件路径)
@Service
@WebService(endpointInterface = "service.IOrderDetailService")
public class OrderDetailServiceImpl implements IOrderDetailService {
@Override
public String saveOrderDetail(String memberId, String goodsId, String callId, String callNo, String consigneeId,
String colored, String styleId, String serviceNumber,String flag, String address) {
//处理操作
return ":";}
@Override
public String test() {
// TODO Auto-generated method stub
String str = "hello";
return str;
}
3.接下来需要配置web.xml文件(除了配置过滤器监听器等等,还要配置cxf,指定一个bean的配置文件)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:resources/bean.xml</param-value>
</context-param><servlet>
<!-- cxf -->
<servlet-name>CXFServlet</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
4.配置web.xml中指定的bean.xml文件(放在src下的resource)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<!-- <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> -->
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<bean id="orderDetailServiceImpl" class="service.OrderDetailServiceImpl"/>
<jaxws:endpoint id="orderDetailService" implementor="#orderDetailServiceImpl"
address="/orderDetailService">
</jaxws:endpoint>
</beans>
5.现在项目创建成功,发布访问即可。http://localhost:8080/项目名称/webservice/
客户端:
1.通过eclipse来生成。new--other--web service client --next接下来会需要wsdl的路径,就是你需要生成哪个服务的客户端的wsdl(前面已经说了生成的服务端)
2.通过 CXF提供了一个名为“wsdl2java.bat”的工具
命令wsdl2java –p 生成代码的包名 –d 生成代码的路径 wsdl地址。
还有一种生成的客户端的方法是通过JDK,这里就不介绍了,熟练掌握一种就可以。
客户端的main方法
public class ClientMain {
public static void main(String[] args) throws Exception
{
JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
bean.setAddress("wsdl路径");
bean.setServiceClass(IOrderDetailService.class);
IOrderDetailService iOrderDetailService = (IOrderDetailService)bean.create();
String r = iOrderDetailService.test();
System.out.println(r);
}
}
-------------------------------------------------------------
以上webservice的相关过程就完成了,还有好多不足,这个只是自己的随手总结,做个记录吧了,详细的还是需要向大神请教。