zoukankan      html  css  js  c++  java
  • springboot 1.4 CXF配置

    启动类:

    package com.eshore.main;
    
    import org.apache.catalina.connector.Connector;
    import org.apache.coyote.http11.Http11NioProtocol;
    import org.apache.cxf.transport.servlet.CXFServlet;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
    import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
    import org.springframework.boot.context.embedded.ServletRegistrationBean;
    import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;
    import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ImportResource;
    
    
    @ImportResource(value = { "classpath:applicationContext.xml" })
    @SpringBootApplication
    public class SpringBootStarter implements EmbeddedServletContainerCustomizer{
    	private static final Logger logger = LoggerFactory.getLogger(SpringBootStarter.class);
    	private static final int CXF_PORT = 9090;
    
    	public static void main(String[] args) {
    		SpringApplication.run(SpringBootStarter.class, args);
    	}
    
    	@Bean
    	public ServletRegistrationBean servletRegistrationBean() {
    		return new ServletRegistrationBean(new CXFServlet(), "/services/*");
    	}
    	  /*
         * 设置启动端口号
         */
        public void customize(ConfigurableEmbeddedServletContainer container) {
            container.setPort(CXF_PORT);  
            TomcatEmbeddedServletContainerFactory tomcatFactory = (TomcatEmbeddedServletContainerFactory)container;
            tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
        }
        
        class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer  
        {  
            public void customize(Connector connector)  
            {  
                Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();  
                //设置最大连接数  
                protocol.setMaxConnections(2800);  
                //设置最大线程数  
                protocol.setMaxThreads(2800);  
                protocol.setConnectionTimeout(40000);  
            }  
       }  
    }
    

    接口类

     

    package com.eshore.db.webservice;
    
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    
    import com.eshore.db.SendDto;
    
    @WebService
    public interface ServerSendSmsService {
    	
    	@WebMethod
    	String sendSms(SendDto sms);
    
    	@WebMethod
    	String getState(@WebParam(name = "requestId") String requestId);
    
    }
    

    实现类: 

    package com.eshore.db.webservice;
    
    import javax.jws.WebService;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    
    import com.eshore.db.SendDto;
    import com.eshore.db.SmsService;
    import com.eshore.message.SmsMessage;
    import com.eshore.sender.ServiceSender;
    import com.eshore.util.MD5Crypter;
    @WebService(endpointInterface="com.eshore.db.webservice.ServerSendSmsService",serviceName="ServerSendSmsService")
    public class ServerSendSmsServiceImpl implements ServerSendSmsService{
    	private Logger log=LoggerFactory.getLogger(this.getClass());
    	@Autowired
    	private ServiceSender sender;
    	@Autowired
    	private SmsService smsService;
    
    	@Override
    	public String sendSms(SendDto dto) {
    		log.info("receive message :{}",dto.toString());
    		String requestId="";
    		SmsMessage msg=new SmsMessage();
    		msg.setContent(dto.getContent());
    		msg.setReceivers(dto.getReceivers());
    		msg.setSender(dto.getSender());
    		msg.setContent(dto.getContent());
    		String originalString=String.valueOf(System.currentTimeMillis())+dto.getContent();
    		requestId=MD5Crypter.MD5Encode(originalString);
    		msg.setMessageId(requestId);
    		//sender.send(msg);
    		log.info("requestId:{}",requestId);
    		log.info("controller save message...");
    		requestId="it's a test";
    		return requestId;
    	}
    
    	@Override
    	public String getState(String requestId) {
    		return "getstateTest";
    		//return smsService.queryByRequestId(requestId);
    	}
    
    }
    

    配置文件

     

    <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://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
    	http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd"
           default-autowire="byName" default-lazy-init="true">
        <description>基于Apache CXF的Web Service配置文件</description>
    
        <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="ServerSendSmsService" address="/ServerSendSmsService">
    		<jaxws:implementor>
    			<ref bean="serverSendSmsServiceImpl" />
    		</jaxws:implementor>
    	</jaxws:endpoint>
    	<bean id="serverSendSmsServiceImpl"
    		class="com.eshore.db.webservice.ServerSendSmsServiceImpl" />
    </beans>
    

      

    <?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:tx="http://www.springframework.org/schema/tx"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:task="http://www.springframework.org/schema/task"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans
    	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    	http://www.springframework.org/schema/tx 
    	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
    	http://www.springframework.org/schema/aop 
    	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
    	http://www.springframework.org/schema/task  
    	http://www.springframework.org/schema/task/spring-task-3.0.xsd
        http://www.springframework.org/schema/context 
    	http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    	<import resource="classpath*:applicationContext-cxf.xml"/>
    	<context:component-scan base-package="com.eshore.*" />
    	<task:annotation-driven />
    	<bean
    		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    		<property name="locations">
    			<list>
    				<value>classpath:config.properties</value>
    			</list>
    		</property>
    	</bean>
    	<!-- 配置数据源 -->
    	<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
    		init-method="init" destroy-method="close">
    		<property name="url" value="${jdbc_url}" />
    		<property name="username" value="${jdbc_username}" />
    		<property name="password" value="${jdbc_password}" />
    		<property name="initialSize" value="10" />
    		<property name="maxActive" value="60" />
    		<property name="minIdle" value="20" />
    		<property name="maxWait" value="60000" />
    		<property name="poolPreparedStatements" value="true" /> 
    		<property name="maxPoolPreparedStatementPerConnectionSize" value="33" />
    		<property name="validationQuery" value="${validationQuery}" />
    		<property name="testOnBorrow" value="false" />
    		<property name="testOnReturn" value="false" />
    		<property name="testWhileIdle" value="true" />
    		<property name="timeBetweenEvictionRunsMillis" value="60000" />
    		<property name="minEvictableIdleTimeMillis" value="25200000" />
    		<property name="removeAbandoned" value="false" />
    		<property name="removeAbandonedTimeout" value="1800" />
    		<property name="logAbandoned" value="true" />
    		<!-- <property name="filters" value="stat" /> -->
    	</bean>
    	
    	<!-- JDBC模版 -->
    	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource">
                <ref bean="dataSource" />
            </property>
        </bean>
    	
    	
    	<bean class="org.springframework.orm.jpa.JpaTransactionManager">
    		<property name="entityManagerFactory" ref="entityManagerFactory" />
    	</bean>
    
    	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    		<property name="dataSource" ref="dataSource" />
    		<property name="packagesToScan" value="com.eshore" />
    		<property name="jpaVendorAdapter">
    			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    			</bean>
    		</property>
    	</bean>
    
    	<!-- 配置 JPA Transaction -->
        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="jpaDialect">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"></bean>
            </property>
            <property name="entityManagerFactory" ref="entityManagerFactory"/>
        </bean>
    	<!-- 配置 Annotation 驱动,定义事务-->
        <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />    
       	
    </beans>
    

      

     

  • 相关阅读:
    Python数值计算:一 使用Pylab绘图(2)
    Python数值计算:一 使用Pylab绘图(1)
    Gromacs处理amino acid residues小结
    实用正则表达式匹配和替换
    将Word转为带书签的PDF
    QT在windows下实现截屏操作并保存为png图片
    VMware虚拟机无法识别U盘解决方案
    C/C++/Qt 统计运行时间
    ffmpeg 中 swscale 的用法
    用qt代码怎样编写图片保存格式[qt4.6]
  • 原文地址:https://www.cnblogs.com/JAYIT/p/10863172.html
Copyright © 2011-2022 走看看