ssm整合webservice之cxf框架

开发环境:maven3.3.3、apache-tomcat-6.0.44、jdk1.6.0_13

开发技术:spring3.2.8、cxf2.7.12、mybatis3.2.8、druid1.0.11


项目截图:




项目源码:


一、配置文件


1、pom.xml

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>com.neusoft.icelake</groupId>  
  5.     <artifactId>restservice</artifactId>  
  6.     <version>0.0.1-SNAPSHOT</version>  
  7.     <packaging>war</packaging>  
  8.     <name>restservice</name>  
  9.   
  10.     <properties>  
  11.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  12.         <java.version>1.6</java.version>  
  13.         <spring.version>3.2.8.RELEASE</spring.version>  
  14.         <servlet-api.version>2.5</servlet-api.version>  
  15.         <slf4j.version>1.7.5</slf4j.version>  
  16.         <cxf.version>2.7.12</cxf.version>  
  17.         <jackson.version>2.1.4</jackson.version>  
  18.           
  19.         <mybatis.version>3.2.8</mybatis.version>  
  20.         <mybatisspring.version>1.2.2</mybatisspring.version>  
  21.         <druid.version>1.0.11</druid.version>  
  22.     </properties>  
  23.   
  24.     <dependencies>  
  25.         <!-- spring begin -->  
  26.         <dependency>  
  27.             <groupId>org.springframework</groupId>  
  28.             <artifactId>spring-core</artifactId>  
  29.             <version>${spring.version}</version>  
  30.         </dependency>  
  31.         <dependency>  
  32.             <groupId>org.springframework</groupId>  
  33.             <artifactId>spring-beans</artifactId>  
  34.             <version>${spring.version}</version>  
  35.         </dependency>  
  36.         <dependency>  
  37.             <groupId>org.springframework</groupId>  
  38.             <artifactId>spring-orm</artifactId>  
  39.             <version>${spring.version}</version>  
  40.         </dependency>  
  41.         <dependency>  
  42.             <groupId>org.springframework</groupId>  
  43.             <artifactId>spring-context</artifactId>  
  44.             <version>${spring.version}</version>  
  45.         </dependency>  
  46.         <dependency>  
  47.             <groupId>org.springframework</groupId>  
  48.             <artifactId>spring-webmvc-portlet</artifactId>  
  49.             <version>${spring.version}</version>  
  50.         </dependency>  
  51.         <dependency>  
  52.             <groupId>org.springframework</groupId>  
  53.             <artifactId>spring-webmvc</artifactId>  
  54.             <version>${spring.version}</version>  
  55.         </dependency>  
  56.         <dependency>  
  57.             <groupId>org.springframework</groupId>  
  58.             <artifactId>spring-web</artifactId>  
  59.             <version>${spring.version}</version>  
  60.         </dependency>  
  61.         <!-- spring end -->  
  62.   
  63.         <!-- @Inject begin -->  
  64.         <dependency>  
  65.             <groupId>javax.inject</groupId>  
  66.             <artifactId>javax.inject</artifactId>  
  67.             <version>1</version>  
  68.         </dependency>  
  69.         <!-- @Inject end -->  
  70.   
  71.         <!-- servlet begin -->  
  72.         <dependency>  
  73.             <groupId>javax.servlet</groupId>  
  74.             <artifactId>servlet-api</artifactId>  
  75.             <version>${servlet-api.version}</version>  
  76.         </dependency>  
  77.         <!-- servlet end -->  
  78.   
  79.         <!-- cxf begin -->  
  80.         <dependency>  
  81.             <groupId>org.apache.cxf</groupId>  
  82.             <artifactId>cxf-rt-frontend-jaxws</artifactId>  
  83.             <version>${cxf.version}</version>  
  84.         </dependency>  
  85.         <dependency>  
  86.             <groupId>org.apache.cxf</groupId>  
  87.             <artifactId>cxf-rt-frontend-jaxrs</artifactId>  
  88.             <version>${cxf.version}</version>  
  89.         </dependency>  
  90.         <dependency>  
  91.             <groupId>org.apache.cxf</groupId>  
  92.             <artifactId>cxf-rt-rs-extension-providers</artifactId>  
  93.             <version>${cxf.version}</version>  
  94.         </dependency>  
  95.         <dependency>  
  96.             <groupId>org.apache.cxf</groupId>  
  97.             <artifactId>cxf-rt-transports-http</artifactId>  
  98.             <version>${cxf.version}</version>  
  99.         </dependency>  
  100.         <dependency>  
  101.             <groupId>org.codehaus.jettison</groupId>  
  102.             <artifactId>jettison</artifactId>  
  103.             <version>1.3.2</version>  
  104.         </dependency>  
  105.         <dependency>  
  106.             <groupId>javax.ws.rs</groupId>  
  107.             <artifactId>jsr311-api</artifactId>  
  108.             <version>1.1.1</version>  
  109.         </dependency>  
  110.         <!-- cxf end -->  
  111.   
  112.         <!-- JSON begin -->  
  113.         <dependency>  
  114.             <groupId>com.fasterxml.jackson.core</groupId>  
  115.             <artifactId>jackson-core</artifactId>  
  116.             <version>${jackson.version}</version>  
  117.         </dependency>  
  118.         <dependency>  
  119.             <groupId>com.fasterxml.jackson.core</groupId>  
  120.             <artifactId>jackson-databind</artifactId>  
  121.             <version>${jackson.version}</version>  
  122.         </dependency>  
  123.         <dependency>  
  124.             <groupId>com.fasterxml.jackson.core</groupId>  
  125.             <artifactId>jackson-annotations</artifactId>  
  126.             <version>${jackson.version}</version>  
  127.         </dependency>  
  128.         <dependency>  
  129.             <groupId>com.fasterxml.jackson.module</groupId>  
  130.             <artifactId>jackson-module-jaxb-annotations</artifactId>  
  131.             <version>${jackson.version}</version>  
  132.         </dependency>  
  133.         <dependency>  
  134.             <groupId>com.fasterxml.jackson.jaxrs</groupId>  
  135.             <artifactId>jackson-jaxrs-json-provider</artifactId>  
  136.             <version>${jackson.version}</version>  
  137.         </dependency>  
  138.         <dependency>  
  139.             <groupId>org.codehaus.jackson</groupId>  
  140.             <artifactId>jackson-mapper-asl</artifactId>  
  141.             <version>1.9.0</version>  
  142.         </dependency>  
  143.         <dependency>  
  144.             <groupId>org.codehaus.jackson</groupId>  
  145.             <artifactId>jackson-core-asl</artifactId>  
  146.             <version>1.9.0</version>  
  147.         </dependency>  
  148.         <!-- JSON end -->  
  149.   
  150.         <!-- MyBatis -->  
  151.         <dependency>  
  152.             <groupId>org.mybatis</groupId>  
  153.             <artifactId>mybatis</artifactId>  
  154.             <version>${mybatis.version}</version>  
  155.         </dependency>  
  156.         <dependency>  
  157.             <groupId>org.mybatis</groupId>  
  158.             <artifactId>mybatis-spring</artifactId>  
  159.             <version>${mybatisspring.version}</version>  
  160.         </dependency>  
  161.         <!-- AOP begin -->  
  162.         <dependency>  
  163.             <groupId>org.aspectj</groupId>  
  164.             <artifactId>aspectjrt</artifactId>  
  165.             <version>1.7.4</version>  
  166.         </dependency>  
  167.         <dependency>  
  168.             <groupId>org.aspectj</groupId>  
  169.             <artifactId>aspectjweaver</artifactId>  
  170.             <version>1.7.4</version>  
  171.         </dependency>  
  172.         <dependency>  
  173.             <groupId>cglib</groupId>  
  174.             <artifactId>cglib</artifactId>  
  175.             <version>3.1</version>  
  176.         </dependency>  
  177.         <!-- AOP end -->        
  178.         <!-- jdbc driver -->  
  179.         <dependency>  
  180.             <groupId>localrep.sybase</groupId>  
  181.             <artifactId>jconn</artifactId>  
  182.             <version>2.0</version>  
  183.         </dependency>  
  184.         <!-- connection pool -->  
  185.         <dependency>  
  186.              <groupId>com.alibaba</groupId>  
  187.              <artifactId>druid</artifactId>  
  188.              <version>${druid.version}</version>  
  189.         </dependency>   
  190.     </dependencies>  
  191.   
  192.     <build>  
  193.         <plugins>  
  194.             <!-- compiler插件, 设定JDK版本 -->  
  195.             <plugin>  
  196.                 <groupId>org.apache.maven.plugins</groupId>  
  197.                 <artifactId>maven-compiler-plugin</artifactId>  
  198.                 <version>3.0</version>  
  199.                 <configuration>  
  200.                     <source>${java-version}</source>  
  201.                     <target>${java-version}</target>  
  202.                 </configuration>  
  203.             </plugin>  
  204.         </plugins>  
  205.     </build>  
  206.       
  207.     <!-- PROGRAMER INFO -->  
  208.     <organization>  
  209.         <name>Neusoft</name>  
  210.         <url>http://www.neusoft.com</url>  
  211.     </organization>     
  212. </project>  


2、spring配置文件applicationContext-server.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxrs="http://cxf.apache.org/jaxrs"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
  6.     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  7.     http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd">  
  8.   
  9.     <context:component-scan base-package="com.neusoft.icelake" />  
  10.   
  11.     <import resource="classpath*:META-INF/cxf/cxf.xml" />  
  12.     <import resource="classpath*:META-INF/cxf/cxf-extension-soap.xml" />  
  13.     <import resource="classpath*:META-INF/cxf/cxf-servlet.xml" />  
  14.   
  15.     <jaxrs:server id="restServiceContainer" address="/rest">  
  16.         <jaxrs:providers>  
  17.             <ref bean="jacksonProvider" />  
  18.         </jaxrs:providers>  
  19.         <jaxrs:extensionMappings>  
  20.             <entry key="json" value="application/json" />  
  21.             <entry key="xml" value="application/xml" />  
  22.         </jaxrs:extensionMappings>  
  23.   
  24.         <jaxrs:serviceBeans>  
  25.             <ref bean="wholeQuantityService" />  
  26.         </jaxrs:serviceBeans>  
  27.   
  28.         <jaxrs:inInterceptors>  
  29.             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>  
  30.         </jaxrs:inInterceptors>  
  31.         <jaxrs:outInterceptors>  
  32.             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>  
  33.         </jaxrs:outInterceptors>  
  34.     </jaxrs:server>  
  35.   
  36.     <bean id="jacksonObjectMapper"  
  37.         class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"></bean>  
  38.     <bean id="jacksonProvider"  
  39.         class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">  
  40.         <property name="mapper" ref="jacksonObjectMapper" />  
  41.     </bean>  
  42.   
  43. </beans>  

3、spring配置文件applicationContext-mybatis.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xmlns:context="http://www.springframework.org/schema/context"  
  6.     xmlns:aop="http://www.springframework.org/schema/aop"  
  7.     xsi:schemaLocation="  
  8.     http://www.springframework.org/schema/beans   
  9.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
  10.     http://www.springframework.org/schema/tx   
  11.     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
  12.     http://www.springframework.org/schema/context  
  13.     http://www.springframework.org/schema/context/spring-context-3.0.xsd      
  14.     http://www.springframework.org/schema/aop   
  15.     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  
  16.       
  17.     <context:property-placeholder ignore-unresolvable="true" location="classpath:config.properties" />  
  18.   
  19.     <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">  
  20.         <property name="driverClassName" value="${jdbc.driver}" />  
  21.         <property name="url" value="${jdbc.url}" />  
  22.         <property name="username" value="${jdbc.username}" />  
  23.         <property name="password" value="${jdbc.password}" />  
  24.         <property name="initialSize" value="0" />       
  25.         <property name="maxActive" value="20" />    
  26.         <property name="minIdle" value="0" />       
  27.         <property name="maxWait" value="60000" />  
  28.         <property name="validationQuery" value="${jdbc.testSql}" />  
  29.         <property name="testOnBorrow" value="false" />  
  30.         <property name="testOnReturn" value="false" />  
  31.         <property name="testWhileIdle" value="true" />  
  32.         <property name="timeBetweenEvictionRunsMillis" value="60000" />  
  33.         <property name="minEvictableIdleTimeMillis" value="25200000" />  
  34.         <property name="removeAbandoned" value="true" />  
  35.         <property name="removeAbandonedTimeout" value="1800" />  
  36.         <property name="logAbandoned" value="true" />  
  37.         <property name="filters" value="mergeStat" />  
  38.     </bean>  
  39.   
  40.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  41.         <property name="dataSource" ref="dataSource" />  
  42.         <property name="mapperLocations" value="classpath:com/neusoft/icelake/mappers/**/*.xml" />  
  43.     </bean>  
  44.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  45.         <property name="basePackage" value="com.neusoft.icelake" />  
  46.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />  
  47.     </bean>  
  48.   
  49.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  50.         <property name="dataSource" ref="dataSource" />  
  51.     </bean>  
  52.     <tx:advice id="transactionAdvice" transaction-manager="transactionManager">  
  53.         <tx:attributes>  
  54.             <tx:method name="add*" propagation="REQUIRED" />  
  55.             <tx:method name="append*" propagation="REQUIRED" />  
  56.             <tx:method name="insert*" propagation="REQUIRED" />  
  57.             <tx:method name="save*" propagation="REQUIRED" />  
  58.             <tx:method name="update*" propagation="REQUIRED" />  
  59.             <tx:method name="modify*" propagation="REQUIRED" />  
  60.             <tx:method name="edit*" propagation="REQUIRED" />  
  61.             <tx:method name="delete*" propagation="REQUIRED" />  
  62.             <tx:method name="remove*" propagation="REQUIRED" />  
  63.             <tx:method name="repair" propagation="REQUIRED" />  
  64.             <tx:method name="delAndRepair" propagation="REQUIRED" />  
  65.   
  66.             <tx:method name="get*" propagation="SUPPORTS" />  
  67.             <tx:method name="find*" propagation="SUPPORTS" />  
  68.             <tx:method name="load*" propagation="SUPPORTS" />  
  69.             <tx:method name="search*" propagation="SUPPORTS" />  
  70.             <tx:method name="datagrid*" propagation="SUPPORTS" />  
  71.   
  72.             <tx:method name="*" propagation="SUPPORTS" />  
  73.         </tx:attributes>  
  74.     </tx:advice>  
  75.     <aop:config>  
  76.         <aop:pointcut id="transactionPointcut" expression="execution(* com.neusoft.icelake..*impl.*(..))" />  
  77.         <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />  
  78.     </aop:config>  
  79.   
  80. </beans>  

4、web.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  5.     id="WebApp_ID" version="3.0">  
  6.     <display-name>restservice</display-name>  
  7.     <context-param>  
  8.         <param-name>contextConfigLocation</param-name>  
  9.         <param-value>classpath*:/spring-context*.xml</param-value>  
  10.     </context-param>  
  11.     <listener>  
  12.         <description>spring listener</description>  
  13.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  14.     </listener>  
  15.     <servlet>  
  16.         <servlet-name>CXFServlet</servlet-name>  
  17.         <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
  18.         <load-on-startup>1</load-on-startup>  
  19.     </servlet>  
  20.     <servlet-mapping>  
  21.         <servlet-name>CXFServlet</servlet-name>  
  22.         <url-pattern>/*</url-pattern>  
  23.     </servlet-mapping>  
  24.     <servlet>  
  25.         <servlet-name>DruidStatView</servlet-name>  
  26.         <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  
  27.     </servlet>  
  28.     <servlet-mapping>  
  29.         <servlet-name>DruidStatView</servlet-name>  
  30.         <url-pattern>/druid/*</url-pattern>  
  31.     </servlet-mapping>  
  32.   
  33.     <filter>  
  34.         <filter-name>DruidWebStatFilter</filter-name>  
  35.         <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>  
  36.         <init-param>  
  37.             <param-name>exclusions</param-name>  
  38.             <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>  
  39.         </init-param>  
  40.     </filter>  
  41.     <filter-mapping>  
  42.         <filter-name>DruidWebStatFilter</filter-name>  
  43.         <url-pattern>/*</url-pattern>  
  44.     </filter-mapping>  
  45.   
  46.     <filter>  
  47.         <filter-name>encodingFilter</filter-name>  
  48.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  49.         <init-param>  
  50.             <param-name>encoding</param-name>  
  51.             <param-value>UTF-8</param-value>  
  52.         </init-param>  
  53.         <init-param>  
  54.             <param-name>forceEncoding</param-name>  
  55.             <param-value>true</param-value>  
  56.         </init-param>  
  57.     </filter>  
  58.     <filter-mapping>  
  59.         <filter-name>encodingFilter</filter-name>  
  60.         <url-pattern>/*</url-pattern>  
  61.     </filter-mapping>  
  62.     <welcome-file-list>  
  63.         <welcome-file>index.html</welcome-file>  
  64.         <welcome-file>index.htm</welcome-file>  
  65.         <welcome-file>index.jsp</welcome-file>  
  66.         <welcome-file>default.html</welcome-file>  
  67.         <welcome-file>default.htm</welcome-file>  
  68.         <welcome-file>default.jsp</welcome-file>  
  69.     </welcome-file-list>  
  70. </web-app>  

二、Java代码


1、entity类(Org.java、Orgs.java)

[java]  view plain  copy
  1. package com.neusoft.icelake.modules.standard.entity;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. import javax.xml.bind.annotation.XmlRootElement;  
  6.   
  7. @XmlRootElement(name = "SapOrg")  
  8. public class Org implements Serializable {  
  9.   
  10.     private static final long serialVersionUID = 7446548875479453298L;  
  11.   
  12.     private String parent_id;  
  13.   
  14.     private String parent_desc;  
  15.   
  16.     private String child_id;  
  17.   
  18.     private String child_desc;  
  19.   
  20.     private String child_short;  
  21.   
  22.     private String org_sort;  
  23.   
  24.     public String getParent_id() {  
  25.         return parent_id;  
  26.     }  
  27.   
  28.     public void setParent_id(String parent_id) {  
  29.         this.parent_id = parent_id;  
  30.     }  
  31.   
  32.     public String getParent_desc() {  
  33.         return parent_desc;  
  34.     }  
  35.   
  36.     public void setParent_desc(String parent_desc) {  
  37.         this.parent_desc = parent_desc;  
  38.     }  
  39.   
  40.     public String getChild_id() {  
  41.         return child_id;  
  42.     }  
  43.   
  44.     public void setChild_id(String child_id) {  
  45.         this.child_id = child_id;  
  46.     }  
  47.   
  48.     public String getChild_desc() {  
  49.         return child_desc;  
  50.     }  
  51.   
  52.     public void setChild_desc(String child_desc) {  
  53.         this.child_desc = child_desc;  
  54.     }  
  55.   
  56.     public String getChild_short() {  
  57.         return child_short;  
  58.     }  
  59.   
  60.     public void setChild_short(String child_short) {  
  61.         this.child_short = child_short;  
  62.     }  
  63.   
  64.     public String getOrg_sort() {  
  65.         return org_sort;  
  66.     }  
  67.   
  68.     public void setOrg_sort(String org_sort) {  
  69.         this.org_sort = org_sort;  
  70.     }  
  71.   
  72.     @Override  
  73.     public String toString() {  
  74.         return "Org [parent_id=" + parent_id + ", parent_desc=" + parent_desc + ", child_id=" + child_id  
  75.                 + ", child_desc=" + child_desc + ", child_short=" + child_short + ", org_sort=" + org_sort  
  76.                 + "]";  
  77.     }  
  78. }  

[java]  view plain  copy
  1. package com.neusoft.icelake.modules.standard.entity;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. import javax.xml.bind.annotation.XmlRootElement;  
  7.   
  8. @XmlRootElement(name = "SapOrgs")  
  9. public class Orgs {  
  10.     private List<Org> list;  
  11.   
  12.     private Org[] array;  
  13.   
  14.     private Map<String, Org> map;  
  15.   
  16.     public List<Org> getList() {  
  17.         return list;  
  18.     }  
  19.   
  20.     public void setList(List<Org> list) {  
  21.         this.list = list;  
  22.     }  
  23.   
  24.     public Org[] getArray() {  
  25.         return array;  
  26.     }  
  27.   
  28.     public void setArray(Org[] array) {  
  29.         this.array = array;  
  30.     }  
  31.   
  32.     public Map<String, Org> getMap() {  
  33.         return map;  
  34.     }  
  35.   
  36.     public void setMap(Map<String, Org> map) {  
  37.         this.map = map;  
  38.     }  
  39. }  

2、Mybatis mapper

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  
  3. <mapper namespace="com.neusoft.icelake.modules.standard.dao.IWholeQuantityDao">  
  4.     <resultMap id="EmpResultMap"  
  5.         type="com.neusoft.icelake.modules.standard.entity.Emp">  
  6.         <id column="accno" property="accno" jdbcType="VARCHAR" />  
  7.         <result column="truename" property="truename" jdbcType="VARCHAR" />  
  8.         <result column="gender" property="gender" jdbcType="VARCHAR" />  
  9.         <result column="office_mail" property="office_mail" jdbcType="VARCHAR" />  
  10.         <result column="title" property="title" jdbcType="VARCHAR" />  
  11.         <result column="dp_id" property="dp_id" jdbcType="VARCHAR" />  
  12.         <result column="person_sort" property="person_sort" jdbcType="VARCHAR" />  
  13.         <result column="del_tag" property="del_tag" jdbcType="VARCHAR" />  
  14.     </resultMap>  
  15.     <resultMap id="OrgResultMap"  
  16.         type="com.neusoft.icelake.modules.standard.entity.Org">  
  17.         <id column="child_id" property="child_id" jdbcType="VARCHAR" />  
  18.         <result column="child_desc" property="child_desc" jdbcType="VARCHAR" />  
  19.         <result column="child_short" property="child_short" jdbcType="VARCHAR" />  
  20.         <result column="parent_id" property="parent_id" jdbcType="VARCHAR" />  
  21.         <result column="parent_desc" property="parent_desc" jdbcType="VARCHAR" />  
  22.         <result column="org_sort" property="org_sort" jdbcType="VARCHAR" />  
  23.     </resultMap>  
  24.     <sql id="Emp_Column_List">  
  25.         accno, truename, gender, office_mail, title, dp_id,  
  26.         person_sort, del_tag  
  27.     </sql>  
  28.     <sql id="Org_Column_List">  
  29.         parent_id, parent_desc, child_id, child_desc, child_short,  
  30.         org_sort  
  31.     </sql>  
  32.     <select id="getEmpAll" resultMap="EmpResultMap">  
  33.         select  
  34.         <include refid="Emp_Column_List" />  
  35.         from v_person  
  36.     </select>  
  37.     <select id="getOrgAll" resultMap="OrgResultMap">  
  38.         select  
  39.         <include refid="Org_Column_List" />  
  40.         from v_sap_org_node  
  41.     </select>  
  42. </mapper>  

3、接口的服务类

[java]  view plain  copy
  1. package com.neusoft.icelake.modules.standard.service;  
  2.   
  3. import javax.ws.rs.GET;  
  4. import javax.ws.rs.Path;  
  5. import javax.ws.rs.Produces;  
  6. import javax.ws.rs.core.MediaType;  
  7.   
  8. import com.neusoft.icelake.modules.standard.entity.Emps;  
  9. import com.neusoft.icelake.modules.standard.entity.Orgs;  
  10.   
  11. @Path("/wq")  
  12. public interface IWholeQuantityService {  
  13.   
  14.     @GET  
  15.     @Path("/orglist")  
  16.     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })  
  17.     public Orgs getOrgList();  
  18.   
  19.     @GET  
  20.     @Path("/emplist")  
  21.     @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })  
  22.     public Emps getEmpList();  
  23. }  

4、接口的实现类

[java]  view plain  copy
  1. package com.neusoft.icelake.modules.standard.service.impl;  
  2.   
  3. import java.util.List;  
  4.   
  5. import javax.inject.Named;  
  6.   
  7. import org.springframework.beans.factory.annotation.Autowired;  
  8.   
  9. import com.neusoft.icelake.modules.standard.dao.IWholeQuantityDao;  
  10. import com.neusoft.icelake.modules.standard.entity.Emp;  
  11. import com.neusoft.icelake.modules.standard.entity.Emps;  
  12. import com.neusoft.icelake.modules.standard.entity.Org;  
  13. import com.neusoft.icelake.modules.standard.entity.Orgs;  
  14. import com.neusoft.icelake.modules.standard.service.IWholeQuantityService;  
  15.   
  16. @Named("wholeQuantityService")  
  17. public class WholeQuantityServiceImpl implements IWholeQuantityService {  
  18.     private IWholeQuantityDao wholeQuantityDao;  
  19.   
  20.     public IWholeQuantityDao getWholeQuantityDao() {  
  21.         return wholeQuantityDao;  
  22.     }  
  23.   
  24.     @Autowired  
  25.     public void setWholeQuantityDao(IWholeQuantityDao wholeQuantityDao) {  
  26.         this.wholeQuantityDao = wholeQuantityDao;  
  27.     }  
  28.   
  29.     @Override  
  30.     public Orgs getOrgList() {  
  31.         Orgs orgs = new Orgs();  
  32.         List<Org> orglist = wholeQuantityDao.getOrgAll();  
  33.         orgs.setList(orglist);  
  34.         return orgs;  
  35.     }  
  36.   
  37.     @Override  
  38.     public Emps getEmpList() {  
  39.         Emps emps = new Emps();  
  40.         List<Emp> emplist = wholeQuantityDao.getEmpAll();  
  41.         emps.setList(emplist);  
  42.         return emps;  
  43.     }  
  44. }  


运行项目:

打开浏览器,在地址栏输入:http://localhost:8080/restservice/rest?_wadl

可以看到我们发布的webservice的接口描述文件(wadl描述):



访问http://localhost:8080/restservice/rest/wq/orglist?_type=json,返回Json结果,

或者http://localhost:8080/restservice/rest/wq/orglist?_type=xml,返回XML


猜你喜欢

转载自blog.csdn.net/qq_30764991/article/details/80232310