• java 使用CXF发布web service


    这篇文章介绍一下如何在java中发布WEB SERVICE

    在java程序发布web serice 可以使用几种开源的产品如:

    AXIS,XFIRE,CXF。现在CXF应该可以取代XFIRE作为首选的WEB SERVICE 发布产品。

    下面介绍一下如何使用CXF发布一个web service。

    1.下载CXF。

    http://cxf.apache.org/ 下载cxf软件。

    2.新建一个web项目。

    添加如下包的引用。

    代码
    commons-logging-1.1.jar
    geronimo
    -activation_1.1_spec-1.0-M1.jar (or Sun's Activation jar)
    geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
    geronimo
    -javamail_1.4_spec-1.0-M1.jar (or Sun's JavaMail jar)
    geronimo-servlet_2.5_spec-1.1-M1.jar (or Sun's Servlet jar)
    geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
    jaxb
    -api-2.0.jar
    jaxb
    -impl-2.0.5.jar
    jaxws
    -api-2.0.jar
    neethi
    -2.0.jar
    saaj
    -api-1.3.jar
    saaj
    -impl-1.3.jar
    stax
    -api-1.0.1.jar
    wsdl4j
    -1.6.1.jar
    wstx
    -asl-3.2.1.jar
    XmlSchema
    -1.2.jar
    xml
    -resolver-1.2.jar

    spring 的包
    aopalliance
    -1.0.jar
    spring
    -core-2.0.8.jar
    spring
    -beans-2.0.8.jar
    spring
    -context-2.0.8.jar
    spring
    -web-2.0.8.jar

    cxf 的包
    cxf
    -2.1.jar

    这个包可能跟使用的cxf版本有差异。

    修改 web.xml

    代码
       <!-- Spring Config Location -->
        
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>/WEB-INF/classes/beanRefServer.xml</param-value>
        
    </context-param>
        
    <!-- Spring ContextLoaderListener -->
        
    <listener>
            
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        
    </listener>
      
       
      
          
    <!-- Apache CXFServlet -->
        
    <servlet>
            
    <servlet-name>CXFServlet</servlet-name>        
            
    <!-- 
            <display-name>CXF Servlet</display-name>
             
    -->
            
    <servlet-class>
                org.apache.cxf.transport.servlet.CXFServlet
            
    </servlet-class>
            
    <load-on-startup>1</load-on-startup>
        
    </servlet>

        
    <!-- CXFServlet Mapping -->
        
    <servlet-mapping>
            
    <servlet-name>CXFServlet</servlet-name>
            
    <url-pattern>/*</url-pattern>
        
    </servlet-mapping>

    3.编写webservice。

    开发一个web服务接口。接口代码如下:

    代码
    package com.gzepb.motor;

    import javax.jws.WebParam;
    import javax.jws.WebService;


    @WebService(targetNamespace
    ="http://www.xxx.com/")
    public interface IServer {

        
    public String hello(@WebParam(name="name") String name);
    }

    实现类如下:

    代码
    package com.gzepb.motor.impl;

    import com.gzepb.motor.IServer;

    public class ServiceImpl implements IServer {

        
    public String hello(String name) {
            
    // TODO Auto-generated method stub
            return "hello :" + name;
        }

    }

    下面的工作就是配置这个web service了

    代码
    <?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-2.0.xsd
            http://cxf.apache.org/jaxws 
            http://cxf.apache.org/schemas/jaxws.xsd"
    >
        
      
    <!-- Import Apache CXF Bean Definition -->
        
    <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"/>
      
        
    <!-- gzepbmotorService -->
        
    <bean id="ServerImpl" class="com.gzepb.motor.impl.ServiceImpl">
        
    </bean>    
            
    <!-- Expose SurveyWebService -->
        
    <jaxws:server id="motorService" 
            serviceClass
    ="com.gzepb.motor.IServer" 
            address
    ="/motorService">
            
    <jaxws:serviceBean>
                
    <ref bean="ServerImpl"/> <!-- 要暴露的 bean 的引用 -->
                
    </jaxws:serviceBean>
        
    </jaxws:server>  

    </beans>
    这里使用了spring的配置。这样web服务我们就发布好了。
  • 相关阅读:
    Spark学习之键值对(pair RDD)操作(3)
    Spark学习之RDD编程(2)
    Spark学习之基础相关组件(1)
    SAS进阶《深入分析SAS》之数据汇总和展现
    程序员必知的LinuxShell命令
    Java&Xml教程(八)使用JDOM将Java对象转换为XML
    DSp寄存器“是怎么和板子上的”具体地址“一一对应起来的
    WT588D播放合成语音时出现某些语句不能正常播报的情况,经过对比其他语句,看似有点不符合逻辑。
    模块化编程时中断函数的处理
    keil编译时出现*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1877658.html
Copyright © 2020-2023  润新知