• CXF+Spring开发WebService在MyEclipse环境下


    本文采用CXF+Spring开发WebService,开发环境为MyEclipse10,Demo结构图如下:

    具体实现过程:

    1.首先在MyEclipse10中新建一个webservice工程,命名为CXFSimpDemo,工程建完之后,右键属性添加CXF类库,本文使用的是现今最新的2.7.0版本。

    2.然后在项目中新建接口和类,具体实现代码如下所示:

    接口IGetName实现:

    1 package com.snail;
    2 import javax.jws.WebService;
    3 @WebService
    4 public interface IGetName 
    5 {
    6     public String getName(String name);
    7 }

    类GetNameImpl实现:

     1 package com.snail;
     2 import javax.jws.WebService;
     3 @WebService(endpointInterface="com.snail.IGetName")
     4 public class GetNameImpl implements IGetName {
     5     @Override
     6     public String getName(String name) {
     7         return name;
     8     }
     9 
    10 }

    3.在src里新建Spring配置文件applicationContext.xml,鉴于CXF本身已经集成了Spring框架,因此我们无须再添加Spring类库,具体实现代码如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4         xmlns:jaxws="http://cxf.apache.org/jaxws"
     5         xsi:schemaLocation=" http://www.springframework.org/schema/beans
     6  http://www.springframework.org/schema/beans/spring-beans.xsd
     7  http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd" >
     8  
     9         <import resource="classpath:META-INF/cxf/cxf.xml" />
    10         <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
    11         <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
    12         <jaxws:endpoint id="getNameService"
    13                implementor="com.snail.GetNameImpl"
    14                address="/getName" />
    15</beans>

    其中jaxws的endpoint的id可以任意更换,implementor配置的是刚刚新建的类GetNameImpl的全路径,注意如果实现接口就会报错,adderss也可以任意配置,这个地址名将在最终生成的wsdl文件中得以体现。

    4.尔后,配置web.xml文件,webservice启动,最先读取的就是web.xml文件,通过配置可以快速读取CXF框架,并寻找Spring配置文件applicationContext.xml,从而可以发布webservice,具体实现代码如下:

     1 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     4     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
     5     <display-name></display-name>
     6     <welcome-file-list>
     7         <welcome-file>index.jsp</welcome-file>
     8     </welcome-file-list>
     9     <context-param>
    10         <param-name>contextConfigLocation</param-name>
    11         <param-value> classpath:applicationContext.xml</param-value>
    12     </context-param>
    13     <listener>
    14         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    15     </listener>
    16     <servlet>
    17         <servlet-name>CXFServlet</servlet-name>
    18         <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    19         <load-on-startup> 1</load-on-startup>
    20     </servlet>
    21     <servlet-mapping>
    22         <servlet-name>CXFServlet</servlet-name>
    23         <url-pattern> /ws/*</url-pattern>
    24     </servlet-mapping>
    25 </web-app>

     其中classpath对应着tomcat中C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\CXFSimpDemo\WEB-INF\classes路径下的内容,url-pattern标签如果写成/*,在后面的wsdl的URL中项目名后面就可以直接跟上jaxws的endpoint的adderss名称,否则如图/ws/*,就需要在项目名后面加上ws才能正常访问wsdl。

    5.代码编译过后,借助tomcat发布webservice服务,并通过WebServices Explorer测试WebService服务,如图所示:

    输入测试参数Test Succeed,结果如图所示:

    测试成功,大功告成。

    本人现就职于某互联网公司,技术栈全面,前后端、架构设计都要涉足,所有博文同步更新至我的个人博客http://geekvic.top,欢迎来撩!
  • 相关阅读:
    Windows控制台程序“选定模式”的问题
    落网的音乐很好听的,你造么?不能下载啊,怎么破?
    记一次复杂的正则匹配——匹配但不包含
    判断浏览器是否为IE内核的最简单的方法
    Nodejs发送Post请求时出现socket hang up错误的解决办法
    Windows下通过bat脚本实现自动上传文件到ftp服务器
    jQuery对html进行Encode和Decode
    scala学习笔记:理解类继承
    scala学习笔记:理解lazy值
    scala学习笔记:match表达式
  • 原文地址:https://www.cnblogs.com/TechSnail/p/2789657.html
Copyright © 2020-2023  润新知