启动类:

  1. package com.eshore.main;
  2.  
  3. import org.apache.catalina.connector.Connector;
  4. import org.apache.coyote.http11.Http11NioProtocol;
  5. import org.apache.cxf.transport.servlet.CXFServlet;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.boot.SpringApplication;
  9. import org.springframework.boot.autoconfigure.SpringBootApplication;
  10. import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
  11. import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
  12. import org.springframework.boot.context.embedded.ServletRegistrationBean;
  13. import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;
  14. import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
  15. import org.springframework.context.annotation.Bean;
  16. import org.springframework.context.annotation.ImportResource;
  17.  
  18. @ImportResource(value = { "classpath:applicationContext.xml" })
  19. @SpringBootApplication
  20. public class SpringBootStarter implements EmbeddedServletContainerCustomizer{
  21. private static final Logger logger = LoggerFactory.getLogger(SpringBootStarter.class);
  22. private static final int CXF_PORT = 9090;
  23.  
  24. public static void main(String[] args) {
  25. SpringApplication.run(SpringBootStarter.class, args);
  26. }
  27.  
  28. @Bean
  29. public ServletRegistrationBean servletRegistrationBean() {
  30. return new ServletRegistrationBean(new CXFServlet(), "/services/*");
  31. }
  32. /*
  33. * 设置启动端口号
  34. */
  35. public void customize(ConfigurableEmbeddedServletContainer container) {
  36. container.setPort(CXF_PORT);
  37. TomcatEmbeddedServletContainerFactory tomcatFactory = (TomcatEmbeddedServletContainerFactory)container;
  38. tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
  39. }
  40.  
  41. class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer
  42. {
  43. public void customize(Connector connector)
  44. {
  45. Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
  46. //设置最大连接数
  47. protocol.setMaxConnections(2800);
  48. //设置最大线程数
  49. protocol.setMaxThreads(2800);
  50. protocol.setConnectionTimeout(40000);
  51. }
  52. }
  53. }

接口类

 

  1. package com.eshore.db.webservice;
  2.  
  3. import javax.jws.WebMethod;
  4. import javax.jws.WebParam;
  5. import javax.jws.WebService;
  6.  
  7. import com.eshore.db.SendDto;
  8.  
  9. @WebService
  10. public interface ServerSendSmsService {
  11.  
  12. @WebMethod
  13. String sendSms(SendDto sms);
  14.  
  15. @WebMethod
  16. String getState(@WebParam(name = "requestId") String requestId);
  17.  
  18. }

实现类: 

  1. package com.eshore.db.webservice;
  2.  
  3. import javax.jws.WebService;
  4.  
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8.  
  9. import com.eshore.db.SendDto;
  10. import com.eshore.db.SmsService;
  11. import com.eshore.message.SmsMessage;
  12. import com.eshore.sender.ServiceSender;
  13. import com.eshore.util.MD5Crypter;
  14. @WebService(endpointInterface="com.eshore.db.webservice.ServerSendSmsService",serviceName="ServerSendSmsService")
  15. public class ServerSendSmsServiceImpl implements ServerSendSmsService{
  16. private Logger log=LoggerFactory.getLogger(this.getClass());
  17. @Autowired
  18. private ServiceSender sender;
  19. @Autowired
  20. private SmsService smsService;
  21.  
  22. @Override
  23. public String sendSms(SendDto dto) {
  24. log.info("receive message :{}",dto.toString());
  25. String requestId="";
  26. SmsMessage msg=new SmsMessage();
  27. msg.setContent(dto.getContent());
  28. msg.setReceivers(dto.getReceivers());
  29. msg.setSender(dto.getSender());
  30. msg.setContent(dto.getContent());
  31. String originalString=String.valueOf(System.currentTimeMillis())+dto.getContent();
  32. requestId=MD5Crypter.MD5Encode(originalString);
  33. msg.setMessageId(requestId);
  34. //sender.send(msg);
  35. log.info("requestId:{}",requestId);
  36. log.info("controller save message...");
  37. requestId="it's a test";
  38. return requestId;
  39. }
  40.  
  41. @Override
  42. public String getState(String requestId) {
  43. return "getstateTest";
  44. //return smsService.queryByRequestId(requestId);
  45. }
  46.  
  47. }

配置文件

 

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:jaxws="http://cxf.apache.org/jaxws"
  4. xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
  5. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
  6. default-autowire="byName" default-lazy-init="true">
  7. <description>基于Apache CXF的Web Service配置文件</description>
  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. <!-- 发送短信 -->
  13. <jaxws:endpoint id="ServerSendSmsService" address="/ServerSendSmsService">
  14. <jaxws:implementor>
  15. <ref bean="serverSendSmsServiceImpl" />
  16. </jaxws:implementor>
  17. </jaxws:endpoint>
  18. <bean id="serverSendSmsServiceImpl"
  19. class="com.eshore.db.webservice.ServerSendSmsServiceImpl" />
  20. </beans>

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
  3. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:task="http://www.springframework.org/schema/task"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  7. http://www.springframework.org/schema/tx
  8. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  9. http://www.springframework.org/schema/aop
  10. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  11. http://www.springframework.org/schema/task
  12. http://www.springframework.org/schema/task/spring-task-3.0.xsd
  13. http://www.springframework.org/schema/context
  14. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  15. <import resource="classpath*:applicationContext-cxf.xml"/>
  16. <context:component-scan base-package="com.eshore.*" />
  17. <task:annotation-driven />
  18. <bean
  19. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  20. <property name="locations">
  21. <list>
  22. <value>classpath:config.properties</value>
  23. </list>
  24. </property>
  25. </bean>
  26. <!-- 配置数据源 -->
  27. <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
  28. init-method="init" destroy-method="close">
  29. <property name="url" value="${jdbc_url}" />
  30. <property name="username" value="${jdbc_username}" />
  31. <property name="password" value="${jdbc_password}" />
  32. <property name="initialSize" value="10" />
  33. <property name="maxActive" value="60" />
  34. <property name="minIdle" value="20" />
  35. <property name="maxWait" value="60000" />
  36. <property name="poolPreparedStatements" value="true" />
  37. <property name="maxPoolPreparedStatementPerConnectionSize" value="33" />
  38. <property name="validationQuery" value="${validationQuery}" />
  39. <property name="testOnBorrow" value="false" />
  40. <property name="testOnReturn" value="false" />
  41. <property name="testWhileIdle" value="true" />
  42. <property name="timeBetweenEvictionRunsMillis" value="60000" />
  43. <property name="minEvictableIdleTimeMillis" value="25200000" />
  44. <property name="removeAbandoned" value="false" />
  45. <property name="removeAbandonedTimeout" value="1800" />
  46. <property name="logAbandoned" value="true" />
  47. <!-- <property name="filters" value="stat" /> -->
  48. </bean>
  49.  
  50. <!-- JDBC模版 -->
  51. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  52. <property name="dataSource">
  53. <ref bean="dataSource" />
  54. </property>
  55. </bean>
  56.  
  57. <bean class="org.springframework.orm.jpa.JpaTransactionManager">
  58. <property name="entityManagerFactory" ref="entityManagerFactory" />
  59. </bean>
  60.  
  61. <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  62. <property name="dataSource" ref="dataSource" />
  63. <property name="packagesToScan" value="com.eshore" />
  64. <property name="jpaVendorAdapter">
  65. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  66. </bean>
  67. </property>
  68. </bean>
  69.  
  70. <!-- 配置 JPA Transaction -->
  71. <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  72. <property name="jpaDialect">
  73. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"></bean>
  74. </property>
  75. <property name="entityManagerFactory" ref="entityManagerFactory"/>
  76. </bean>
  77. <!-- 配置 Annotation 驱动,定义事务-->
  78. <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
  79.  
  80. </beans>

  

 

springboot 1.4 CXF配置的更多相关文章

  1. springboot 入门八-自定义配置信息(编码、拦截器、静态资源等)

    若想实际自定义相关配置,只需要继承WebMvcConfigurerAdapter.WebMvcConfigurerAdapter定义些空方法用来重写项目需要用到的WebMvcConfigure实现.具 ...

  2. springboot情操陶冶-web配置(九)

    承接前文springboot情操陶冶-web配置(八),本文在前文的基础上深入了解下WebSecurity类的运作逻辑 WebSecurityConfigurerAdapter 在剖析WebSecur ...

  3. springboot情操陶冶-web配置(七)

    参数校验通常是OpenApi必做的操作,其会对不合法的输入做统一的校验以防止恶意的请求.本文则对参数校验这方面作下简单的分析 spring.factories 读者应该对此文件加以深刻的印象,很多sp ...

  4. springboot情操陶冶-web配置(四)

    承接前文springboot情操陶冶-web配置(三),本文将在DispatcherServlet应用的基础上谈下websocket的使用 websocket websocket的简单了解可见维基百科 ...

  5. springboot情操陶冶-web配置(二)

    承接前文springboot情操陶冶-web配置(一),在分析mvc的配置之前先了解下其默认的错误界面是如何显示的 404界面 springboot有个比较有趣的配置server.error.whit ...

  6. springboot情操陶冶-web配置(三)

    承接前文springboot情操陶冶-web配置(二),本文将在前文的基础上分析下mvc的相关应用 MVC简单例子 直接编写一个Controller层的代码,返回格式为json package com ...

  7. springboot+ibatis 多数据源配置

    这个是boot基本版本包,因为我用的打包方式是war所以去除掉了boot内置的tomcat,但是为了方便测试又引入了内置tomcat,只要添加<scope>provided</sco ...

  8. SpringBoot修改Servlet相关配置

    第一种方式在配置文件中进行修改 server.port=8081 server.servlet.context-path=/springboot server.tomcat.uri-encoding= ...

  9. SpringBoot扩展SpringMVC自动配置

    SpringBoot中自动配置了 ViewResolver(视图解析器) ContentNegotiatingViewResolver(组合所有的视图解析器) 自动配置了静态资源文件夹.静态首页.fa ...

随机推荐

  1. python基础(18):初识模块、re模块

    1. 认识模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用python编写的代码(. ...

  2. Python爬取十四万条书籍信息告诉你哪本网络小说更好看

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: TM0831 PS:如有需要Python学习资料的小伙伴可以加点击 ...

  3. DesignPattern系列__08UML相关知识

    前言 现在,很少有人和90年代一样,自己去实现一个软件的各个方面,也就是说,在工作中,和人沟通是必备的技能.那么,作为一枚码农,如何和他人沟通呢?这就要依靠本文的主题了--UML. 简介 UML--U ...

  4. find命令通过排序只保留最新的文件目录

    find /usr/local/canal/logs/example -type d -name "*-*" | sort -nr | awk '{if (NR>=2){pr ...

  5. DDCTF 2019 部分WP

    WEB 滴~ http://117.51.150.246/index.php?jpg=TmpZMlF6WXhOamN5UlRaQk56QTJOdz09 观察链接可发现jpg的值是文件名转hex再bas ...

  6. postgres 导出单个表的语句

    -U表示用户 -h表示主机 -p表示端口号 -t表示表名 -f表示备份后的sql文件的名字 -d表示要恢复数据库名称 1.备份单表操作 ?pg_dump -U postgres -h localhos ...

  7. JSAPI签权

    JSAPI鉴权----钉钉H5开发 虽钉钉开发文档上写着不需要JSAPI签权,但这仅仅是针对Android手机 所以为了保险起见,在使用JSAPI前,都需要签权. 否则:dd.ready({}) 将不 ...

  8. Ubuntu 根目录作用

    Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/    用以存储二进制可执行命令文件,/u ...

  9. C++ 基础语法 快速复习笔记(1)

    最近要刷题,重温一下C++基本的概念...233 1.概念: C++ 是一种静态类型的.编译式的.通用的.大小写敏感的.不规则的编程语言,支持过程化编程.面向对象编程和泛型编程. C++ 被认为是一种 ...

  10. nginx高级用法

    功能 说明 配置语法 配置位置 配置举例 结果验证 备注 rewrite 跳转重定向(不同于代理的跳转重定向,此处nginx不是代理服务器,而是本身就是web服务器) rewrite 正则表达式 re ...