zoukankan      html  css  js  c++  java
  • CXF+Spring+Tomcat 案例

    多系统(异构系统)进行交互时,一种良好的方式便是调用Web Service,本示例基于Apache组织的CXF

    环境:
    Eclipse
    JDK6
    Tomcat6
    CXF2.6.1
    Spring3

    示例项目结构图:




     IHelloService.java

    package bing.server;

    import javax.jws.WebService;

    /**
     * <p>
     * WebService接口
     * </p>
     * 
     * @author IceWee
     * @date 2012-7-6
     * @version 1.0
     */
    @WebService
    public interface IHelloService {

        public String sayHello(String username);
        
    }


    HelloServiceImpl.java

    package bing.server;

    import javax.jws.WebService;

    /**
     * <p>
     * WebService实现类
     * </p>
     * 
     * @author IceWee
     * @date 2012-7-6
     * @version 1.0
     */
    @WebService(endpointInterface = "bing.server.IHelloService", serviceName = "HelloService")
    public class HelloServiceImpl implements IHelloService {

        @Override
        public String sayHello(String username) {
            return "hello, " + username;
        }

    }


    HelloServiceClient.java

    package bing.client;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import bing.server.IHelloService;

    /**
     * <p>
     * WebService调用方-客户端
     * </p>
     * 
     * @author IceWee
     * @date 2012-7-6
     * @version 1.0
     */
    public class HelloServiceClient {

        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-client.xml");
            IHelloService helloService = (IHelloService) context.getBean("client");
            String response = helloService.sayHello("Peter");
            System.out.println(response);
        }

    }


    applicationContext-server.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:jaxws="http://cxf.apache.org/jaxws"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
        <!-- 
            ***注意*** 
            手动添加的内容:
            xmlns:jaxws="http://cxf.apache.org/jaxws"
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"
         -->
        
        <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" />

        <jaxws:endpoint id="helloService" implementor="bing.server.HelloServiceImpl" address="/helloService" />
            
    </beans>


    applicationContext-client.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:jaxws="http://cxf.apache.org/jaxws"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
        <!-- 
            ***注意*** 
            手动添加的内容:
            xmlns:jaxws="http://cxf.apache.org/jaxws"
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"
         -->
        
        <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="client" class="bing.server.IHelloService" factory-bean="clientFactory" factory-method="create" />

        <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
            <property name="serviceClass" value="bing.server.IHelloService" />
            <property name="address" value="http://localhost:8080/CXFDemo/ws/helloService" />
        </bean>
    </beans>


    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
      <display-name>CXFDemo</display-name>
      
      <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:applicationContext-server.xml</param-value>
      </context-param>
     
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      
      <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <display-name>CXFServlet</display-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/ws/*</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
     
     

  • 相关阅读:
    select中的简单联动
    php中的魔术方法简介
    Mysql常用知识
    php程序员需要注意的问题
    android webview "Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.", source: (1)
    gallery调用setselection时有动画的两个方法:
    视频格式资料
    判断网络3,4,2,wifi
    重载的view的ontouchevent不响应的解决办法
    SpannableString用法注意
  • 原文地址:https://www.cnblogs.com/sdream/p/5206437.html
Copyright © 2011-2022 走看看