WebService学习总结(六)--CXF 与Spring结合+tomcat发布
阅读原文时间:2023年07月09日阅读:1

该项目在上文   WebService学习总结(四)--基于CXF的服务端开发  的基础上修改为spring上发布的webservice接口

1、新建web project 工程

2、导入spring和cxf的有关jar包

3、 在src 目录下,配置sping 的配置文件

4、在src 目录,新建一个sping的配置文件applicationContext-server.xml  名字可以根据自己习惯修改,内容如下


http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

<!-- 配置自动扫描的包 -->  
<!--  
<context:component-scan base-package="com.service.springmvc"></context:component-scan>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/WEB-INF/jsp/"></property>  
    <property name="suffix" value=".jsp"></property>  
</bean>

<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">  
       <property name="baseAddress" value="http://localhost:8085/"/>  
</bean>  
 -->  
 <!-- 此次在这里配置,可以设置配置文件  
<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="studentWsImpl" class="com.myl.service.serviceImpl.StudentWsImpl"></bean>

<jaxws:server id="studentWsSpring" serviceClass="com.myl.service.StudentWs" address="/StudentSpringWs">  
    <jaxws:serviceBean>  
        <ref bean="studentWsImpl"></ref>  
    </jaxws:serviceBean>  
</jaxws:server>

这里xml 配置文件里面,  bean id 指定了web service 接口实现类,也就是调用接口后实际业务逻辑的实现类;  server id 和address 是 web service接口暴露的地址,对应的是接口类 StudentWs, 而这个服务的serviceBean 指定为接口实现类,这样就指定了运行时调用的实现类。  这个配置也就是sping核心的ioc控制反转功能,通过配置文件将依赖的对象,用配置文件来实现依赖注入,从而实现控制反转。

5、修改web.xml 文件


http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app\_3\_1.xsd" version="3.1"> SpringCXF org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:applicationContext.xml springDispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:applicationContext.xml cxfService org.apache.cxf.transport.servlet.CXFServlet cxfService /service/* springDispatcherServlet /

context-param里面指定了spring 配置文件

6、发布到tomcat里面

7、 运行tomcat,如下图所示在表示运行成功

8、查看发布的服务

通过下面url ,来查看发布的服务:http://localhost:8080/SpringCXF/service/   这里StudyWsSpringCXF是工程项目的名称,如果一切正常,打开的界面如下:

9、可以点击红框中内容获取wsdl 文档。

10、通过客户端验证

运行之前的客户端,验证一下发布的服务端能正常工作,需要注意的是,需要修改客户端类StudentWsClient.java里面调用服务端的地址,与当前发布的服务端一致

jwpfb.setAddress("http://localhost:8080/SpringCXF/service/StudentSpringWs");

package com.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.webservice.StudentWs;

/**
*
* @author myl
* @date 2018年4月18日 上午2:44:26
* 客户端调用服务端发布的接口
*/
public class StudentSerivceTest {

public static void main(String\[\] args) {  
    //获取工厂对象  
    JaxWsProxyFactoryBean jwpfb = new JaxWsProxyFactoryBean();  
    //加载生成的StudentWsImpl类  
    jwpfb.setServiceClass(StudentWs.class);  
    //传入url接口地址  
    jwpfb.setAddress("http://localhost:8080/SpringCXF/service/StudentSpringWs");  
    //创建接口对象  
    StudentWs ws = (StudentWs) jwpfb.create();  
    //调用接口中的方法  
    ws.addStudentService("mao", "11", "22");  
    ws.addStudentService("ya", "15", "23");  
    ws.queryStudentService("mao");  
    ws.queryStudentService("ya");

}

}

运行客户端输出结果:

总结

通过sping+tomcat+cxf 发布webservice 服务的步骤如下:

1、建立工程、编写web service 服务端相应的代码,实现业务逻辑

2、编写sping的配置文件 applicationContext.xml 文件,这个文件放在src 的根目录下

3、编写配置web.xml 文件

4、发布到tomcat中、并进行调试

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章