WebService

一、服务端项目
1,web.xml中填加

<!-- 配置webservice访问地址 -->
	   

    <servlet>  
    		   <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>
    					<!-- 访问路径1 -->
    	   </servlet-mapping>  

2, 填加spring-cxf-server.xml配置文件
注意事项:该文件中需要修改的地方:

     <jaxws:endpoint 
        			id="userService"
        			implementor="com.jk.cd.service.impl.EmpServiceImpl"
        					<!-- 服务端访问方法的service的实现类 -->
        			address="/uerService">
        					<!-- 访问路径2 -->
       </jaxws:endpoint>

3,项目中设置
1:service接口类上填加@WebService注解
2:接口方法参数前填加@WebParam(name=“参数名”)注解

					   <!--表示该参数必须传递 -->

3,service实现类与正常项目中一样,填加@service注解
4,最终访问路径:https://127.0.0.1:8080/服务端项目名/访问路径1/访问路径2?wsdl
测试访问路径:https://127.0.0.1:8080/服务端项目名/访问路径1/访问路径2

二、工具类生成服务端访问文件
在工具apache-cxf-3.2.4中的bin目录运行cmd,输入以下命令
wsdl2java -p com.jk.cd.service.webService -client http://127.0.0.1:8080/webservice/uerService?wsdl

            这是你要把文件放在客户端项目的包路径         这是服务端的最终访问路径

在bin目录下会生成文件,将文件中的webService方件复制到客户端项目中

三、客户端文件
1,添加spring-cxf-client.xml文件
2,注意事项

<!--调用接口注入时 变量名必须是这个id --> <!--生成文件中的service接口地址 -->     
     <bean id="client" class="com.jk.cd.service.webService.EmpService" factory-bean="clientfactory" factory-method="create"/>
		     					
		<bean id="clientfactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
          <property name="serviceClass" value="com.jk.cd.service.webService.EmpService"/>
												<!--生成文件中的service接口地址 --> 
        <!--   这个address一定要注意,正确的-->
          <property name="address" value="http://localhost:8080/webservice/uerService"/>
											<!--这是服务端的最终访问路径 --> 
      </bean> 

3,在service实现类或controller实现类中注入生成文件中的接口类,变量名必须为spring-cxf-client.xml文件中bean标签中的接口id

四、客户端往服务端传递参数为实体bean时,可以使用BeanUtils.copyProperties(要传递的实体bean变量,目标实体变量)处理;

示例代码
	//通过id查询到要传递的实体bean
	EmpBean emp2=treeService.queryEmpByid(id);
	//新建一个目标实体Bean,为生成文件中的实体bean类型
	EmpBeanMongo empBeanMongo = new EmpBeanMongo();
	//使用复制工具类将参数Bean转换到生成文件中的bean类型
	BeanUtils.copyProperties(emp2,empBeanMongo);
	//将转换后的生成方件中类型的bean放到服务端方法的参数中传递
	client.addEmp(empBeanMongo);

如果有错误或者不详的地方,见谅,请指出

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值