cxf

pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.csf</groupId>
  <artifactId>crawlerUI</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>crawlerUI Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <springframework.version>4.2.6.RELEASE</springframework.version>
    <mybatis.version>3.3.1</mybatis.version>
    <mybatis.spring.version>1.3.0</mybatis.spring.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${springframework.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jms</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>${springframework.version}</version>
    </dependency>

    <!--mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>${mybatis.spring.version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->    <dependency>      <groupId>commons-dbcp</groupId>      <artifactId>commons-dbcp</artifactId>      <version>1.3</version>    </dependency>    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>5.1.38</version>    </dependency>    <dependency>      <groupId>org.apache.cxf</groupId>      <artifactId>cxf-rt-rs-extension-providers</artifactId>      <version>3.1.0</version>    </dependency>    <dependency>      <groupId>org.codehaus.jettison</groupId>      <artifactId>jettison</artifactId>      <version>1.3.7</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-jaxrs -->    <dependency>      <groupId>org.codehaus.jackson</groupId>      <artifactId>jackson-jaxrs</artifactId>      <version>1.9.7</version>    </dependency>    <!-- Gson config -->    <dependency>      <groupId>com.google.code.gson</groupId>      <artifactId>gson</artifactId>      <version>2.7</version>    </dependency>    <!-- httpclient config -->    <dependency>      <groupId>org.apache.httpcomponents</groupId>      <artifactId>httpclient</artifactId>      <version>4.5</version>    </dependency>    <!-- mongo config -->    <dependency>      <groupId>com.aug3.storage</groupId>      <artifactId>mongoclient</artifactId>      <version>3.0.1</version>    </dependency>    <!-- guava config -->    <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->    <dependency>      <groupId>com.google.guava</groupId>      <artifactId>guava</artifactId>      <version>19.0</version>    </dependency>    <!-- commons-math3 -->    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-math3</artifactId>      <version>3.6.1</version>    </dependency>    <!-- commons-lang3 -->    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-lang3</artifactId>      <version>3.4</version>    </dependency>    <!-- websocket -->    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-websocket</artifactId>      <version>${springframework.version}</version>    </dependency>    <dependency>      <groupId>org.apache.tomcat</groupId>      <artifactId>tomcat-websocket</artifactId>      <version>8.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.apache.tomcat.embed</groupId>      <artifactId>tomcat-embed-websocket</artifactId>      <version>8.0.23</version>      <scope>provided</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->    <dependency>      <groupId>commons-io</groupId>      <artifactId>commons-io</artifactId>      <version>2.4</version>    </dependency>    <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->    <dependency>      <groupId>commons-fileupload</groupId>      <artifactId>commons-fileupload</artifactId>      <version>1.3.2</version>    </dependency>  </dependencies>  <profiles>    <profile>      <id>dev</id>      <properties>        <env>dev</env>      </properties>      <activation>        <activeByDefault>true</activeByDefault>      </activation>    </profile>    <profile>      <id>test</id>      <properties>        <env>test</env>      </properties>    </profile>    <profile>      <id>pro</id>      <properties>        <env>pro</env>      </properties>    </profile>  </profiles>  <build>    <filters>      <filter>src/main/resources/filters/${env}.properties</filter>    </filters>    <resources>      <resource>        <directory>src/main/resources</directory>        <filtering>true</filtering>      </resource>    </resources>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.1</version>        <configuration>          <source>1.8</source>          <target>1.8</target>        </configuration>      </plugin>    </plugins>    <finalName>crawlerUI</finalName>  </build></project>
     
扩展:
<!--cxf-->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>${cxf.version}</version>
        </dependency>
1.web.xml:
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      classpath:applicationContext-*.xml
    </param-value>
  </context-param>

  <filter>
    <filter-name>SetCharacterEncoding</filter-name>
    <filter-class>
      org.springframework.web.filter.CharacterEncodingFilter
    </filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <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>2</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/ws/*</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
 
2.application-web.xml(命名与spring配置文件命名格式一样):
<?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:jaxrs="http://cxf.apache.org/jaxrs"
       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-4.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 
    http://cxf.apache.org/jaxrs
    http://cxf.apache.org/schemas/jaxrs.xsd
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd">
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations" value="classpath:*.properties"/>
    </bean>
    <!-- 配置注解扫描 -->
    <context:annotation-config/>
    <!-- 自动扫描的包名 -->
    <context:component-scan base-package="com.csf.crawler"/>
    <!-- Spring定时器注解开关 -->
    <task:annotation-driven/>

    <jaxrs:server address="/" id="RESTWebService">
        <jaxrs:serviceBeans>
            <ref bean="testService"/>
        </jaxrs:serviceBeans>

        <jaxrs:providers>
            <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>
            <bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider"/>
        </jaxrs:providers>
    </jaxrs:server>

</beans> 
3.TestService:
package com.csf.crawler.service;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

/**
 * Created by yunbing.hao on 2017/4/17.
 */
@Path("/test")
public interface TestService {
    @GET
    @Path("/test")
    String test();
}
 
4.TestServiceImpl:
package com.csf.crawler.service.impl;

import com.csf.crawler.service.TestService;

/**
 * Created by yunbing.hao on 2017/4/17.
 */
public class TestServiceImpl implements TestService{
    @Override
    public String test() {
        return "success";
    }
}
5.application-service.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:context="http://www.springframework.org/schema/context"
       xmlns:jbbc="http://www.springframework.org/schema/jdbc" xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
       http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd 
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.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/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
    <aop:config>
        <aop:aspect id="TestAspect" ref="myInterceptor">
            <aop:pointcut id="servicem" expression="execution(* com.csf.crawler.service.impl..*.*(..))"/>
            <aop:around pointcut-ref="servicem" method="doExceptionIntercept"/>
        </aop:aspect>
    </aop:config>
    <bean id="myInterceptor" class="com.csf.crawler.interceptor.ExceptionInterceptor"/>

    <bean id="testService" class="com.csf.crawler.service.impl.TestServiceImpl"></bean>


</beans>
 
 
 
posted @ 2017-06-05 11:59  Runny_Hao  阅读(236)  评论(0)    收藏  举报