zoukankan      html  css  js  c++  java
  • 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服务我们就发布好了。
  • 相关阅读:
    enum:python实现枚举也很优雅
    jieba:我虽然结巴,但是我会分词啊
    pyquery:轻松、灵活的处理html
    lxml:底层C语言实现、高效地处理html
    shelve:极其强大的序列化模块
    Session管理之ThreadLocal
    Hibernate之Criteria
    Hibernate之list和iterator
    hibernate之createQuery与createSQLQuery
    C标签之forEach
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1877658.html
Copyright © 2011-2022 走看看