Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1103|回复: 0

集合Spring使用CXF创建Service

  [复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2012-9-21 13:40:00 | 显示全部楼层 |阅读模式
    1.        编写需要发布的服务类
    首先,创建一个service类的接口,功能为打印“Hello”加上传入的参数name
    package demo.spring.service;
    import javax.jws.WebService;
    /*
    * 首先,编写Service接口
    */
    @WebService
    public interface HelloWorld {
        public
    String
    SayHi(
    String
    text);

    }
      然后,编写service接口类的实现类。
    package demo.spring.service;
    import javax.jws.WebService;
    /*
    * service接口的实现类
    */
    @WebService
    public class HelloWorldImpl implements HelloWorld {
        @Override
        public String SayHi(String text) {
           System.out.println("SayHicalled");
           return "Hello"+text;
        }
    }

    2.        声明服务器端beans
    WEN-INF文件夹下创建一个名为cxf-Servlet.xmlxml文件。
    <?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/jaxwshttp://cxf.apache.org/schemas/jaxws.xsd">
      <!-- 引入cxf的两个配置文件 -->
      <import resource="classpath:META-INF/cxf/cxf.xml"/>
      <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
      
      <!-- 通过<jaxw:endpoint创建一个服务终端 -->
      <jaxws:endpoint
       id="helloWorld" <!-- spring上下文中的beanid -->
      implementor="demo.spring.service.HelloWorldImpl" <!-- 服务端实现类 -->
       address="/HelloWorld" <!-- 服务请求地址 -->

      ></jaxws:endpoint>
    </beans>
    3.        设置Servlet
    首先,在web.xml中配置SpringContextLoaderListener
      <!-- 配置SpringContextLoaderListener -->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/cxf-servlet.xml</param-value>
      </context-param>
      <listener>
        <listener-class>
        org.springframework.web.context.ContextLoaderListener
        </listener-class>

      </listener>
    然后,在web.xml中配置CXFServlet的作用范围。
      <!-- 配置CXFServlet的作用范围 -->
      <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class></servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/*</url-pattern>

    </servlet-mapping>
    4.        创建客户端
    首先,在cxf-servlet.xml中配置客户端。
    1,  简单的方法
      <!-- 配置客户端代码方法一 -->
      <jaxws:client
        id="helloClient"
        serviceClass="demo.spring.service.HelloWorld"
        address="http://localhost:8080/cxftest/HelloWorld"

    ></jaxws:client>
    2,  繁琐的方法
      <!-- 配置客户端代码方法二 -->
      <bean id="client"class="demo.spring.service.HelloWorld"
       factory-bean="clientFactory" factory-method="create">
      </bean>
      <bean id="clientFactory"class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
       <property name="serviceClass"value="demo.spring.service.HelloWorld"></property>
       <property name="address"value="http://localhost:8080/cxftest/HelloWorld"></property>

    </bean>
    然后,在客户端调用
    package demo.spring.client;
    import org.apache.catalina.core.ApplicationContext;
    importorg.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.context.support.FileSystemXmlApplicationContext;
    import demo.spring.service.HelloWorld;
    public class Client {
        private Client(){
        }
        public static void main(String[] args) {
           ClassPathXmlApplicationContext context
               = newClassPathXmlApplicationContext("cxf-servlet.xml");
           HelloWorld client = (HelloWorld)context.getBean("helloClient");
          
           String response = client.SayHi("zhangjie");
           System.out.println("Response:"+response);
           System.exit(0);
        }
    }

    英文原文:http://cxf.apache.org/docs/writing-a-service-with-spring.html
    回复

    使用道具 举报

    该用户从未签到

    发表于 2013-5-29 23:07:26 | 显示全部楼层
    帮你顶,人还是厚道点好












    木瓜丰胸
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-2 22:52 , Processed in 0.405211 second(s), 50 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表