基于Spring和CXF的webservice开发环境搭建

简介:

使用CXF发布webservice服务时,规范的做法是先书写一个接口,用以声明服务类型。

基于Spring和CXF开发web service的框架搭建

一、创建web项目

Eclipse中新建一个dynamic webproject,命名为:CXFTest

二、导入需要的jar包

把下载的CXF项目的解压缩文件中lib文件夹下的所有jar包拷贝到WebContent->WEB-INF->lib文件夹下

三、创建服务接口

在Java resource->src目录下新建package包:com.cxfspring.service,并在该包中新建服务接口Ipeople,Ipeople接口代码如下:

package com.cxfspring.service;
 
import javax.jws.WebMethod;
import javax.jws.WebService;
 
@WebService
public interface IPeople
{
    @WebMethod
    public String sayHello(String name);
}


四、创建服务实现类

在Java resource->src目录下新建package包:com.cxfspring.serviceImpl,并在该包中新建服务实现类Student,Student实现Ipeople接口,Student类代码如下:

package com.cxfspring.serviceImpl;
 
import javax.jws.WebMethod;
import javax.jws.WebService;
 
import com.cxfspring.service.IPeople;
 
 
@WebService
public class Student implements IPeople
{
 
         @WebMethod
         @Override
         publicString sayHello(String name)
         {
                   //TODO Auto-generated method stub
                   System.out.println("Hello:"+name);
                  return"Hello:"+name+"nice to meet you!";
         }
 
}


五、配置web.xml文件

在WebContent->WEB-INF目录下新建web.xml,配置代码如下:

<?xml version="1.0"encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
  <display-name>ServiceManagement</display-name>
 
  <!-- 加载Spring容器 -->
 
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
 
  <!-- 配置CXF的核心servlet -->
  <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
  <servlet>
    <servlet-name>cxf</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <!-- <init-param>
        配置Spring的配置文件
        <param-name>config-location</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </init-param>-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>cxf</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
 
  <welcome-file-list>
 
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


六、配置Spring配置文件

在WebContent->WEB-INF目录下新建applicationContext.xml,配置代码如下:

<?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:tx="http://www.springframework.org/schema/tx"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:jms="http://cxf.apache.org/transport/jms"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/tx/spring-aop.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/context/spring-context.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd
http://cxf.apache.org/transport/jms
http://cxf.apache.org/schemas/configuration/jms">
 
<!-- 导入CXF为扩展Spring提供的几个XML配置文件 -->
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-object-binding.xml"/>
 
<!-- 利用endpoint发布服务 -->
<jaxws:endpoint id="HelloService"implementor="com.cxfspring.serviceImpl.Student" address="/HelloService"/>
 
</beans>


七、验证服务是否能发布

把工程部署到tomcat上,并启动tomcat,在浏览器中输入http://localhost:8090/CXFTest/HelloService?wsdl 。如果浏览器能显示该服务的WSDL文档,则说明该服务能成功发布。


最后把本文搭建的框架共享出来,http://download.csdn.net/detail/longshengguoji/8270873

相关文章
|
5月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
WXM
|
6月前
|
Java 应用服务中间件 Maven
|
2月前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
5月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
6月前
|
Java Maven 开发工具
Spring Boot开发环境的搭建
IDEA Maven JDK Spring Boot
55 3
|
5月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
5月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
5月前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
|
5月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
5月前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?