Browse Source

Merge branch 'master' of luofaqiang/esb into master

罗发强 8 năm trước cách đây
mục cha
commit
a2000fb24e
35 tập tin đã thay đổi với 1653 bổ sung2522 xóa
  1. 88 40
      hos-arbiter/hos-arbiter.iml
  2. 102 41
      hos-broker/hos-broker.iml
  3. 33 5
      hos-broker/src/main/java/com/yihu/hos/services/GatewayService.java
  4. 0 54
      hos-core-dependencies/hos-core-dependencies.iml
  5. 0 189
      hos-core-dependencies/pom.xml
  6. 2 25
      hos-core/hos-core.iml
  7. 133 6
      hos-core/pom.xml
  8. 1 8
      hos-core/src/main/java/com/yihu/hos/core/http/HopHostnameVerifier.java
  9. 100 0
      hos-core/src/main/java/com/yihu/hos/core/http/CustomTrustClientClientImpl.java
  10. 236 0
      hos-core/src/main/java/com/yihu/hos/core/http/DefaultClientImpl.java
  11. 0 188
      hos-core/src/main/java/com/yihu/hos/core/http/HOPClient.java
  12. 46 0
      hos-core/src/main/java/com/yihu/hos/core/http/HTTPClient.java
  13. 23 0
      hos-core/src/main/java/com/yihu/hos/core/http/HTTPResponse.java
  14. 112 0
      hos-core/src/main/java/com/yihu/hos/core/http/HttpClientKit.java
  15. 0 274
      hos-core/src/main/java/com/yihu/hos/core/http/HttpClientUtil.java
  16. 0 144
      hos-core/src/main/java/com/yihu/hos/core/http/HttpsClient.java
  17. 0 73
      hos-core/src/main/java/com/yihu/hos/core/http/HttpsInitialise.java
  18. 0 20
      hos-core/src/main/java/com/yihu/hos/core/http/Response.java
  19. 0 341
      hos-core/src/main/java/com/yihu/hos/core/httpclient/HttpClientUtil.java
  20. 0 366
      hos-core/src/main/java/com/yihu/hos/core/httpclient/HttpHelper.java
  21. 0 34
      hos-core/src/main/java/com/yihu/hos/core/httpclient/HttpResponse.java
  22. 0 58
      hos-core/src/main/java/com/yihu/hos/core/webservice/WebserviceUtil.java
  23. 91 41
      hos-rest/hos-rest.iml
  24. 40 46
      hos-rest/src/main/java/com/yihu/hos/rest/common/http/EHRHttpHelper.java
  25. 223 218
      hos-rest/src/main/java/com/yihu/hos/rest/controllers/QLCController.java
  26. 71 97
      hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/EsbHttp.java
  27. 88 40
      hos-web-framework-dependencies/hos-web-framework-dependencies.iml
  28. 104 40
      hos-web-framework/hos-web-framework.iml
  29. 11 11
      src/main/java/com/yihu/hos/crawler/service/DataCollectDispatcher.java
  30. 98 112
      src/main/java/com/yihu/hos/crawler/service/EsbHttp.java
  31. 24 25
      src/main/java/com/yihu/hos/crawler/service/OldPatientCDAUpload.java
  32. 7 8
      src/main/java/com/yihu/hos/datacollect/service/DatacollectService.java
  33. 14 14
      src/main/java/com/yihu/hos/resource/controller/RsResourceController.java
  34. 1 1
      src/main/java/com/yihu/hos/resource/service/IRsResourceService.java
  35. 5 3
      src/main/java/com/yihu/hos/resource/service/impl/RsResourceServiceImpl.java

+ 88 - 40
hos-arbiter/hos-arbiter.iml

@ -14,55 +14,87 @@
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.16" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:springloaded:1.2.6.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.8.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -73,10 +105,23 @@
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.5" level="project" />
@ -91,7 +136,7 @@
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.5" level="project" />
@ -128,11 +173,12 @@
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
@ -145,22 +191,24 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-all:5.13.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:kahadb:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq.protobuf:activemq-protobuf:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.mqtt-client:mqtt-client:1.3" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch-transport:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>

+ 102 - 41
hos-broker/hos-broker.iml

@ -11,59 +11,103 @@
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.16" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.9.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:springloaded:1.2.6.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.8.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -74,10 +118,23 @@
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.5" level="project" />
@ -92,7 +149,7 @@
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.5" level="project" />
@ -129,11 +186,12 @@
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
@ -146,23 +204,26 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-all:5.13.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:kahadb:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq.protobuf:activemq-protobuf:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.mqtt-client:mqtt-client:1.3" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch-transport:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource:sigar:1.6.4" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.2.8.RELEASE" level="project" />
  </component>
</module>

+ 33 - 5
hos-broker/src/main/java/com/yihu/hos/services/GatewayService.java

@ -1,15 +1,20 @@
package com.yihu.hos.services;
import com.yihu.hos.common.configuration.GatewayConfiguration;
import com.yihu.hos.core.constants.CoreConstant;
import com.yihu.hos.core.constants.ExceptionConstant;
import com.yihu.hos.core.exception.ESBException;
import com.yihu.hos.core.http.HttpClientUtil;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.models.GatewayRequestResult;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
 * Created by chenweida on 2016/1/27.
 */
@ -24,11 +29,12 @@ public class GatewayService {
        String returnData;
        //拼凑出URL
        String url =  HttpClientUtil.getUrl(gatewayConfiguration.getIp(), gatewayConfiguration.getPort(), gatewayRequestResult.getApi());
        String url = getUrl(gatewayConfiguration.getIp(), gatewayConfiguration.getPort(), gatewayRequestResult.getApi());
        try {
            returnData = HttpClientUtil.doPost(url, JSONObject.fromObject(gatewayRequestResult.getParam()), null, null);
            System.out.print(JSONObject.fromObject(gatewayRequestResult.getParam()));
            returnData = HttpClientUtil.doGet(url, JSONObject.fromObject(gatewayRequestResult.getParam()), null, null);
            Map<String, String> params = getParams(gatewayRequestResult.getParam());
            returnData = HttpClientKit.post(url, params).getBody();
            System.out.print(returnData);
        } catch (Exception e) {
            throw new ESBException(ExceptionConstant.EHREXCEPTION_SYSTEM_TRANSFER, ExceptionConstant.EHREXCEPTION_SYSTEM_TRANSFER_MESSAGE);
        }
@ -40,4 +46,26 @@ public class GatewayService {
            throw new ESBException(ExceptionConstant.EHREXCEPTION_BUSINESS_PARAMS_EXCEPTION, ExceptionConstant.EHREXCEPTION_BUSINESS_PARAMS_EXCEPTION_MESSAGE);
        }
    }
    private String getUrl(String ip, String port, String api) {
        String url = CoreConstant.HTTP + CoreConstant.COLON + CoreConstant.BACKSLASH +
                CoreConstant.BACKSLASH + ip + CoreConstant.COLON + port +
                CoreConstant.BACKSLASH + api;
        return url;
    }
    private Map<String, String> getParams(String jsonParam) {
        JSONObject object = JSONObject.fromObject(jsonParam);
        Map<String, String> params = new HashMap<>();
        Iterator<?> keys = object.keys();
        while (keys.hasNext()) {
            String key = (String) keys.next();
            String value = object.getString(key);
            params.put(key, value);
        }
        return params;
    }
}

+ 0 - 54
hos-core-dependencies/hos-core-dependencies.iml

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: net.lingala.zip4j:zip4j:1.3.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.0" level="project" />
    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.3" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.3" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.3.0" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.7" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.7" level="project" />
    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:2.16" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.fastinfoset:FastInfoset:1.2.12" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
  </component>
</module>

+ 0 - 189
hos-core-dependencies/pom.xml

@ -1,189 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-core-dependencies</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <properties>
        <!--<jackson.version>2.4.6</jackson.version>-->
        <log4j.version>1.2.17</log4j.version>
        <log4j2.version>2.4.1</log4j2.version>
        <slf4j.version>1.7.21</slf4j.version>
    </properties>
    <pluginRepositories>
        <pluginRepository>
            <id>pluginCentral</id>
            <name>pluginCentral</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/central/</url>
        </pluginRepository>
        <pluginRepository>
            <id>pluginReleases</id>
            <name>pluginReleases</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/releases/</url>
        </pluginRepository>
    </pluginRepositories>
    <!--用于发布到服务器 对应setting的对应server表情里面的id -->
    <distributionManagement>
        <repository>
            <id>Releases</id>
            <name>Releases</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Snapshots</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
    <repositories>
        <repository>
            <id>repositoryCentral</id>
            <name>repositoryCentral</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/central/</url>
        </repository>
        <repository>
            <id>repositoryReleases</id>
            <name>repositoryReleases</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/releases/</url>
        </repository>
    </repositories>
    <dependencies>
        <!--zip start-->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--zip end-->
        <!--commons start-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.3</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.2</version>
        </dependency>
        <!--commons end-->
        <!--httpclient start-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.1</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.5.1</version>
        </dependency>
        <!--httpclient end-->
        <!--pinyin4j start-->
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.0</version>
        </dependency>
        <!--pinyin4j end-->
        <!--cxf start-->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-bindings-soap</artifactId>
            <version>3.0.0</version>
        </dependency>
        <!--cxf end-->
        <!--jackson start-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.4.6</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.4.6</version>
        </dependency>
        <!--jackson end-->
        <!-- Log framework start-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <!--SLF4J api-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
    </dependencies>
</project>

+ 2 - 25
hos-core/hos-core.iml

@ -18,32 +18,9 @@
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.3" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.3.0" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.7" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.7" level="project" />
    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:2.16" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.fastinfoset:FastInfoset:1.2.12" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.0" level="project" />

+ 133 - 6
hos-core/pom.xml

@ -7,18 +7,145 @@
    <groupId>com.yihu.hos</groupId>
    <artifactId>hos-core</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <parent>
        <groupId>com.yihu.hos</groupId>
        <artifactId>hos-core-dependencies</artifactId>
        <version>1.1.1-SNAPSHOT</version>
        <relativePath>../hos-core-dependencies</relativePath>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <log4j.version>1.2.17</log4j.version>
        <log4j2.version>2.4.1</log4j2.version>
        <slf4j.version>1.7.21</slf4j.version>
    </properties>
    <pluginRepositories>
        <pluginRepository>
            <id>pluginCentral</id>
            <name>pluginCentral</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/central/</url>
        </pluginRepository>
        <pluginRepository>
            <id>pluginReleases</id>
            <name>pluginReleases</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/releases/</url>
        </pluginRepository>
    </pluginRepositories>
    <!--用于发布到服务器 对应setting的对应server表情里面的id -->
    <distributionManagement>
        <repository>
            <id>Releases</id>
            <name>Releases</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Snapshots</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
    <repositories>
        <repository>
            <id>repositoryCentral</id>
            <name>repositoryCentral</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/central/</url>
        </repository>
        <repository>
            <id>repositoryReleases</id>
            <name>repositoryReleases</name>
            <url>http://172.19.103.47:8081/nexus/content/repositories/releases/</url>
        </repository>
    </repositories>
    <dependencies>
        <!--zip start-->
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--zip end-->
        <!--commons start-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.3</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.2</version>
        </dependency>
        <!--commons end-->
        <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!--pinyin4j start-->
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.0</version>
        </dependency>
        <!--pinyin4j end-->
        <!--jackson start-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.4.6</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.4.6</version>
        </dependency>
        <!--jackson end-->
        <!-- Log framework start-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <!--SLF4J api-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>

+ 1 - 8
hos-core/src/main/java/com/yihu/hos/core/http/HopHostnameVerifier.java

@ -8,15 +8,8 @@ import javax.net.ssl.SSLSession;
 * @version 1.0
 * @created 2015.07.02 15:48
 */
public class HopHostnameVerifier implements HostnameVerifier {
    @Override
public class AllowAllHostnameVerifier implements HostnameVerifier {
    public boolean verify(String hostname, SSLSession session) {
//        if("localhost".equals(hostname)){
//            return true;
//        } else {
//            return false;
//        }
        return true;
    }
}

+ 100 - 0
hos-core/src/main/java/com/yihu/hos/core/http/CustomTrustClientClientImpl.java

@ -0,0 +1,100 @@
package com.yihu.hos.core.http;
import okhttp3.OkHttpClient;
import javax.net.ssl.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Collection;
/**
 * 用于非受信证书的HTTPS访问
 *
 * @created Airhead 2016/8/24.
 */
class CustomTrustClientClientImpl extends DefaultClientImpl {
    CustomTrustClientClientImpl() {
        try {
            final TrustManager[] trustManagers = new TrustManager[]{
                    new X509TrustManager() {
                        @Override
                        public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                        }
                        @Override
                        public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
                        }
                        @Override
                        public X509Certificate[] getAcceptedIssuers() {
                            return new X509Certificate[0];
                        }
                    }
            };
            final SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null, trustManagers, new SecureRandom());
            SSLSocketFactory socketFactory = sslContext.getSocketFactory();
            OkHttpClient httpClient = new OkHttpClient.Builder()
                    .sslSocketFactory(socketFactory, (X509TrustManager) trustManagers[0])
                    .hostnameVerifier(new AllowAllHostnameVerifier()).build();
            setHttpClient(httpClient);
        } catch (NoSuchAlgorithmException | KeyManagementException e) {
            e.printStackTrace();
        }
    }
    CustomTrustClientClientImpl(String path, String password) {
        try {
            InputStream inputStream = new FileInputStream(new File(path));
            CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
            Collection<? extends Certificate> certificates = certificateFactory.generateCertificates(inputStream);
            KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
            InputStream in = null;
            keyStore.load(in, password.toCharArray());
            int index = 0;
            for (Certificate certificate : certificates) {
                String certificateAlias = Integer.toString(index++);
                keyStore.setCertificateEntry(certificateAlias, certificate);
            }
            KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            keyManagerFactory.init(keyStore, password.toCharArray());
            TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
            KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
            trustStore.load(inputStream, password.toCharArray());
            trustManagerFactory.init(trustStore);
            TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
            if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509KeyManager)) {
                throw new IllegalStateException("Unexpectd default trust managers:" + Arrays.toString(trustManagers));
            }
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null, trustManagers, new SecureRandom());
            SSLSocketFactory socketFactory = sslContext.getSocketFactory();
            OkHttpClient httpClient = new OkHttpClient.Builder()
                    .sslSocketFactory(socketFactory, (X509TrustManager) trustManagers[0])
                    .hostnameVerifier(new AllowAllHostnameVerifier()).build();
            setHttpClient(httpClient);
        } catch (NoSuchAlgorithmException | KeyStoreException | CertificateException | IOException | KeyManagementException | UnrecoverableKeyException e) {
            e.printStackTrace();
        }
    }
}

+ 236 - 0
hos-core/src/main/java/com/yihu/hos/core/http/DefaultClientImpl.java

@ -0,0 +1,236 @@
package com.yihu.hos.core.http;
import okhttp3.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Map;
/**
 * @created Airhead 2016/8/24.
 */
class DefaultClientImpl implements HTTPClient {
    private static final Log log = LogFactory.getLog(DefaultClientImpl.class);
    private OkHttpClient httpClient;
    DefaultClientImpl() {
        this.httpClient = new OkHttpClient();
    }
    public HTTPResponse get(String url) {
        return get(url, null);
    }
    public HTTPResponse get(String url, Map<String, String> params) {
        return get(url, params, null);
    }
    public HTTPResponse get(String url, Map<String, String> params, Map<String, String> headers) {
        try {
            Request.Builder builder = new Request.Builder();
            if (headers != null) {
                builder.headers(Headers.of(headers));
            }
            Request request = builder
                    .url(formatURL(url, params))
                    .build();
            Response response = httpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return new HTTPResponse(response.code(), response.body().string());
            }
        } catch (IOException ex) {
            log.error(ex.getMessage());
        }
        return new HTTPResponse(500, "");
    }
    public HTTPResponse post(String url) {
        return post(url, null);
    }
    public HTTPResponse post(String url, Map<String, String> params) {
        return post(url, params, null);
    }
    public HTTPResponse post(String url, Map<String, String> params, Map<String, String> headers) {
        try {
            FormBody.Builder fromBodyBuilder = new FormBody.Builder();
            params.forEach(fromBodyBuilder::add);
            RequestBody requestBody = fromBodyBuilder
                    .build();
            Request.Builder builder = new Request.Builder();
            if (headers != null) {
                builder.headers(Headers.of(headers));
            }
            Request request = builder
                    .url(url)
                    .post(requestBody)
                    .build();
            Response response = httpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return new HTTPResponse(response.code(), response.body().string());
            }
        } catch (IOException ex) {
            log.error(ex.getMessage());
        }
        return new HTTPResponse(500, "");
    }
    public HTTPResponse postFile(String url, String path) {
        return postFile(url, path, null);
    }
    public HTTPResponse postFile(String url, String path, Map<String, String> params) {
        return postFile(url, path, params, null);
    }
    public HTTPResponse postFile(String url, String path, Map<String, String> params, Map<String, String> headers) {
        try {
            File file = new File(path);
            final MediaType textPlain = MediaType.parse("text/plain; charset=utf-8");
            Request.Builder builder = new Request.Builder();
            if (headers != null) {
                builder.headers(Headers.of(headers));
            }
            Request request = builder
                    .url(formatURL(url, params))
                    .post(RequestBody.create(textPlain, file))
                    .build();
            Response response = httpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return new HTTPResponse(response.code(), response.body().string());
            }
        } catch (IOException ex) {
            log.error(ex.getMessage());
        }
        return new HTTPResponse(500, "");
    }
    public HTTPResponse put(String url) {
        return put(url, null);
    }
    public HTTPResponse put(String url, Map<String, String> params) {
        return put(url, params, null);
    }
    public HTTPResponse put(String url, Map<String, String> params, Map<String, String> headers) {
        try {
            FormBody.Builder fromBodyBuilder = new FormBody.Builder();
            params.forEach(fromBodyBuilder::add);
            RequestBody requestBody = fromBodyBuilder
                    .build();
            Request.Builder builder = new Request.Builder();
            if (headers != null) {
                builder.headers(Headers.of(headers));
            }
            Request request = builder
                    .url(url)
                    .put(requestBody)
                    .build();
            Response response = httpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return new HTTPResponse(response.code(), response.body().string());
            }
        } catch (IOException ex) {
            log.error(ex.getMessage());
        }
        return new HTTPResponse(500, "");
    }
    public HTTPResponse delete(String url) {
        return delete(url, null);
    }
    public HTTPResponse delete(String url, Map<String, String> params) {
        return delete(url, params, null);
    }
    public HTTPResponse delete(String url, Map<String, String> params, Map<String, String> headers) {
        try {
            FormBody.Builder fromBodyBuilder = new FormBody.Builder();
            params.forEach(fromBodyBuilder::add);
            RequestBody requestBody = fromBodyBuilder
                    .build();
            Request.Builder builder = new Request.Builder();
            if (headers != null) {
                builder.headers(Headers.of(headers));
            }
            Request request = builder
                    .url(url)
                    .delete(requestBody)
                    .build();
            Response response = httpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return new HTTPResponse(response.code(), response.body().string());
            }
        } catch (IOException ex) {
            log.error(ex.getMessage());
        }
        return new HTTPResponse(500, "");
    }
    public HTTPResponse request(String method, String url, Map<String, String> params, Map<String, String> headers) {
        if (method.equals(POST)) {
            return post(url, params, headers);
        }
        if (method.equals(GET)) {
            return get(url, params, headers);
        }
        if (method.equals(PUT)) {
            return put(url, params, headers);
        }
        if (method.equals(DELETE)) {
            return delete(url, params, headers);
        }
        return get(url, params, headers);
    }
    protected void setHttpClient(OkHttpClient okHttpClient) {
        this.httpClient = okHttpClient;
    }
    private String formatURL(String url, Map<String, String> params) {
        if (params == null) {
            return url;
        }
        final String[] query = {""};
        params.forEach((name, value) -> {
            try {
                query[0] += "&" + name + URLEncoder.encode(value, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException("encode url ");
            }
        });
        if (url.contains("?")) {
            return url + query[0];
        }
        return url + "?" + query[0].substring(1);
    }
}

+ 0 - 188
hos-core/src/main/java/com/yihu/hos/core/http/HOPClient.java

@ -1,188 +0,0 @@
package com.yihu.hos.core.http;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.file.FileUtil;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @author Air
 * @version 1.0
 * @created 2015.07.08 14:12
 */
public class HOPClient {
    static private final Logger logger = LoggerFactory.getLogger(HOPClient.class);
    private final String version = "1.0";
    private final String signMethod = "md5";
    private String method;
    private String timestamp;
    private String format;
    private String appKey="hos";
    private String accessToken;
    private String secretKey = "hos";
    private String url;
    private TreeMap<String, String> paramMap;
    private HttpsClient httpsClient;
    public HOPClient() {
        paramMap = new TreeMap<>();
        httpsClient = new HttpsClient();
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public void setFormat(String format) {
        this.format = format;
    }
    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public void setParam(String key, String value) {
        paramMap.put(key, value);
    }
    public void setSecretKey(String secretKey) {
        this.secretKey = secretKey;
    }
    public Response get() {
        String completeUrl = completeUrl();
        if (completeUrl == null){
            return null;
        }
        return httpsClient.get(completeUrl);
    }
    public boolean downLoad(String path) {
        String completeUrl = completeUrl();
        if (completeUrl == null){
            return false;
        }
        Response response = httpsClient.get(completeUrl);
        if (response.statusCode != 200) {
            return false;
        }
        try {
            boolean result = FileUtil.writeFile(path, response.body, "UTF-8");
            if (!result) {
                logger.error("下载文件失败.");
            }
            return result;
        } catch (IOException e) {
            logger.error("下载文件失败.");
        }
        return false;
    }
    public Response postForm(List<NameValuePair> formParams) {
        String completeUrl = completeUrl();
        return httpsClient.postForm(completeUrl, formParams);
    }
    public Response postFile(String filePath) {
        String completeUrl = completeUrl();
        return httpsClient.postFile(completeUrl, filePath);
    }
    private String completeUrl() {
        try {
            addParam("method", method, true);
            addParam("format", format, false);
            addParam("app_key", appKey, true);
            addParam("timestamp", getTimestamp(), true);
            addParam("v", version, true);
            addParam("sign_method", signMethod, true);
            addParam("access_token", accessToken, false);
            addParam("sign", signParam(), true);
            return url + genParam();
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
        return null;
    }
    private void addParam(String paramName, String paramValue, boolean bMust) throws Exception {
        if (StringUtils.isEmpty(paramValue)) {
            if (bMust) {
                throw new Exception(paramName + "参数不能为空.");
            } else {
                return;
            }
        }
        String encodeValue = URLEncoder.encode(paramValue, "UTF-8");
        paramMap.put(paramName, encodeValue);
    }
    private String signParam() {
        Iterator<Map.Entry<String, String>> iterator = paramMap.entrySet().iterator();
        StringBuilder builder = new StringBuilder(secretKey);
        while (iterator.hasNext()) {
            Map.Entry<String, String> next = iterator.next();
            String key = next.getKey();
            String value = next.getValue();
            builder.append(key);
            builder.append(value);
        }
        try {
            return MD5.hash(builder.toString());
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
        return null;
    }
    private String genParam() {
        Iterator<Map.Entry<String, String>> iterator = paramMap.entrySet().iterator();
        StringBuilder builder = new StringBuilder();
        while (iterator.hasNext()) {
            Map.Entry<String, String> next = iterator.next();
            String key = next.getKey();
            String value = next.getValue();
            if (builder.length() == 0) {
                builder.append("?");
            } else {
                builder.append("&");
            }
            builder.append(key);
            builder.append("=");
            builder.append(value);
        }
        return builder.toString();
    }
    private String getTimestamp() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        timestamp = format.format(new Date());
        return timestamp;
    }
}

+ 46 - 0
hos-core/src/main/java/com/yihu/hos/core/http/HTTPClient.java

@ -0,0 +1,46 @@
package com.yihu.hos.core.http;
import java.util.Map;
/**
 * @created Airhead 2016/8/24.
 */
public interface HTTPClient {
    //主要的几种方法,其他的暂时未使用
    String GET = "GET";
    String POST = "POST";
    String PUT = "PUT";
    String DELETE = "DELETE";
    HTTPResponse get(String url);
    HTTPResponse get(String url, Map<String, String> params);
    HTTPResponse get(String url, Map<String, String> params, Map<String, String> headers);
    HTTPResponse post(String url);
    HTTPResponse post(String url, Map<String, String> params);
    HTTPResponse post(String url, Map<String, String> params, Map<String, String> headers);
    HTTPResponse postFile(String url, String path);
    HTTPResponse postFile(String url, String path, Map<String, String> params);
    HTTPResponse postFile(String url, String path, Map<String, String> params, Map<String, String> headers);
    HTTPResponse put(String url);
    HTTPResponse put(String url, Map<String, String> params);
    HTTPResponse put(String url, Map<String, String> params, Map<String, String> headers);
    HTTPResponse delete(String url);
    HTTPResponse delete(String url, Map<String, String> params);
    HTTPResponse delete(String url, Map<String, String> params, Map<String, String> headers);
    HTTPResponse request(String method, String url, Map<String, String> params, Map<String, String> headers);
}

+ 23 - 0
hos-core/src/main/java/com/yihu/hos/core/http/HTTPResponse.java

@ -0,0 +1,23 @@
package com.yihu.hos.core.http;
/**
 * @created Airhead 2016/8/24.
 */
public class HTTPResponse {
    private final int statusCode;// e.g. 200
    private final String body;
    public HTTPResponse(int statusCode, String body) {
        this.statusCode = statusCode;
        this.body = body;
    }
    public int getStatusCode() {
        return statusCode;
    }
    public String getBody() {
        return body;
    }
}

+ 112 - 0
hos-core/src/main/java/com/yihu/hos/core/http/HttpClientKit.java

@ -0,0 +1,112 @@
package com.yihu.hos.core.http;
import javafx.util.Pair;
import java.util.HashMap;
import java.util.Map;
/**
 * @created Airhead 2016/8/24.
 */
public class HttpClientKit {
    private static Map<String, Pair<String, String>> keyStoreMap = new HashMap<>();
    /**
     * 用于HTTP和受信HTTPS
     *
     * @return
     */
    public static HTTPClient use() {
        return new DefaultClientImpl();
    }
    /**
     * 用于非受信HTTPS
     *
     * @param host host正常情况是不需要包含端口号的。
     *             但在非域名(或开发)时,不同的端口会使用不同证书,
     *             在添加host时,可以增加端口号
     *             格式:
     *             1.ip:port
     *             2.domain
     * @return
     */
    public static HTTPClient custom(String host) {
        if (host != null) {
            Pair<String, String> keyStore = keyStoreMap.get(host);
            if (keyStore != null) {
                return new CustomTrustClientClientImpl(keyStore.getKey(), keyStore.getValue());
            }
        }
        return new CustomTrustClientClientImpl();
    }
    public static void addKeyStore(String host, String file, String password) throws Exception {
        keyStoreMap.put(host, new Pair<>(file, password));
    }
    public static HTTPResponse get(String url) {
        return use().get(url);
    }
    public static HTTPResponse get(String url, Map<String, String> params) {
        return use().get(url, params);
    }
    public static HTTPResponse get(String url, Map<String, String> params, Map<String, String> headers) {
        return use().get(url, params, headers);
    }
    public static HTTPResponse post(String url) {
        return use().post(url);
    }
    public static HTTPResponse post(String url, Map<String, String> params) {
        return use().post(url, params);
    }
    public static HTTPResponse post(String url, Map<String, String> params, Map<String, String> headers) {
        return use().post(url, params, headers);
    }
    public static HTTPResponse postFile(String url, String path) {
        return use().postFile(url, path);
    }
    public static HTTPResponse postFile(String url, String path, Map<String, String> params) {
        return use().postFile(url, path, params);
    }
    public static HTTPResponse postFile(String url, String path, Map<String, String> params, Map<String, String> headers) {
        return use().postFile(url, path, params, headers);
    }
    public static HTTPResponse put(String url) {
        return use().put(url);
    }
    public static HTTPResponse put(String url, Map<String, String> params) {
        return use().put(url, params);
    }
    public static HTTPResponse put(String url, Map<String, String> params, Map<String, String> headers) {
        return use().put(url, params, headers);
    }
    public static HTTPResponse delete(String url) {
        return use().delete(url);
    }
    public static HTTPResponse delete(String url, Map<String, String> params) {
        return use().delete(url, params);
    }
    public static HTTPResponse delete(String url, Map<String, String> params, Map<String, String> headers) {
        return use().delete(url, params, headers);
    }
    public static HTTPResponse request(String method, String url, Map<String, String> params, Map<String, String> headers) {
        return use().request(method, url, params, headers);
    }
}

+ 0 - 274
hos-core/src/main/java/com/yihu/hos/core/http/HttpClientUtil.java

@ -1,274 +0,0 @@
package com.yihu.hos.core.http;
import com.yihu.hos.core.constants.CoreConstant;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.*;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * HTTP 请求工具类
 *
 * @author : cwd
 * @version : 1.0.0
 * @date : 2016/1/14
 * @see : TODO
 */
public class HttpClientUtil {
    public static String getUrl(String ip, String port, String api) {
        String url = CoreConstant.HTTP + CoreConstant.COLON + CoreConstant.BACKSLASH +
                        CoreConstant.BACKSLASH + ip + CoreConstant.COLON + port +
                            CoreConstant.BACKSLASH + api;
        return url;
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 不加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url) throws Exception {
        return doGet(url, new HashMap<String, Object>(), "", "");
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 不加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url, Map<String, Object> params) throws Exception {
        return doGet(url, params, "", "");
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url, String username, String password) throws Exception {
        return doGet(url, new HashMap<String, Object>(), username, password);
    }
    /**
     * httpClient的get请求方式
     *
     * @return
     * @throws Exception
     */
    public static String doGet(String url, Map<String, Object> params, String username, String password)
            throws Exception {
        String responString = "";
        CloseableHttpResponse response1 = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        //设置请求信息
        try {
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            HttpGet httpget = new HttpGet(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
            httpget.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response1 = httpclient.execute(httpget, context);
            } else {
                response1 = httpclient.execute(httpget);
            }
            HttpEntity entity1 = response1.getEntity();
            responString = EntityUtils.toString(entity1, "UTF-8");
        } finally {
            response1.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * httpClient的post请求方式
     *
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doPost(String url, Map<String, Object> params, String username, String password) throws Exception {
        String responString = "";
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpPost httpPost = new HttpPost(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //设置参数
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                formparams.add(new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
            httpPost.setEntity(entity);
            httpPost.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpPost, context);
            } else {
                response = httpclient.execute(httpPost);
            }
            HttpEntity httpEntity = response.getEntity();
            //流转字符串
            responString = EntityUtils.toString(httpEntity);
        } catch (Exception e){
            e.printStackTrace();
        }finally {
            response.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * httpClient的put请求方式
     *
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doPut(String url, Map<String, Object> params, String username, String password) throws Exception {
        String responString = "";
        CloseableHttpResponse response1 = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            HttpPut httpPut = new HttpPut(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
            httpPut.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response1 = httpclient.execute(httpPut, context);
            } else {
                response1 = httpclient.execute(httpPut);
            }
            HttpEntity entity1 = response1.getEntity();
            responString = EntityUtils.toString(entity1, "UTF-8");
        } finally {
            response1.close();
            httpclient.close();
        }
        return responString;
    }
    /**
     * httpClient的delete请求方式
     *
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doDelete(String url, Map<String, Object> params, String username, String password) throws Exception {
        String responString = "";
        CloseableHttpResponse response1 = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            HttpDelete httpget = new HttpDelete(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
            httpget.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response1 = httpclient.execute(httpget, context);
            } else {
                response1 = httpclient.execute(httpget);
            }
            HttpEntity entity1 = response1.getEntity();
            responString = EntityUtils.toString(entity1, "UTF-8");
        } finally {
            response1.close();
            httpclient.close();
        }
        return responString;
    }
    public static void main(String[] args) throws Exception {
        try {
            String result = doGet("http://192.168.131.106:6666/test2/hello");
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

+ 0 - 144
hos-core/src/main/java/com/yihu/hos/core/http/HttpsClient.java

@ -1,144 +0,0 @@
package com.yihu.hos.core.http;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.FileEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
 * @author Air
 * @version 1.0
 * @created 2015.07.02 15:37
 */
public class HttpsClient {
    static private final Logger logger = LoggerFactory.getLogger(HttpsClient.class);
    public HttpsClient() {
    }
    public Response get(String url) {
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(HttpsInitialise.getInstance().getSslConnectionSocketFactory())
                .build();
        HttpGet httpget = new HttpGet(url);
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            response = httpclient.execute(httpget);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException ex) {
            logger.error(ex.getMessage());
        } finally {
            try {
                EntityUtils.consume(entity);
            } catch (IOException ex) {
                logger.error(ex.getMessage());
            }
            try {
                httpclient.close();
            } catch (IOException ex) {
                logger.error(ex.getMessage());
            }
        }
        return null;
    }
    public Response postForm(String url, List<NameValuePair> formParams) {
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(HttpsInitialise.getInstance().getSslConnectionSocketFactory())
                .build();
        UrlEncodedFormEntity postEntity = new UrlEncodedFormEntity(formParams, Consts.UTF_8);
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(postEntity);
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            response = httpclient.execute(httpPost);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException ex) {
            logger.error(ex.getMessage());
        } finally {
            try {
                EntityUtils.consume(entity);
            } catch (IOException ex) {
                logger.error(ex.getMessage());
            }
            try {
                httpclient.close();
            } catch (IOException ex) {
                logger.error(ex.getMessage());
            }
        }
        return null;
    }
    public Response postFile(String url, String filePath) {
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(HttpsInitialise.getInstance().getSslConnectionSocketFactory())
                .build();
        File file = new File(filePath);
        FileEntity fileEntity = new FileEntity(file,
                ContentType.create("text/plain", "UTF-8"));
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(fileEntity);
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            response = httpclient.execute(httpPost);
            entity = response.getEntity();
            Response res = new Response(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException ex) {
            logger.error(ex.getMessage());
        } finally {
            try {
                EntityUtils.consume(entity);
            } catch (IOException ex) {
                logger.error(ex.getMessage());
            }
            try {
                httpclient.close();
            } catch (IOException ex) {
                logger.error(ex.getMessage());
            }
        }
        return null;
    }
}

+ 0 - 73
hos-core/src/main/java/com/yihu/hos/core/http/HttpsInitialise.java

@ -1,73 +0,0 @@
package com.yihu.hos.core.http;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
import javax.net.ssl.SSLContext;
import java.io.File;
/**
 * Https相关环境初始化
 *
 * @author Air
 * @version 1.0
 * @created 2015.07.07 9:21
 */
public class HttpsInitialise {
    static private final Logger logger = LoggerFactory.getLogger(HttpsInitialise.class);
    private static volatile HttpsInitialise instance = null;
    private SSLContext sslcontext;
    private SSLConnectionSocketFactory sslConnectionSocketFactory;
    private HttpsInitialise() {
    }
    public void finalize() throws Throwable {
    }
    public static HttpsInitialise getInstance() {
        if (instance == null) {
            synchronized (HttpsInitialise.class) {
                if (instance == null) {
                    try {
                        instance = new HttpsInitialise();
                    } catch (Exception ex) {
                        logger.error(ex.getMessage());
                    }
                }
            }
        }
        return instance;
    }
    /**
     * 初始化SSLConnectionSocketFactory.
     *
     * @param password       密码
     * @param trustStorePath 信任库路径
     * @throws Exception
     */
    public void  init(String trustStorePath, String password) throws Exception {
        sslcontext = SSLContexts.custom()
                .loadTrustMaterial(new File(trustStorePath), password.toCharArray(),
                        new TrustSelfSignedStrategy())
                .build();
        // Allow TLSv1 protocol only
        sslConnectionSocketFactory = new SSLConnectionSocketFactory(
                sslcontext,
                new String[]{"TLSv1"},
                null,
                new HopHostnameVerifier());
    }
    public SSLConnectionSocketFactory getSslConnectionSocketFactory() {
        return sslConnectionSocketFactory;
    }
}

+ 0 - 20
hos-core/src/main/java/com/yihu/hos/core/http/Response.java

@ -1,20 +0,0 @@
package com.yihu.hos.core.http;
/**
 * @author Air
 * @version 1.0
 * @created 2015.07.02 14:43
 */
public class Response {
    public Response(int statusCode, String body) {
        this.statusCode = statusCode;
        this.body = body;
    }
    public final int statusCode;// e.g. 200
    public final String body;
//    public final String status; // e.g. "200 OK"
//    public final String proto; // e.g. "HTTP/1.0"
//    public final int protoMajor;     // e.g. 1
//    public final int protoMinor;    // e.g. 0
}

+ 0 - 341
hos-core/src/main/java/com/yihu/hos/core/httpclient/HttpClientUtil.java

@ -1,341 +0,0 @@
package com.yihu.hos.core.httpclient;
import com.yihu.hos.core.encode.Base64;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.*;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import java.io.*;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * Created by hzp on 2016/4/14.
 */
public class HttpClientUtil {
    /**************************** 私有方法 *****************************************/
    private static CloseableHttpClient getCloseableHttpClient(SSLConnectionSocketFactory ssl) {
        if(ssl == null)
        {
            return HttpClients.createDefault();
        }
        else{
            CloseableHttpClient httpClient = HttpClients.custom()
                    .setSSLSocketFactory(ssl)
                    .build();
            return httpClient;
        }
    }
    private static void close(CloseableHttpClient httpClient, CloseableHttpResponse response) {
        try {
            if (httpClient != null) {
                httpClient.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            if (response != null) {
                response.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private static HttpRequestBase getRequest(String method,String url,Map<String,Object> params,Map<String,Object> header) throws Exception
    {
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        //配置参数
        if(params!=null) {
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
        }
        HttpRequestBase request;
        if(method.equals("POST"))
        {
            request = new HttpPost(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
        }
        else if(method.equals("PUT"))
        {
            request = new HttpPut(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
        }
        else if(method.equals("DELETE"))
        {
            request = new HttpDelete(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
        }
        else
        {
            request = new HttpGet(url + "?" + URLEncodedUtils.format(jsonParams, Consts.UTF_8));
        }
        //配置头部信息
        if(header!=null)
        {
            for (String key : header.keySet()) {
                request.addHeader(key, header.get(key).toString());
            }
        }
        return request;
    }
    /****************************** 公用方法 *******************************************/
    /**
     * get请求
     */
    public static HttpResponse request(String method,String url,Map<String,Object> params,Map<String,Object> header,SSLConnectionSocketFactory ssl,String user,String password) {
        HttpResponse re = new HttpResponse();
        CloseableHttpResponse response = null;
        CloseableHttpClient httpclient = getCloseableHttpClient(ssl);
        //设置请求信息
        try {
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            HttpRequestBase request = getRequest(method,url,params,header);
            request.setConfig(requestConfig);
            //需要验证
            if (!StringUtils.isEmpty(user) && !StringUtils.isEmpty(password)) {
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),new org.apache.http.auth.UsernamePasswordCredentials(user, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(request, context);
            } else {
                response = httpclient.execute(request);
            }
            re.setStatusCode(response.getStatusLine().getStatusCode());
            re.setBody(EntityUtils.toString(response.getEntity(), "UTF-8"));
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            e.printStackTrace();
        } finally {
            close(httpclient, response);
        }
        return re;
    }
    /**
     * 发送文件
     *
     * @param url        路径
     * @param formParams 参数
     * @return
     */
    public static HttpResponse postFile(String url,
                                    File file, List<NameValuePair> formParams,SSLConnectionSocketFactory ssl, String username, String password, Map<String,Object> header) {
        HttpResponse re = new HttpResponse();
        CloseableHttpResponse response = null;
        CloseableHttpClient httpClient = getCloseableHttpClient(ssl);
        try{
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //创建httppost请求
            HttpPost httpPost = new HttpPost(url);
            if(header!=null) {
                for (String key : header.keySet()) {
                    httpPost.addHeader(key, header.get(key).toString());
                }
            }
            httpPost.setConfig(requestConfig);
            //新建文件对象并且设置文件
            FileBody bin = new FileBody(file);
            MultipartEntityBuilder reqEntity = MultipartEntityBuilder.create();
            reqEntity.addBinaryBody("pack", file);
//            reqEntity.addPart("file", bin);
            //设置参数
            if (formParams != null && formParams.size() > 0) {
                for (NameValuePair nv : formParams) {
                    reqEntity.addTextBody(nv.getName(), nv.getValue(), ContentType.create("text/plain", Charset.forName(HTTP.UTF_8)));
                }
            }
            httpPost.setEntity(reqEntity.build());
            //设置验证
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpClient.execute(httpPost, context);
            } else {
                response = httpClient.execute(httpPost);
            }
            re.setStatusCode(response.getStatusLine().getStatusCode());
            re.setBody(EntityUtils.toString(response.getEntity(), "UTF-8"));;
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            System.out.print(e.getMessage());
        } finally {
            close(httpClient, response);
        }
        return re;
    }
    /**
     * 发送File
     */
    public static File downLoadFileByBase64(String filePath, Map<String, Object> params, String url, String username, String password) {
        File file = null;
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = getCloseableHttpClient(null);
        try {
            HttpPost httpPost = new HttpPost(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            //设置参数
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                formparams.add(new BasicNameValuePair(entry.getKey(), String.valueOf(entry.getValue())));
            }
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
            httpPost.setEntity(entity);
            httpPost.setConfig(requestConfig);
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpPost, context);
            } else {
                response = httpclient.execute(httpPost);
            }
            HttpEntity httpEntity = response.getEntity();
            String responString = EntityUtils.toString(httpEntity, "UTF-8");
            file = new File(filePath);
            file.getParentFile().mkdirs();
            InputStream i = new ByteArrayInputStream(Base64.decode(responString));
            FileOutputStream fileout = new FileOutputStream(file);
            /**
             * 根据实际运行效果 设置缓冲区大小
             */
            byte[] buffer = new byte[1024];
            int ch = 0;
            while ((ch = i.read(buffer)) != -1) {
                fileout.write(buffer, 0, ch);
            }
            i.close();
            fileout.flush();
            fileout.close();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            close(httpclient, response);
        }
        return file;
    }
    public static HttpResponse postForm(String url, List<NameValuePair> formParams) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        UrlEncodedFormEntity postEntity = new UrlEncodedFormEntity(formParams, Consts.UTF_8);
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(postEntity);
        CloseableHttpResponse response = null;
        HttpEntity entity = null;
        try {
            response = httpClient.execute(httpPost);
            entity = response.getEntity();
            HttpResponse res = new HttpResponse(response.getStatusLine().getStatusCode(), EntityUtils.toString(entity));
            return res;
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(httpClient, response);
        }
        return null;
    }
    /**
     * 下载文件
     */
    public static File downLoadFile(String filePath, String url, String username, String password) {
        File file = null;
        CloseableHttpResponse response = null;
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        CloseableHttpClient httpclient = getCloseableHttpClient(null);
        try {
            HttpGet httpGet = new HttpGet(url);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().
                    setAuthenticationEnabled(true).build();
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                HttpClientContext context = HttpClientContext.create();
                //通过http的上下文设置账号密码
                CredentialsProvider credsProvider = new BasicCredentialsProvider();
                credsProvider.setCredentials(new org.apache.http.auth.AuthScope(org.apache.http.auth.AuthScope.ANY_HOST, org.apache.http.auth.AuthScope.ANY_PORT),
                        new org.apache.http.auth.UsernamePasswordCredentials(username, password));
                context.setCredentialsProvider(credsProvider);
                response = httpclient.execute(httpGet, context);
            } else {
                response = httpclient.execute(httpGet);
            }
            HttpEntity httpEntity = response.getEntity();
            InputStream is = httpEntity.getContent();
            file = new File(filePath);
            file.getParentFile().mkdirs();
            FileOutputStream fileout = new FileOutputStream(file);
            /**
             * 根据实际运行效果 设置缓冲区大小
             */
            byte[] buffer = new byte[1024];
            int ch = 0;
            while ((ch = is.read(buffer)) != -1) {
                fileout.write(buffer, 0, ch);
            }
            is.close();
            fileout.flush();
            fileout.close();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            close(httpclient, response);
        }
        return file;
    }
}

+ 0 - 366
hos-core/src/main/java/com/yihu/hos/core/httpclient/HttpHelper.java

@ -1,366 +0,0 @@
package com.yihu.hos.core.httpclient;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.GzipDecompressingEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.GZIPInputStream;
public class HttpHelper {
    public static String defaultHttpUrl;
    public static String clientId;
    public static String clientKey;
    public static String httpGateway;
    private static String defaultPropertiesPath = "config/http.properties";
    private static SSLConnectionSocketFactory defaultSSL;
    private static String defaultHttpUser;
    private static String defaultHttpPassword;
    static {
//        //默认配置
//        try {
//            Resource resource = new ClassPathResource(defaultPropertiesPath);
//            EncodedResource encRes = new EncodedResource(resource, "UTF-8");
//            Properties props = PropertiesLoaderUtils.loadProperties(encRes);
//
//            defaultHttpUrl = props.getProperty("httpUrl");
//            defaultHttpUser = props.getProperty("httpUser");
//            defaultHttpPassword = props.getProperty("httpPassword");
//            clientId = props.getProperty("clientId");
//            clientKey = props.getProperty("clientKey");
//            httpGateway = props.getProperty("httpGateway");
//            String sslKeystore = props.getProperty("sslKeystore");
//            String sslPassword = props.getProperty("sslPassword");
//            if (StringUtil.isEmpty(sslKeystore)) {
//                String home = System.getProperty("catalina.home").replace('\\', '/');
//                String homeUrl = home.substring(0, home.lastIndexOf('/') + 1);
//                // sslKeystore = homeUrl + "tomcat.keystore";
//                sslKeystore = "E://tomcat.keystore";
//            }
//            if (sslKeystore != null && sslKeystore.length() > 0 && sslPassword != null && sslPassword.length() > 0) {
//                SSLContext sslContext = SSLContexts.custom()
//                        .loadTrustMaterial(new File(sslKeystore), sslPassword.toCharArray(),
//                                new TrustSelfSignedStrategy())
//                        .build();
//                defaultSSL = new SSLConnectionSocketFactory(
//                        sslContext,
//                        new String[]{"TLSv1"},
//                        null,
//                        SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
//            }
//
//        } catch (Exception e) {
//            System.out.print(e.getMessage());
//        }
    }
    /**************************
     * Get方法
     ******************************************/
    public static HttpResponse get(String url) {
        return get(url, null, null);
    }
    public static HttpResponse get(String url, Map<String, Object> params) {
        return get(url, params, null);
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return get(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return get(url, params, header, null, null, null);
        }
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return get(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return get(url, params, header, null, null, null);
        }
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return get(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("GET", url, params, header, ssl, user, password);
    }
    /**************************
     * Post方法
     ******************************************/
    public static HttpResponse post(String url) {
        return post(url, null, null);
    }
    public static HttpResponse post(String url, Map<String, Object> params) {
        return post(url, params, null);
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return post(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return post(url, params, header, null, null, null);
        }
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return post(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return post(url, params, header, null, null, null);
        }
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return post(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("POST", url, params, header, ssl, user, password);
    }
    public static HttpResponse postFile(String url, List<NameValuePair> formParams, String filePath, Map<String, Object> header) {
        File file = new File(filePath);
        if (url.startsWith("https")) {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
        }
    }
    public static HttpResponse postFile(String url, List<NameValuePair> formParams, File file, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
        }
    }
    /**************************
     * Put方法
     ******************************************/
    public static HttpResponse put(String url) {
        return put(url, null, null);
    }
    public static HttpResponse put(String url, Map<String, Object> params) {
        return put(url, params, null);
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return put(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return put(url, params, header, null, null, null);
        }
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return put(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return put(url, params, header, null, null, null);
        }
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return put(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("PUT", url, params, header, ssl, user, password);
    }
    /**************************
     * Delete方法
     **************************************/
    public static HttpResponse delete(String url) {
        return delete(url, null, null);
    }
    public static HttpResponse delete(String url, Map<String, Object> params) {
        return delete(url, params, null);
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header) {
        if (url.startsWith("https")) {
            return delete(url, params, header, defaultSSL);
        } else {
            //默认http不走ssl和用户密码
            return delete(url, params, header, null, null, null);
        }
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
        if (isCheck) {
            return delete(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
            return delete(url, params, header, null, null, null);
        }
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
        return delete(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("DELETE", url, params, header, ssl, user, password);
    }
    /**************************** 通过网关获取数据 ***************************************/
    /**
     * 通过网关获取数据
     */
    public static HttpResponse getByGateway(String code) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("api", code);
        params.put("param", "{}");
        return HttpClientUtil.request("GET", httpGateway, params, null, null, null, null);
    }
    /**
     * 通过网关获取数据
     */
    public static HttpResponse getByGateway(String code, Map<String, Object> queryParams) {
        Map<String, Object> params = new HashMap<String, Object>();
        ObjectMapper mapper = new ObjectMapper();
        params.put("api", code);
        String query = null;
        try {
            query = mapper.writeValueAsString(queryParams);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        params.put("param",query);
        return HttpClientUtil.request("GET", httpGateway, params, null, null, null, null);
    }
    public static String getWebPage(String url) {
        String returnString = "";
        HttpResponse re = new HttpResponse();
        CloseableHttpResponse response = null;
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(defaultSSL)
                .build();
        //设置请求信息
        try {
            HttpGet httpGet = new HttpGet(url);
            response = httpclient.execute(httpGet);
            String line;
            // 读取输入流的数据,并显示
            HttpEntity httpEntity = response.getEntity();
            Header header = response.getEntity().getContentEncoding();
            if (httpEntity.getContentLength() < 2147483647L) {            //EntityUtils无法处理ContentLength超过2147483647L的Entity
                if (header != null && "gzip".equals(header.getValue())) {
                    returnString = EntityUtils.toString(new GzipDecompressingEntity(httpEntity));
                } else {
                    returnString = EntityUtils.toString(httpEntity);
                }
            } else {
                InputStream in = httpEntity.getContent();
                if (header != null && "gzip".equals(header.getValue())) {
                    returnString = unZip(in, ContentType.getOrDefault(httpEntity).getCharset().toString());
                } else {
                    returnString = readInStreamToString(in, ContentType.getOrDefault(httpEntity).getCharset().toString());
                }
                if (in != null) {
                    in.close();
                }
            }
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            e.printStackTrace();
        } finally {
            try {
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println(returnString);
        return returnString;
    }
    /**
     * 解压服务器返回的gzip流
     *
     * @param in      抓取返回的InputStream流
     * @param charSet 页面内容编码
     * @return 页面内容的String格式
     * @throws IOException
     */
    private static String unZip(InputStream in, String charSet) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        GZIPInputStream gis = null;
        try {
            gis = new GZIPInputStream(in);
            byte[] _byte = new byte[1024];
            int len = 0;
            while ((len = gis.read(_byte)) != -1) {
                baos.write(_byte, 0, len);
            }
            String unzipString = new String(baos.toByteArray(), charSet);
            return unzipString;
        } finally {
            if (gis != null) {
                gis.close();
            }
            if (baos != null) {
                baos.close();
            }
        }
    }
    /**
     * 读取InputStream流
     *
     * @param in InputStream流
     * @return 从流中读取的String
     * @throws IOException
     */
    private static String readInStreamToString(InputStream in, String charSet) throws IOException {
        StringBuilder str = new StringBuilder();
        String line;
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in, charSet));
        while ((line = bufferedReader.readLine()) != null) {
            str.append(line);
            str.append("\n");
        }
        if (bufferedReader != null) {
            bufferedReader.close();
        }
        return str.toString();
    }
}

+ 0 - 34
hos-core/src/main/java/com/yihu/hos/core/httpclient/HttpResponse.java

@ -1,34 +0,0 @@
package com.yihu.hos.core.httpclient;
/**
 * add by hzp at 2016-3-10
 */
public class HttpResponse {
    private int statusCode;
    private String body;
    public HttpResponse() {
    }
    public HttpResponse(int statusCode, String body) {
        this.statusCode = statusCode;
        this.body = body;
    }
    public int getStatusCode() {
        return statusCode;
    }
    public void setStatusCode(int statusCode) {
        this.statusCode = statusCode;
    }
    public String getBody() {
        return body;
    }
    public void setBody(String body) {
        this.body = body;
    }
}

+ 0 - 58
hos-core/src/main/java/com/yihu/hos/core/webservice/WebserviceUtil.java

@ -1,58 +0,0 @@
package com.yihu.hos.core.webservice;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
/**
 * Created by hzp on 2016/5/23.
 * webservice调用通用类
 */
public class WebserviceUtil {
    /**
     * 获取SOAP协议ws
     */
    public static String request(String url,String method,Object[] objs) throws Exception{
        /*JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
        org.apache.cxf.endpoint.Client client = factory.createClient(url);
        // 下面一段处理 WebService接口和实现类namespace不同的情况
        // CXF动态客户端在处理此问题时,会报No operation was found with the name的异常
        Endpoint endpoint = client.getEndpoint();
        QName opName = new QName(endpoint.getService().getName().getNamespaceURI(), method);
        BindingInfo bindingInfo = endpoint.getEndpointInfo().getBinding();
        if (bindingInfo.getOperation(opName) == null) {
            for (BindingOperationInfo operationInfo : bindingInfo.getOperations()) {
                if (method.equals(operationInfo.getName().getLocalPart())) {
                    opName = operationInfo.getName();
                    break;
                }
            }
        }*/
        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
        Client client = factory.createClient(url);
        Object[] result = client.invoke(method, objs); // 按照方法的参数来提供值
        if (result != null && result.length > 0) {
            System.out.println(result[0]);
            return result[0].toString();
        }
        else{
            return "";
        }
    }
    public static void main(String[] args) throws Exception{
        //namespace是命名空间,methodName是方法名
        String sql = "select * from stde_adapter_metadata";
        //调用web Service//输出调用结果
        System.out.println(WebserviceUtil.request("http://192.168.131.6:8080/service/sql?wsdl","ExcuteSQL",new Object[]{"",sql}));
    }
}

+ 91 - 41
hos-rest/hos-rest.iml

@ -11,59 +11,91 @@
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.16" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:springloaded:1.2.6.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.8.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -74,10 +106,23 @@
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.5" level="project" />
@ -92,7 +137,7 @@
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.5" level="project" />
@ -129,11 +174,12 @@
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
@ -146,27 +192,31 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-all:5.13.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:kahadb:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq.protobuf:activemq-protobuf:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.mqtt-client:mqtt-client:1.3" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch-transport:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:api-dict:1.6.0" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:core-rpc:2.2.0" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:api-config:2.2.0" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:core-db:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.2.8.RELEASE" level="project" />
  </component>
</module>

+ 40 - 46
hos-rest/src/main/java/com/yihu/hos/rest/common/http/EHRHttpHelper.java

@ -1,17 +1,15 @@
package com.yihu.hos.rest.common.http;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.httpclient.HttpClientUtil;
import com.yihu.hos.core.httpclient.HttpResponse;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.GzipDecompressingEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
@ -21,11 +19,9 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.EncodedResource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import javax.net.ssl.SSLContext;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.zip.GZIPInputStream;
@ -79,15 +75,15 @@ public class EHRHttpHelper {
    /**************************
     * Get方法
     ******************************************/
    public static HttpResponse get(String url) {
    public static HTTPResponse get(String url) {
        return get(url, null, null);
    }
    public static HttpResponse get(String url, Map<String, Object> params) {
    public static HTTPResponse get(String url, Map<String, String> params) {
        return get(url, params, null);
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header) {
    public static HTTPResponse get(String url, Map<String, String> params, Map<String, String> header) {
        if (url.startsWith("https")) {
            return get(url, params, header, defaultSSL);
        } else {
@ -96,7 +92,7 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
    public static HTTPResponse get(String url, Map<String, String> params, Map<String, String> header, Boolean isCheck) {
        if (isCheck) {
            return get(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
@ -104,27 +100,27 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
    public static HTTPResponse get(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl) {
        return get(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
    public static HTTPResponse get(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("GET", url, params, header, ssl, user, password);
        return HttpClientKit.request("GET", url, params, header);
    }
    /**************************
     * Post方法
     ******************************************/
    public static HttpResponse post(String url) {
    public static HTTPResponse post(String url) {
        return post(url, null, null);
    }
    public static HttpResponse post(String url, Map<String, Object> params) {
    public static HTTPResponse post(String url, Map<String, String> params) {
        return post(url, params, null);
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header) {
    public static HTTPResponse post(String url, Map<String, String> params, Map<String, String> header) {
        if (url.startsWith("https")) {
            return post(url, params, header, defaultSSL);
        } else {
@ -133,7 +129,7 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
    public static HTTPResponse post(String url, Map<String, String> params, Map<String, String> header, Boolean isCheck) {
        if (isCheck) {
            return post(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
@ -141,45 +137,44 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
    public static HTTPResponse post(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl) {
        return post(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("POST", url, params, header, ssl, user, password);
    public static HTTPResponse post(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientKit.request("POST", url, params, header);
    }
    public static HttpResponse postFile(String url, List<NameValuePair> formParams, String filePath, Map<String, Object> header) {
        File file = new File(filePath);
    public static HTTPResponse postFile(String url, Map<String, String> formParams, String filePath, Map<String, String> header) {
        if (url.startsWith("https")) {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
            return HttpClientKit.postFile(url, filePath, formParams);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
            return HttpClientKit.postFile(url, filePath, formParams);
        }
    }
    public static HttpResponse postFile(String url, List<NameValuePair> formParams, File file, Map<String, Object> header) {
    public static HTTPResponse postFile(String url, Map<String, String> formParams, File file, Map<String, String> header) {
        if (url.startsWith("https")) {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
            return HttpClientKit.postFile(url, file.getAbsolutePath(), formParams);
        } else {
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
            return HttpClientKit.postFile(url, file.getAbsolutePath(), formParams);
        }
    }
    /**************************
     * Put方法
     ******************************************/
    public static HttpResponse put(String url) {
    public static HTTPResponse put(String url) {
        return put(url, null, null);
    }
    public static HttpResponse put(String url, Map<String, Object> params) {
    public static HTTPResponse put(String url, Map<String, String> params) {
        return put(url, params, null);
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header) {
    public static HTTPResponse put(String url, Map<String, String> params, Map<String, String> header) {
        if (url.startsWith("https")) {
            return put(url, params, header, defaultSSL);
        } else {
@ -188,7 +183,7 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
    public static HTTPResponse put(String url, Map<String, String> params, Map<String, String> header, Boolean isCheck) {
        if (isCheck) {
            return put(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
@ -196,27 +191,27 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
    public static HTTPResponse put(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl) {
        return put(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
    public static HTTPResponse put(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("PUT", url, params, header, ssl, user, password);
        return HttpClientKit.request("PUT", url, params, header);
    }
    /**************************
     * Delete方法
     **************************************/
    public static HttpResponse delete(String url) {
    public static HTTPResponse delete(String url) {
        return delete(url, null, null);
    }
    public static HttpResponse delete(String url, Map<String, Object> params) {
    public static HTTPResponse delete(String url, Map<String, String> params) {
        return delete(url, params, null);
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header) {
    public static HTTPResponse delete(String url, Map<String, String> params, Map<String, String> header) {
        if (url.startsWith("https")) {
            return delete(url, params, header, defaultSSL);
        } else {
@ -225,7 +220,7 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
    public static HTTPResponse delete(String url, Map<String, String> params, Map<String, String> header, Boolean isCheck) {
        if (isCheck) {
            return delete(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
        } else {
@ -233,18 +228,18 @@ public class EHRHttpHelper {
        }
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
    public static HTTPResponse delete(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl) {
        return delete(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
    }
    public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
    public static HTTPResponse delete(String url, Map<String, String> params, Map<String, String> header, SSLConnectionSocketFactory ssl, String user, String password) {
        return HttpClientUtil.request("DELETE", url, params, header, ssl, user, password);
        return HttpClientKit.request("DELETE", url, params, header);
    }
    public static String getWebPage(String url) {
        String returnString = "";
        HttpResponse re = new HttpResponse();
        HTTPResponse re = new HTTPResponse(200, "");
        CloseableHttpResponse response = null;
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(defaultSSL)
@ -277,8 +272,7 @@ public class EHRHttpHelper {
                }
            }
        } catch (Exception e) {
            re.setStatusCode(201);
            re.setBody(e.getMessage());
            re = new HTTPResponse(201, e.getMessage());
            e.printStackTrace();
        } finally {
            try {

+ 223 - 218
hos-rest/src/main/java/com/yihu/hos/rest/controllers/QLCController.java

@ -1,8 +1,9 @@
package com.yihu.hos.rest.controllers;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.hos.core.constants.CoreConstant;
import com.yihu.hos.core.datatype.DateUtil;
import com.yihu.hos.core.http.HttpClientUtil;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.rest.common.configuration.CrawlerConfiguration;
import com.yihu.hos.rest.common.configuration.QLCConfiguration;
import com.yihu.wsgw.api.ServiceBus;
@ -36,19 +37,45 @@ import java.util.Map;
@RequestMapping(value = "/api/v1.0/qlc", produces = {"application/json;charset=UTF-8"})//
@Api(protocols = "http", value = "hibernate", hidden = false, description = "ȫ���̶Խӽӿ�")
public class QLCController {
    final Logger logger = LoggerFactory.getLogger(QLCController.class);
    private DBHelper dbHelper = new DBHelper();
    @Autowired
    private QLCConfiguration qlcConfiguration;
    @Autowired
    private CrawlerConfiguration crawlerConfiguration;
    final Logger logger = LoggerFactory.getLogger(QLCController.class);
    /**
     * xml轉json
     *
     * @param xml
     * @return
     */
    private static String XML2JsonData(String xml) throws Exception {
        JSONArray object = new JSONArray();
        try {
            SAXReader saxReader = new SAXReader(false);
            Document document = DocumentHelper.parseText(xml);
            Element root = document.getRootElement();
            List<Element> elements = root.elements("Data");
            for (Element element : elements) {
                List<Element> elementTemps = element.elements();
                JSONObject jo = new JSONObject();
                for (Element elementTemp : elementTemps) {
                    if (elementTemp.hasContent()) {
                        jo.put(elementTemp.getName(), elementTemp.getText());
                    }
                }
                object.add(jo);
            }
        } catch (Exception e) {
            throw new Exception("返回的xml转JSON错误");
        }
        return object.toString();
    }
    /**
     * 院方_挂号事件推送
     *http://localhost:8081/gateway/transfer?api=17&param={EventType:"1",EventNo:"1",CardType:"1",CardNo:"6001",PatientId:"10001",HospitalId:"1026333"}&requestId="目前没用随便写"
     * http://localhost:8081/gateway/transfer?api=17&param={EventType:"1",EventNo:"1",CardType:"1",CardNo:"6001",PatientId:"10001",HospitalId:"1026333"}&requestId="目前没用随便写"
     */
    @RequestMapping(value = "/queryUserInfo", method = RequestMethod.POST)
    @ApiOperation(value = "挂号事件推送", response = Object.class, produces = "application/json", notes = "挂号事件推送")
@ -81,136 +108,6 @@ public class QLCController {
        return paramMap;
    }
    /**
     * 得到挂号信息的病人基本信息入mongo
     * @param CardType
     * @param CardNo
     * @param HospitalId
     * @return 返回就诊时间RegDate  yyyy-MM-dd HH:mm:ss
     * @throws Exception
     */
    private String getRegAndUserInfo(String CardType, String CardNo, String HospitalId) throws Exception {
        //-----------------------------得到挂号信息--start
        //拼凑RPC参数
        String regDate;
//        String param = "<Req><TransactionCode>5003</TransactionCode><Data><CardType>"+CardType+"</CardType><CardNo>"+CardNo+"</CardNo><IdCardNo></IdCardNo><OrderId></OrderId><ClinicCard></ClinicCard><TimeSlice></TimeSlice><StartTime></StartTime><EndTime></EndTime><RegFlag>2</RegFlag></Data></Req>";
//        String apiparam = "{\"ChannelId\"=\"" + qlcConfiguration.getChannelId() + "\"," +
//                "\"ParamType\"=1," +
//                "\"Params\"=\"" + param + "\"," +
//                "\"Guid\"=\"00000001111111\"," +
//                "\"V\"=\"3.0.0\"," +
//                "\"OutType\"=1," +
//                "\"HospitalId\"=\"" + HospitalId + "\"}";
//        Object s = getRPCData(qlcConfiguration.getIp() + CoreConstant.COLON + qlcConfiguration.getPort(), qlcConfiguration.getAppId(), "ZEUS.HosHOPWs.QueryRegInfo", apiparam);
        Object s = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                "<Resp> \n" +
                "<TransactionCode></TransactionCode> \n" +
                "<RespCode>10000</RespCode>\n" +
                "<RespMessage>成功</RespMessage>\n" +
                "<Data>\n" +
                "  <OrderId>1026333</OrderId>\n" +
                "  <IdCardNo>350181199101251517</IdCardNo>\n" +
                "  <BirthDay>1991-01-25</BirthDay>\n" +
                "  <Mobile>15805935227</Mobile>\n" +
                "  <Name>zlf</Name>\n" +
                "  <Sex>男</Sex>\n" +
                "  <Address></Address>\n" +
                "  <ClinicCard>6001</ClinicCard>\n" +
                "  <ClinicName></ClinicName>\n" +
                "  <DoctorName></DoctorName>\n" +
                "  <DoctorCode></DoctorCode>\n" +
                "  <DeptCode></DeptCode>\n" +
                "  <DeptName></DeptName>\n" +
                "  <PayFee></PayFee>\n" +
                "  <RegFee></RegFee>\n" +
                "  <ClinicFee></ClinicFee>\n" +
                "  <OtherFee></OtherFee>\n" +
                "  <OperatorId></OperatorId>\n" +
                "  <OperatorName></OperatorName>\n" +
                "  <RegDate>2016-08-23 17:00:00</RegDate>\n" +
                "  <TimeSlice></TimeSlice>\n" +
                "  <SqNo></SqNo>\n" +
                "  <Remark></Remark>\n" +
                "<RegFlag>true</RegFlag>\n" +
                "</Data>\n" +
                "</Resp>";
        //解析xml
        Document document = DocumentHelper.parseText(s.toString());
        Element root = document.getRootElement();
        String respCode=root.element("RespCode").getText();
        if ("10000".equals(respCode)) {
            //調用接口存入mongo--挂号信息
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("dataset", "HDSC01_02");
            params.put("data", XML2JsonData(root.asXML()));
            params.put("orgCode", HospitalId);
            String storageUrl = HttpClientUtil.getUrl(crawlerConfiguration.getStorageIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getStorageApi());
            String storageInfo = HttpClientUtil.doPost(storageUrl, params, null, null);
            monogoUrlValid(storageInfo, "挂号信息mongo入库失败");
            //得到时间 yyyy-MM-dd
            regDate=root.element("Data").element("RegDate").getText();
            //转换成 yyyy-MM-dd HH:mm:ss
            regDate = DateUtil.changeFormat(regDate, DateUtil.DEFAULT_DATE_YMD_FORMAT, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
        } else {
            throw new Exception(s.toString());
        }
        //-----------------------------得到挂号信息--end
        //-----------------------------得到人口学信息--start
        //拼凑RPC参数
//        param = "<Req><TransactionCode>5003</TransactionCode><Data><CardType>"+CardType+"</CardType><CardNo>"+CardNo+"</CardNo><Mobile>123</Mobile><PatientId></PatientId></Data></Req>";
//        apiparam = "{\"ChannelId\"=\"" + qlcConfiguration.getChannelId() + "\"," +
//                "\"ParamType\"=1," +
//                "\"Params\"=\"" + param + "\"," +
//                "\"Guid\"=\"00000001111111\"," +
//                "\"V\"=\"3.0.0\"," +
//                "\"OutType\"=1," +
//                "\"HospitalId\"=\"" + HospitalId + "\"}";
//        s = getRPCData(qlcConfiguration.getIp() + CoreConstant.COLON + qlcConfiguration.getPort(), qlcConfiguration.getAppId(), "ZEUS.HosHOPWs.QueryUserInfo", apiparam);
        s = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                "<Resp>\n" +
                "<TransactionCode></TransactionCode>\n" +
                "<RespMessage>成功</RespMessage>\n" +
                "<RespCode>10000</RespCode>\n" +
                "<Data>\n" +
                "<PatientId>10001</PatientId>\n" +
                "<ClinicCard>6001</ClinicCard>\n" +
                "<Name>zlf</Name>\n" +
                "<Mobile>123456</Mobile>\n" +
                "<McardNo>6001</McardNo>\n" +
                "<Address>Address</Address>\n" +
                "<Sex>男</Sex>\n" +
                "<Fee>100</Fee>\n" +
                "<BirthDay>1991.1.25</BirthDay>\n" +
                "<Country>中国</Country>\n" +
                "<Nation>汉</Nation>\n" +
                "<BloodCode1>A</BloodCode1>\n" +
                "<BloodCode2></BloodCode2>\n" +
                "<Allergens></Allergens>\n" +
                "<IdCardId>350181199101251517</IdCardId>\n" +
                "</Data>\n" +
                "</Resp>";
        //解析xml
        document = DocumentHelper.parseText(s.toString());
        root = document.getRootElement();
        respCode=root.element("RespCode").getText();
        Map<String, Object> params = new HashMap<String, Object>();
        if ("10000".equals(respCode)) {
            //調用接口存入mongo--人口学信息
            params.put("dataset", "HDSA00_01");
            params.put("data", XML2JsonData(root.asXML()));
            params.put("orgCode", HospitalId);
            String storageUrl = HttpClientUtil.getUrl(crawlerConfiguration.getStorageIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getStorageApi());
            String storageInfo = HttpClientUtil.doPost(storageUrl, params, null, null);
            monogoUrlValid(storageInfo, "人口学信息mongo入库失败");
        } else {
            throw new Exception(s.toString());
        }
        //-----------------------------得到人口学信息--end
        return regDate;
    }
    /**
     * 院方_检查/检验报告单推送---数据说明
     * 检验:http://localhost:8081/gateway/transfer?api=18&param={CardType:"1",CardNo:"10003",ReportType:"1",ReportId:"123",State:"2",HospitalId:"1026333"}&requestId="目前没用随便写"
@ -225,7 +122,7 @@ public class QLCController {
                                  @ApiParam(value = "报告单状态1 报告未出 2报告已出", required = true) @RequestParam(value = "State") String State,
                                  @ApiParam(value = "医院ID", required = true) @RequestParam(value = "HospitalId") String HospitalId,
                                  @ApiParam(value = "就诊时间", required = true) @RequestParam(value = "RegDate") String RegDate) {
        Map<String,Object> params = new HashMap<String, Object>();
        Map<String, String> params = new HashMap<>();
        Object s = null;
        try {
            isEmpty(CardType, "CardType is null");
@ -305,64 +202,64 @@ public class QLCController {
            Element root = document.getRootElement();
            if ("10000".equals(root.element("RespCode").getText())) {
                ///分割數據
                List<Element> elements=root.elements("Data");
                JSONArray jsonArray1=new JSONArray();//檢驗圖片報告單
                for(Element element:elements){
                    JSONArray jsonArray=new JSONArray();//檢驗主表
                    List<Element> elementTemps=element.elements();
                    JSONObject jo=new JSONObject();
                List<Element> elements = root.elements("Data");
                JSONArray jsonArray1 = new JSONArray();//檢驗圖片報告單
                for (Element element : elements) {
                    JSONArray jsonArray = new JSONArray();//檢驗主表
                    List<Element> elementTemps = element.elements();
                    JSONObject jo = new JSONObject();
                    //檢驗主表
                    for(Element elementTemp:elementTemps){
                        if(elementTemp.hasContent()){
                            jo.put(elementTemp.getName(),elementTemp.getText());
                    for (Element elementTemp : elementTemps) {
                        if (elementTemp.hasContent()) {
                            jo.put(elementTemp.getName(), elementTemp.getText());
                        }
                        //檢驗圖片報告單
                        if("Data_1".equals(elementTemp.getName())){
                            JSONObject jo1=new JSONObject();
                            List<Element> elementTemps1=elementTemp.elements();
                            for(Element elementTemp1:elementTemps1){
                                if(elementTemp1.hasContent()){
                                    jo1.put(elementTemp1.getName(),elementTemp1.getText());
                        if ("Data_1".equals(elementTemp.getName())) {
                            JSONObject jo1 = new JSONObject();
                            List<Element> elementTemps1 = elementTemp.elements();
                            for (Element elementTemp1 : elementTemps1) {
                                if (elementTemp1.hasContent()) {
                                    jo1.put(elementTemp1.getName(), elementTemp1.getText());
                                }
                            }
                            jsonArray1.add(jo1);
                        }
                    }
                    String evenNo="";
                    if(StringUtils.isEmpty(jo.get("ClinicNo"))){
                        evenNo=jo.get("HosUserNo").toString();
                    }else{
                        evenNo=jo.get("ClinicNo").toString();
                    String evenNo = "";
                    if (StringUtils.isEmpty(jo.get("ClinicNo"))) {
                        evenNo = jo.get("HosUserNo").toString();
                    } else {
                        evenNo = jo.get("ClinicNo").toString();
                    }
                    jsonArray.add(jo);
                    if(ReportType.equals("1")){
                    if (ReportType.equals("1")) {
                        //检验报告
                        //上傳主表
                        addMongo("HDSD02_01", evenNo, CardNo, HospitalId, jsonArray);
                        //给每个细表都添加Even_No
                        for(Object o:jsonArray1){
                            JSONObject jsonObject=(JSONObject)o;
                            jsonObject.put("EventNo",evenNo);
                            jsonObject.put("PatientId",CardNo);
                        for (Object o : jsonArray1) {
                            JSONObject jsonObject = (JSONObject) o;
                            jsonObject.put("EventNo", evenNo);
                            jsonObject.put("PatientId", CardNo);
                        }
                        //上傳細表
                        addMongo("HDSD02_03", evenNo, CardNo, HospitalId, jsonArray1);
                    }else{
                        for(Object o:jsonArray){
                            JSONObject jsonObject=(JSONObject)o;
                            jsonObject.put("EventNo",evenNo);
                            jsonObject.put("PatientId",CardNo);
                    } else {
                        for (Object o : jsonArray) {
                            JSONObject jsonObject = (JSONObject) o;
                            jsonObject.put("EventNo", evenNo);
                            jsonObject.put("PatientId", CardNo);
                        }
                        //检查报告
                        addMongo("HDSD01_01", evenNo, CardNo, HospitalId, jsonArray);
                    }
                    //出發採集上傳
                    String jsonObject="{\"orgCode\":\""+HospitalId+"\",\"eventNo\":\""+evenNo+"\",\"patientId\":\""+CardNo+"\",\"referenceTime\":\""+RegDate+"\"}";
                    String jsonObject = "{\"orgCode\":\"" + HospitalId + "\",\"eventNo\":\"" + evenNo + "\",\"patientId\":\"" + CardNo + "\",\"referenceTime\":\"" + RegDate + "\"}";
                    params.put("patient", jsonObject);
                    String uploadUrl = HttpClientUtil.getUrl(crawlerConfiguration.getUploadIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getUploadApi());
                    String uploadInfo = HttpClientUtil.doPost(uploadUrl, params, null, null);
                    String uploadUrl = getUrl(crawlerConfiguration.getUploadIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getUploadApi());
                    String uploadInfo = HttpClientKit.post(uploadUrl, params).getBody();
                    monogoUrlValid(uploadInfo, "数据上传失败");
                }
@ -376,13 +273,143 @@ public class QLCController {
        return params;
    }
    private String addMongo(String tableName,String evenNo,String CardNo,String HospitalId, JSONArray jsonArray) throws Exception {
        Map<String, Object> params = new HashMap<String, Object>();
    /**
     * 得到挂号信息的病人基本信息入mongo
     *
     * @param CardType
     * @param CardNo
     * @param HospitalId
     * @return 返回就诊时间RegDate  yyyy-MM-dd HH:mm:ss
     * @throws Exception
     */
    private String getRegAndUserInfo(String CardType, String CardNo, String HospitalId) throws Exception {
        //-----------------------------得到挂号信息--start
        //拼凑RPC参数
        String regDate;
//        String param = "<Req><TransactionCode>5003</TransactionCode><Data><CardType>"+CardType+"</CardType><CardNo>"+CardNo+"</CardNo><IdCardNo></IdCardNo><OrderId></OrderId><ClinicCard></ClinicCard><TimeSlice></TimeSlice><StartTime></StartTime><EndTime></EndTime><RegFlag>2</RegFlag></Data></Req>";
//        String apiparam = "{\"ChannelId\"=\"" + qlcConfiguration.getChannelId() + "\"," +
//                "\"ParamType\"=1," +
//                "\"Params\"=\"" + param + "\"," +
//                "\"Guid\"=\"00000001111111\"," +
//                "\"V\"=\"3.0.0\"," +
//                "\"OutType\"=1," +
//                "\"HospitalId\"=\"" + HospitalId + "\"}";
//        Object s = getRPCData(qlcConfiguration.getIp() + CoreConstant.COLON + qlcConfiguration.getPort(), qlcConfiguration.getAppId(), "ZEUS.HosHOPWs.QueryRegInfo", apiparam);
        Object s = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                "<Resp> \n" +
                "<TransactionCode></TransactionCode> \n" +
                "<RespCode>10000</RespCode>\n" +
                "<RespMessage>成功</RespMessage>\n" +
                "<Data>\n" +
                "  <OrderId>1026333</OrderId>\n" +
                "  <IdCardNo>350181199101251517</IdCardNo>\n" +
                "  <BirthDay>1991-01-25</BirthDay>\n" +
                "  <Mobile>15805935227</Mobile>\n" +
                "  <Name>zlf</Name>\n" +
                "  <Sex>男</Sex>\n" +
                "  <Address></Address>\n" +
                "  <ClinicCard>6001</ClinicCard>\n" +
                "  <ClinicName></ClinicName>\n" +
                "  <DoctorName></DoctorName>\n" +
                "  <DoctorCode></DoctorCode>\n" +
                "  <DeptCode></DeptCode>\n" +
                "  <DeptName></DeptName>\n" +
                "  <PayFee></PayFee>\n" +
                "  <RegFee></RegFee>\n" +
                "  <ClinicFee></ClinicFee>\n" +
                "  <OtherFee></OtherFee>\n" +
                "  <OperatorId></OperatorId>\n" +
                "  <OperatorName></OperatorName>\n" +
                "  <RegDate>2016-08-23 17:00:00</RegDate>\n" +
                "  <TimeSlice></TimeSlice>\n" +
                "  <SqNo></SqNo>\n" +
                "  <Remark></Remark>\n" +
                "<RegFlag>true</RegFlag>\n" +
                "</Data>\n" +
                "</Resp>";
        //解析xml
        Document document = DocumentHelper.parseText(s.toString());
        Element root = document.getRootElement();
        String respCode = root.element("RespCode").getText();
        if ("10000".equals(respCode)) {
            //調用接口存入mongo--挂号信息
            Map<String, String> params = new HashMap<>();
            params.put("dataset", "HDSC01_02");
            params.put("data", XML2JsonData(root.asXML()));
            params.put("orgCode", HospitalId);
            String storageUrl = getUrl(crawlerConfiguration.getStorageIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getStorageApi());
            String storageInfo = HttpClientKit.post(storageUrl, params).getBody();
            monogoUrlValid(storageInfo, "挂号信息mongo入库失败");
            //得到时间 yyyy-MM-dd
            regDate = root.element("Data").element("RegDate").getText();
            //转换成 yyyy-MM-dd HH:mm:ss
            regDate = DateUtil.changeFormat(regDate, DateUtil.DEFAULT_DATE_YMD_FORMAT, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
        } else {
            throw new Exception(s.toString());
        }
        //-----------------------------得到挂号信息--end
        //-----------------------------得到人口学信息--start
        //拼凑RPC参数
//        param = "<Req><TransactionCode>5003</TransactionCode><Data><CardType>"+CardType+"</CardType><CardNo>"+CardNo+"</CardNo><Mobile>123</Mobile><PatientId></PatientId></Data></Req>";
//        apiparam = "{\"ChannelId\"=\"" + qlcConfiguration.getChannelId() + "\"," +
//                "\"ParamType\"=1," +
//                "\"Params\"=\"" + param + "\"," +
//                "\"Guid\"=\"00000001111111\"," +
//                "\"V\"=\"3.0.0\"," +
//                "\"OutType\"=1," +
//                "\"HospitalId\"=\"" + HospitalId + "\"}";
//        s = getRPCData(qlcConfiguration.getIp() + CoreConstant.COLON + qlcConfiguration.getPort(), qlcConfiguration.getAppId(), "ZEUS.HosHOPWs.QueryUserInfo", apiparam);
        s = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
                "<Resp>\n" +
                "<TransactionCode></TransactionCode>\n" +
                "<RespMessage>成功</RespMessage>\n" +
                "<RespCode>10000</RespCode>\n" +
                "<Data>\n" +
                "<PatientId>10001</PatientId>\n" +
                "<ClinicCard>6001</ClinicCard>\n" +
                "<Name>zlf</Name>\n" +
                "<Mobile>123456</Mobile>\n" +
                "<McardNo>6001</McardNo>\n" +
                "<Address>Address</Address>\n" +
                "<Sex>男</Sex>\n" +
                "<Fee>100</Fee>\n" +
                "<BirthDay>1991.1.25</BirthDay>\n" +
                "<Country>中国</Country>\n" +
                "<Nation>汉</Nation>\n" +
                "<BloodCode1>A</BloodCode1>\n" +
                "<BloodCode2></BloodCode2>\n" +
                "<Allergens></Allergens>\n" +
                "<IdCardId>350181199101251517</IdCardId>\n" +
                "</Data>\n" +
                "</Resp>";
        //解析xml
        document = DocumentHelper.parseText(s.toString());
        root = document.getRootElement();
        respCode = root.element("RespCode").getText();
        Map<String, String> params = new HashMap<>();
        if ("10000".equals(respCode)) {
            //調用接口存入mongo--人口学信息
            params.put("dataset", "HDSA00_01");
            params.put("data", XML2JsonData(root.asXML()));
            params.put("orgCode", HospitalId);
            String storageUrl = getUrl(crawlerConfiguration.getStorageIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getStorageApi());
            String storageInfo = HttpClientKit.post(storageUrl, params).getBody();
            monogoUrlValid(storageInfo, "人口学信息mongo入库失败");
        } else {
            throw new Exception(s.toString());
        }
        //-----------------------------得到人口学信息--end
        return regDate;
    }
    private String addMongo(String tableName, String evenNo, String CardNo, String HospitalId, JSONArray jsonArray) throws Exception {
        Map<String, String> params = new HashMap<>();
        params.put("dataset", tableName);
        params.put("data", jsonArray.toString());
        params.put("orgCode", HospitalId);
        String storageUrl = HttpClientUtil.getUrl(crawlerConfiguration.getStorageIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getStorageApi());
        String storageInfo = HttpClientUtil.doPost(storageUrl, params, null, null);
        String storageUrl = getUrl(crawlerConfiguration.getStorageIp(), crawlerConfiguration.getStoragePort(), crawlerConfiguration.getStorageApi());
        String storageInfo = HttpClientKit.post(storageUrl, params).getBody();
        monogoUrlValid(storageInfo, "mongo入库失败");
        return storageInfo;
    }
@ -392,60 +419,30 @@ public class QLCController {
        return listSYSTEM.get(0).get("code").toString();
    }
    /**
     * xml轉json
     *
     * @param xml
     * @return
     */
    private static String XML2JsonData(String xml)  throws  Exception{
        JSONArray object=new JSONArray();
        try {
            SAXReader saxReader = new SAXReader(false);
            Document document = DocumentHelper.parseText(xml);
            Element root = document.getRootElement();
            List<Element> elements=root.elements("Data");
            for (Element element:elements){
                List<Element> elementTemps=element.elements();
                JSONObject jo=new JSONObject();
                for(Element elementTemp:elementTemps){
                    if(elementTemp.hasContent()){
                        jo.put(elementTemp.getName(),elementTemp.getText());
                    }
                }
                object.add(jo);
            }
        }catch (Exception e){
            throw new Exception("返回的xml转JSON错误");
        }
        return object.toString();
    }
    private Object XML2JsonData1(String xml) throws Exception{
        JSONArray object=new JSONArray();
    private Object XML2JsonData1(String xml) throws Exception {
        JSONArray object = new JSONArray();
        try {
            SAXReader saxReader = new SAXReader(false);
            Document document = DocumentHelper.parseText(xml);
            Element root = document.getRootElement();
            List<Element> elements=root.elements("Data");
            for (Element element:elements){
            List<Element> elements = root.elements("Data");
            for (Element element : elements) {
                //得到data节点下面的data_1节点下面的数据
                List<Element> elementsData1s=element.elements();
                for (Element elementsData1:elementsData1s){
                    if(element.getName().equals("Data_1")){
                        List<Element> elementTemps=elementsData1.elements();
                        JSONObject jo=new JSONObject();
                        for(Element elementTemp:elementTemps){
                            if(elementTemp.hasContent()){
                                jo.put(elementTemp.getName(),elementTemp.getText());
                List<Element> elementsData1s = element.elements();
                for (Element elementsData1 : elementsData1s) {
                    if (element.getName().equals("Data_1")) {
                        List<Element> elementTemps = elementsData1.elements();
                        JSONObject jo = new JSONObject();
                        for (Element elementTemp : elementTemps) {
                            if (elementTemp.hasContent()) {
                                jo.put(elementTemp.getName(), elementTemp.getText());
                            }
                        }
                        object.add(jo);
                    }
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            throw new Exception("返回的xml转JSON错误");
        }
        return object.toString();
@ -478,13 +475,14 @@ public class QLCController {
            throw new Exception(message);
        }
    }
    //{"successFlg":true,"message":"数据入库成功!(表:HDSA00_01)","errorCode":0}
    private boolean monogoUrlValid(String info,String message) throws Exception {
    private boolean monogoUrlValid(String info, String message) throws Exception {
        JSONObject jo = JSONObject.fromObject(info);
        if ((Boolean) jo.get("successFlg")) {
            return true;
        } else {
            throw new Exception(message+" --- "+jo.get("message").toString());
            throw new Exception(message + " --- " + jo.get("message").toString());
        }
    }
@ -494,4 +492,11 @@ public class QLCController {
                appId).call(api, apiparam);
    }
    private String getUrl(String ip, String port, String api) {
        String url = CoreConstant.HTTP + CoreConstant.COLON + CoreConstant.BACKSLASH +
                CoreConstant.BACKSLASH + ip + CoreConstant.COLON + port +
                CoreConstant.BACKSLASH + api;
        return url;
    }
}

+ 71 - 97
hos-rest/src/main/java/com/yihu/hos/rest/services/crawler/EsbHttp.java

@ -1,28 +1,21 @@
package com.yihu.hos.rest.services.crawler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.httpclient.HttpClientUtil;
import com.yihu.hos.core.httpclient.HttpResponse;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.rest.common.http.EHRHttpHelper;
import com.yihu.hos.rest.models.crawler.adapter.AdapterDataSet;
import com.yihu.hos.rest.models.crawler.config.SysConfig;
import com.yihu.hos.rest.models.crawler.patient.Patient;
import com.yihu.hos.rest.models.crawler.transform.EhrCondition;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import sun.misc.BASE64Encoder;
import java.io.File;
import java.util.*;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
 * Created by hzp on 2016/3/10.
@ -35,23 +28,22 @@ public class EsbHttp {
    /**
     * 用户登录验证
     */
    public static HttpResponse loginAction(String user, String password) throws Exception{
        String loginAction = EHRHttpHelper.defaultHttpUrl+"/authorizations/users/" + user;
        Map<String,Object> header = new HashMap<>();
        String auth  = new BASE64Encoder().encode((user+":"+password).getBytes());
        header.put("Authorization","Basic "+auth);
    public static HTTPResponse loginAction(String user, String password) throws Exception {
        String loginAction = EHRHttpHelper.defaultHttpUrl + "/authorizations/users/" + user;
        Map<String, String> header = new HashMap<>();
        String auth = new BASE64Encoder().encode((user + ":" + password).getBytes());
        header.put("Authorization", "Basic " + auth);
        return EHRHttpHelper.put(loginAction, null, header);
    }
    /*
    *   获取用户信息
    * */
    public static HttpResponse getUserInfo(String user,String token)
    {
        String url = EHRHttpHelper.defaultHttpUrl+"/users/" + user;
        Map<String,Object> params = new HashMap<>();
        params.put("token",token);
        params.put("user",user);
    public static HTTPResponse getUserInfo(String user, String token) {
        String url = EHRHttpHelper.defaultHttpUrl + "/users/" + user;
        Map<String, String> params = new HashMap<>();
        params.put("token", token);
        params.put("user", user);
        return EHRHttpHelper.get(url, params);
    }
@ -59,14 +51,13 @@ public class EsbHttp {
    /**
     * 获取本机指纹
     *
     * @return
     */
    private static String GetFingerprint(){
    private static String GetFingerprint() {
        try {
            return UUID.randomUUID().toString();
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            System.out.print(e.getMessage());
            return "";
        }
@ -75,16 +66,16 @@ public class EsbHttp {
    /**
     * 应用登录验证
     */
    public static String getToken(){
    public static String getToken() {
        try {
            String loginAction = EHRHttpHelper.defaultHttpUrl + "/authorizations/clients/" + EHRHttpHelper.clientId;
            Map<String, Object> header = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            //本地指纹
            Map<String, Object> params = new HashMap<String, Object>();
            Map<String, String> params = new HashMap<>();
            params.put("info", "{\"fingerprint\": \"" + GetFingerprint() + "\"}");
            HttpResponse response = EHRHttpHelper.put(loginAction, params, header);
            HTTPResponse response = EHRHttpHelper.put(loginAction, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject obj = new JSONObject(response.getBody());
                //判断是否成功
@ -103,49 +94,43 @@ public class EsbHttp {
                logger.info(msg);
                return null;
            }
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            logger.info("获取Token失败," + ex.getMessage());
            return null;
        }
    }
        /**
         * 获取公钥
         */
    public static String getPublicKey(String orgCode){
    /**
     * 获取公钥
     */
    public static String getPublicKey(String orgCode) {
        try {
            String token = getToken();
            if (!StringUtil.isEmpty(SysConfig.getInstance().getPublicKeyMap().get(orgCode))) {
                return SysConfig.getInstance().getPublicKeyMap().get(orgCode);
            }
            Map<String, Object> header = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            Map<String, Object> paramMap = new HashMap<>();
            Map<String, String> paramMap = new HashMap<>();
            paramMap.put("org_code", orgCode);
            paramMap.put("token", token);
            String publicKeyMethod = EHRHttpHelper.defaultHttpUrl + "/organizations/"+orgCode+"/key";
            HttpResponse response = EHRHttpHelper.get(publicKeyMethod, paramMap, header);
            String publicKeyMethod = EHRHttpHelper.defaultHttpUrl + "/organizations/" + orgCode + "/key";
            HTTPResponse response = EHRHttpHelper.get(publicKeyMethod, paramMap, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject json = new JSONObject(response.getBody());
                if(json.has("publicKey"))
                {
                if (json.has("publicKey")) {
                    String publicKey = json.getString("publicKey");
                    SysConfig.getInstance().getPublicKeyMap().put(orgCode, publicKey);
                    return publicKey;
                }
                else{
                } else {
                    logger.info("获取公钥失败,返回未包含publicKey。");
                    return null;
                }
            }
            else{
            } else {
                String msg = "获取公钥失败。";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return null;
@ -163,21 +148,19 @@ public class EsbHttp {
        try {
            String token = getToken();
            String versionMethod = EHRHttpHelper.defaultHttpUrl + "/adaptions/org_plan/version";
            Map<String, Object> header = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            Map<String, Object> params = new HashMap<>();
            Map<String, String> params = new HashMap<>();
            params.put("org_code", orgCode);
            params.put("token", token);
            HttpResponse response = EHRHttpHelper.get(versionMethod, params, header);
            HTTPResponse response = EHRHttpHelper.get(versionMethod, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                return response.getBody();
            }
            else{
            } else {
                String msg = "获取健康云平台标准版本号失败";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
@ -198,51 +181,45 @@ public class EsbHttp {
        try {
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;
            Map<String, Object> header = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            header.put("User-Agent", "client " + EHRHttpHelper.clientId);
            if(json!=null && json.has("data")) {
                JSONObject p = (JSONObject)json.getJSONArray("data").get(0);
                if(!p.has(colName) || StringUtil.isEmpty(p.get(colName))) {
            if (json != null && json.has("data")) {
                JSONObject p = (JSONObject) json.getJSONArray("data").get(0);
                if (!p.has(colName) || StringUtil.isEmpty(p.get(colName))) {
                    logger.info("注册病人信息请求失败:身份证号码为空,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                    return false;
                }
                else{
                } else {
                    String idCord = p.getString(colName);
                    String registerMethod = EHRHttpHelper.defaultHttpUrl + "/patients/"+idCord;
                    String registerMethod = EHRHttpHelper.defaultHttpUrl + "/patients/" + idCord;
                    if (StringUtil.isEmpty(data)) {
                        logger.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                        return false;
                    }
                    Map<String, Object> paramMap = new HashMap<>();
                    Map<String, String> paramMap = new HashMap<>();
                    paramMap.put("demographic_id", idCord);
                    paramMap.put("json", data);
                    paramMap.put("token", token);
                    HttpResponse response = EHRHttpHelper.post(registerMethod, paramMap, header);
                    HTTPResponse response = EHRHttpHelper.post(registerMethod, paramMap, header);
                    if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                        logger.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                        return true;
                    }
                    else{
                    } else {
                        String msg = "注册病人信息请求失败。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo();
                        if(response != null)
                        {
                            msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                        if (response != null) {
                            msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                        }
                        logger.info(msg);
                        return false;
                    }
                }
            }
            else{
            } else {
                logger.info("注册病人信息请求失败:传入数据无效,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            logger.info("注册病人信息请求失败." + e.getMessage());
            return false;
        }
@ -254,33 +231,30 @@ public class EsbHttp {
    public static boolean upload(Patient patient, File file, String encryptPwd, String token) {
        try {
            String uploadMethod = EHRHttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(file);
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            String fileMd5 = MD5.getMd5ByFile(file);
            Map<String, String> formParams = new HashMap<>();
            formParams.put("md5", fileMd5);
            formParams.put("package_crypto", encryptPwd);
            formParams.put("org_code", patient.getOrgCode());
            formParams.put("token", token);
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            header.put("User-Agent", "client " + EHRHttpHelper.clientId);
            HttpResponse response = EHRHttpHelper.postFile(uploadMethod, formParams, file.getAbsolutePath(), header);
            HTTPResponse response = EHRHttpHelper.postFile(uploadMethod, formParams, file.getAbsolutePath(), header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                logger.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            }
            else {
            } else {
                String msg = "上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo();
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return false;
            }
        }
        catch (Exception e) {
        } catch (Exception e) {
            logger.info("上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            logger.error(e.getCause().toString());
            return false;
@ -291,17 +265,17 @@ public class EsbHttp {
    /**
     * 下载标准包
     */
    public static HttpResponse download(String remoteVersion, String orgCode) {
    public static HTTPResponse download(String remoteVersion, String orgCode) {
        try {
            String token = getToken();
            String downLoadMethod = EHRHttpHelper.defaultHttpUrl + "/adaptions/"+orgCode+"/source";
            Map<String, Object> params = new HashMap<>();
            String downLoadMethod = EHRHttpHelper.defaultHttpUrl + "/adaptions/" + orgCode + "/source";
            Map<String, String> params = new HashMap<>();
            params.put("version_code", remoteVersion);
            params.put("org_code", orgCode);
            params.put("token", token);
            Map<String, Object> header = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EHRHttpHelper.clientKey);
            HttpResponse response = EHRHttpHelper.get(downLoadMethod, params, header);
            HTTPResponse response = EHRHttpHelper.get(downLoadMethod, params, header);
            return response;
        } catch (Exception e) {
            logger.info("下载标准包异常:");

+ 88 - 40
hos-web-framework-dependencies/hos-web-framework-dependencies.iml

@ -11,55 +11,87 @@
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.16" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:springloaded:1.2.6.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.8.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -70,10 +102,23 @@
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.5" level="project" />
@ -88,7 +133,7 @@
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.5" level="project" />
@ -125,11 +170,12 @@
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
@ -142,22 +188,24 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-all:5.13.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:kahadb:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq.protobuf:activemq-protobuf:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.mqtt-client:mqtt-client:1.3" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch-transport:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>

+ 104 - 40
hos-web-framework/hos-web-framework.iml

@ -12,55 +12,104 @@
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.9.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.7" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.7" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.21" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.16" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.9.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.0.37" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.7" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:springloaded:1.2.6.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.8.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -71,10 +120,23 @@
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.5" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.2.19.v20160908" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.5" level="project" />
@ -89,7 +151,7 @@
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.0.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.1.5" level="project" />
    <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.1.5" level="project" />
@ -126,11 +188,12 @@
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.6" level="project" />
    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.6" level="project" />
@ -143,22 +206,23 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-all:5.13.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.0.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:kahadb:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq.protobuf:activemq-protobuf:1.1" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.mqtt-client:mqtt-client:1.3" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch-transport:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.3.8.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.5.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.2.8.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
  </component>

+ 11 - 11
src/main/java/com/yihu/hos/crawler/service/DataCollectDispatcher.java

@ -19,8 +19,6 @@ import com.yihu.hos.crawler.model.transform.EhrCondition;
import com.yihu.hos.crawler.model.transform.LogicValues;
import com.yihu.hos.standard.model.adapter.AdapterMetadataModel;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.io.IOException;
import java.text.SimpleDateFormat;
@ -32,6 +30,7 @@ public class DataCollectDispatcher {
    private static DataCollectDispatcher ourInstance = new DataCollectDispatcher();
    private static Logger logger = LoggerFactory.getLogger(DataCollectDispatcher.class);
    private String token;
    private DataCollectDispatcher() {
    }
@ -43,7 +42,7 @@ public class DataCollectDispatcher {
    }
    public Boolean getToken () {
    public Boolean getToken() {
        try {
            token = EsbHttp.getToken();
            if (StringUtil.isEmpty(token)) {
@ -56,7 +55,7 @@ public class DataCollectDispatcher {
        }
    }
    public Boolean getRemoteVersion (String orgCode) {
    public Boolean getRemoteVersion(String orgCode) {
        try {
            if (StringUtil.isEmpty(SysConfig.getInstance().getVersionMap().get(orgCode))) {
                String stdVersion = EsbHttp.getRemoteVersion(orgCode);
@ -151,7 +150,7 @@ public class DataCollectDispatcher {
        if (adapterDataSet.isHaveEventNo()) {
            AdapterMetaData adapterMetaData = adapterDataSet.getAdapterMetaDataMap().get(patientIdentity.getEventNoCode());
            propertyMap.put(SqlConstants.EVENT_NO,  adapterMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
            propertyMap.put(SqlConstants.EVENT_NO, adapterMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
        } else {
            logger.error("采集病人列表数据集必须有event_no.");
            return null;
@ -174,10 +173,10 @@ public class DataCollectDispatcher {
            paramsNode.put("tableCode", adapterDataSet.getAdapterDataSetT().getStdDatasetCode());
            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
            List<NameValuePair> formParams = new ArrayList<>();
            Map<String, String> formParams = new HashMap<>();
//            formParams.add(new BasicNameValuePair("secret", secret));
            formParams.add(new BasicNameValuePair("api", "collectionData"));
            formParams.add(new BasicNameValuePair("param", mapper.writeValueAsString(paramsNode)));
            formParams.put("api", "collectionData");
            formParams.put("param", mapper.writeValueAsString(paramsNode));
            //调用资源服务网关
            String rootStr = EsbHttp.getFecthData(formParams);
@ -219,6 +218,7 @@ public class DataCollectDispatcher {
    /**
     * 根据编排任务进行采集
     *
     * @param patient
     * @param adapterDataSet
     * @return
@ -252,10 +252,10 @@ public class DataCollectDispatcher {
            paramsNode.put("tableCode", adapterDataSet.getAdapterDataSetT().getStdDatasetCode());
            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
            List<NameValuePair> formParams = new ArrayList<>();
            Map<String, String> formParams = new HashMap<>();
//            formParams.add(new BasicNameValuePair("secret", secret));
            formParams.add(new BasicNameValuePair("api", "collectionData"));
            formParams.add(new BasicNameValuePair("param", mapper.writeValueAsString(paramsNode)));
            formParams.put("api", "collectionData");
            formParams.put("param", mapper.writeValueAsString(paramsNode));
            //调用资源服务网关
            String rootStr = EsbHttp.getFecthData(formParams);

+ 98 - 112
src/main/java/com/yihu/hos/crawler/service/EsbHttp.java

@ -5,9 +5,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.httpclient.HttpClientUtil;
import com.yihu.hos.core.httpclient.HttpHelper;
import com.yihu.hos.core.httpclient.HttpResponse;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.crawler.model.adapter.AdapterDataSet;
@ -16,13 +15,14 @@ import com.yihu.hos.crawler.model.patient.Patient;
import com.yihu.hos.crawler.model.transform.EhrCondition;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONObject;
import sun.misc.BASE64Encoder;
import java.io.File;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
 * Created by hzp on 2016/3/10.
@ -30,43 +30,45 @@ import java.util.*;
public class EsbHttp {
    private static Logger logger = LoggerFactory.getLogger(EsbHttp.class);
    public static String defaultHttpUrl = "";
    public static String clientId = "";
    public static String clientKey = "";
    public static String httpGateway = "";
    /***************************** 用户接口 *********************************************/
    /**
     * 用户登录验证
     */
    public static HttpResponse loginAction(String user, String password) throws Exception{
        String loginAction = HttpHelper.defaultHttpUrl+"/authorizations/users/" + user;
        Map<String,Object> header = new HashMap<>();
        String auth  = new BASE64Encoder().encode((user+":"+password).getBytes());
        header.put("Authorization","Basic "+auth);
        return HttpHelper.put(loginAction, null, header);
    public static HTTPResponse loginAction(String user, String password) throws Exception {
        String loginAction = defaultHttpUrl + "/authorizations/users/" + user;
        Map<String, String> header = new HashMap<>();
        String auth = new BASE64Encoder().encode((user + ":" + password).getBytes());
        header.put("Authorization", "Basic " + auth);
        return HttpClientKit.put(loginAction, null, header);
    }
    /*
    *   获取用户信息
    * */
    public static HttpResponse getUserInfo(String user,String token)
    {
        String url = HttpHelper.defaultHttpUrl+"/users/" + user;
        Map<String,Object> params = new HashMap<>();
        params.put("token",token);
        params.put("user",user);
        return HttpHelper.get(url, params);
    public static HTTPResponse getUserInfo(String user, String token) {
        String url = defaultHttpUrl + "/users/" + user;
        Map<String, String> params = new HashMap<>();
        params.put("token", token);
        params.put("user", user);
        return HttpClientKit.get(url, params);
    }
    /***************************** 应用接口 *********************************************/
    /**
     * 获取本机指纹
     *
     * @return
     */
    private static String GetFingerprint(){
    private static String GetFingerprint() {
        try {
            return UUID.randomUUID().toString();
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            System.out.print(e.getMessage());
            return "";
        }
@ -75,16 +77,16 @@ public class EsbHttp {
    /**
     * 应用登录验证
     */
    public static String getToken(){
    public static String getToken() {
        try {
            String loginAction = HttpHelper.defaultHttpUrl + "/authorizations/clients/" + HttpHelper.clientId;
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            String loginAction = defaultHttpUrl + "/authorizations/clients/" + clientId;
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            //本地指纹
            Map<String, Object> params = new HashMap<String, Object>();
            Map<String, String> params = new HashMap<>();
            params.put("info", "{\"fingerprint\": \"" + GetFingerprint() + "\"}");
            HttpResponse response = HttpHelper.put(loginAction, params, header);
            HTTPResponse response = HttpClientKit.put(loginAction, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject obj = new JSONObject(response.getBody());
                //判断是否成功
@ -103,9 +105,7 @@ public class EsbHttp {
                logger.info(msg);
                return null;
            }
        }
        catch (Exception ex)
        {
        } catch (Exception ex) {
            logger.info("获取Token失败," + ex.getMessage());
            return null;
        }
@ -114,7 +114,7 @@ public class EsbHttp {
    /**
     * 获取病人列表
     */
    public static String getPatientList(AdapterDataSet adapterDataSet, List<EhrCondition> queryParams){
    public static String getPatientList(AdapterDataSet adapterDataSet, List<EhrCondition> queryParams) {
        try {
            ObjectMapper mapper = new ObjectMapper();
            ObjectNode paramsNode = mapper.createObjectNode();
@ -122,11 +122,11 @@ public class EsbHttp {
            paramsNode.put("tableCode", adapterDataSet.getAdapterDataSetT().getStdDatasetCode());
            paramsNode.put("condition", mapper.writeValueAsString(queryParams));
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("api", "collectionData"));
            Map<String, String> formParams = new HashMap<>();
            formParams.put("api", "collectionData");
            String params = mapper.writeValueAsString(paramsNode);
            formParams.add(new BasicNameValuePair("param", params));
            HttpResponse response = HttpClientUtil.postForm(HttpHelper.httpGateway, formParams);
            formParams.put("param", params);
            HTTPResponse response = HttpClientKit.post(httpGateway, formParams);
            if (response == null || response.getStatusCode() != 200) {
                logger.error("获取病人列表错误,请求HTTP错误,请检查配置或HTTP是否可用.");
                return "";
@ -151,9 +151,9 @@ public class EsbHttp {
        }
    }
    public static String getFecthData(List<NameValuePair> formParams) {
    public static String getFecthData(Map<String, String> formParams) {
        try {
            HttpResponse response = HttpClientUtil.postForm(HttpHelper.httpGateway, formParams);
            HTTPResponse response = HttpClientKit.post(httpGateway, formParams);
            if (response == null || response.getStatusCode() != 200) {
                logger.info("获取病人数据错误,请求HTTP错误,请检查配置或HTTP是否可用.");
                return SqlConstants.EMPTY;
@ -177,41 +177,38 @@ public class EsbHttp {
            return SqlConstants.EMPTY;
        }
    }
        /**
         * 获取公钥
         */
    public static String getPublicKey(String orgCode){
    /**
     * 获取公钥
     */
    public static String getPublicKey(String orgCode) {
        try {
            String token = getToken();
            if (!StringUtil.isEmpty(SysConfig.getInstance().getPublicKeyMap().get(orgCode))) {
                return SysConfig.getInstance().getPublicKeyMap().get(orgCode);
            }
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            Map<String, Object> paramMap = new HashMap<>();
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            Map<String, String> paramMap = new HashMap<>();
            paramMap.put("org_code", orgCode);
            paramMap.put("token", token);
            String publicKeyMethod = HttpHelper.defaultHttpUrl + "/organizations/"+orgCode+"/key";
            HttpResponse response = HttpHelper.get(publicKeyMethod, paramMap, header);
            String publicKeyMethod = defaultHttpUrl + "/organizations/" + orgCode + "/key";
            HTTPResponse response = HttpClientKit.get(publicKeyMethod, paramMap, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                JSONObject json = new JSONObject(response.getBody());
                if(json.has("publicKey"))
                {
                if (json.has("publicKey")) {
                    String publicKey = json.getString("publicKey");
                    SysConfig.getInstance().getPublicKeyMap().put(orgCode, publicKey);
                    return publicKey;
                }
                else{
                } else {
                    logger.info("获取公钥失败,返回未包含publicKey。");
                    return null;
                }
            }
            else{
            } else {
                String msg = "获取公钥失败。";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return null;
@ -228,22 +225,20 @@ public class EsbHttp {
    public static String getRemoteVersion(String orgCode) {
        try {
            String token = getToken();
            String versionMethod = HttpHelper.defaultHttpUrl + "/adaptions/org_plan/version";
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            Map<String, Object> params = new HashMap<>();
            String versionMethod = defaultHttpUrl + "/adaptions/org_plan/version";
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            Map<String, String> params = new HashMap<>();
            params.put("org_code", orgCode);
            params.put("token", token);
            HttpResponse response = HttpHelper.get(versionMethod, params, header);
            HTTPResponse response = HttpClientKit.get(versionMethod, params, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                return response.getBody();
            }
            else{
            } else {
                String msg = "获取健康云平台标准版本号失败";
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
@ -264,51 +259,45 @@ public class EsbHttp {
        try {
            JSONObject json = new JSONObject(data);
            String colName = SysConfig.registerIdCardNo;
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("User-Agent", "client " + HttpHelper.clientId);
            if(json!=null && json.has("data")) {
                JSONObject p = (JSONObject)json.getJSONArray("data").get(0);
                if(!p.has(colName) || StringUtil.isEmpty(p.get(colName))) {
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            header.put("User-Agent", "client " + clientId);
            if (json != null && json.has("data")) {
                JSONObject p = (JSONObject) json.getJSONArray("data").get(0);
                if (!p.has(colName) || StringUtil.isEmpty(p.get(colName))) {
                    logger.info("注册病人信息请求失败:身份证号码为空,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                    return false;
                }
                else{
                } else {
                    String idCord = p.getString(colName);
                    String registerMethod = HttpHelper.defaultHttpUrl + "/patients/"+idCord;
                    String registerMethod = defaultHttpUrl + "/patients/" + idCord;
                    if (StringUtil.isEmpty(data)) {
                        logger.info("注册病人信息请求失败:无具体病人信息,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                        return false;
                    }
                    Map<String, Object> paramMap = new HashMap<>();
                    Map<String, String> paramMap = new HashMap<>();
                    paramMap.put("demographic_id", idCord);
                    paramMap.put("json", data);
                    paramMap.put("token", token);
                    HttpResponse response = HttpHelper.post(registerMethod, paramMap, header);
                    HTTPResponse response = HttpClientKit.post(registerMethod, paramMap, header);
                    if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                        logger.info("注册病人信息成功。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
                        return true;
                    }
                    else{
                    } else {
                        String msg = "注册病人信息请求失败。patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo();
                        if(response != null)
                        {
                            msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                        if (response != null) {
                            msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                        }
                        logger.info(msg);
                        return false;
                    }
                }
            }
            else{
            } else {
                logger.info("注册病人信息请求失败:传入数据无效,patient_id=" + patient.getPatientId() + ", event_no=" + patient.getEventNo());
                return false;
            }
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            logger.info("注册病人信息请求失败." + e.getMessage());
            return false;
        }
@ -319,34 +308,31 @@ public class EsbHttp {
     */
    public static boolean upload(Patient patient, File file, String encryptPwd, String token) {
        try {
            String uploadMethod = HttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(file);
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            header.put("User-Agent", "client " + HttpHelper.clientId);
            HttpResponse response = HttpHelper.postFile(uploadMethod, formParams, file.getAbsolutePath(), header);
            String uploadMethod = defaultHttpUrl + "/packages";
            String fileMd5 = MD5.getMd5ByFile(file);
            Map<String, String> formParams = new HashMap<>();
            formParams.put("md5", fileMd5);
            formParams.put("package_crypto", encryptPwd);
            formParams.put("org_code", patient.getOrgCode());
            formParams.put("token", token);
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            header.put("User-Agent", "client " + clientId);
            HTTPResponse response = HttpClientKit.postFile(uploadMethod, file.getAbsolutePath(), formParams, header);
            if (response != null && response.getStatusCode() == HttpStatus.SC_OK) {
                logger.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            }
            else {
            } else {
                String msg = "上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo();
                if (response != null)
                {
                    msg +="(错误代码:"+ response.getStatusCode() + ",错误信息:"+response.getBody()+")";
                if (response != null) {
                    msg += "(错误代码:" + response.getStatusCode() + ",错误信息:" + response.getBody() + ")";
                }
                logger.info(msg);
                return false;
            }
        }
        catch (Exception e) {
        } catch (Exception e) {
            logger.info("上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            logger.error(e.getCause().toString());
            return false;
@ -357,17 +343,17 @@ public class EsbHttp {
    /**
     * 下载标准包
     */
    public static HttpResponse download(String remoteVersion, String orgCode) {
    public static HTTPResponse download(String remoteVersion, String orgCode) {
        try {
            String token = getToken();
            String downLoadMethod = HttpHelper.defaultHttpUrl + "/adaptions/"+orgCode+"/source";
            Map<String, Object> params = new HashMap<>();
            String downLoadMethod = defaultHttpUrl + "/adaptions/" + orgCode + "/source";
            Map<String, String> params = new HashMap<>();
            params.put("version_code", remoteVersion);
            params.put("org_code", orgCode);
            params.put("token", token);
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            HttpResponse response = HttpHelper.get(downLoadMethod, params, header);
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + clientKey);
            HTTPResponse response = HttpClientKit.get(downLoadMethod, params, header);
            return response;
        } catch (Exception e) {
            logger.info("下载标准包异常:");

+ 24 - 25
src/main/java/com/yihu/hos/crawler/service/OldPatientCDAUpload.java

@ -6,18 +6,18 @@ import com.yihu.hos.core.compress.Zipper;
import com.yihu.hos.core.encrypt.MD5;
import com.yihu.hos.core.encrypt.RSA;
import com.yihu.hos.core.file.FileUtil;
import com.yihu.hos.core.httpclient.HttpHelper;
import com.yihu.hos.core.httpclient.HttpResponse;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.crawler.model.config.SysConfig;
import com.yihu.hos.crawler.model.patient.Patient;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.io.File;
import java.security.Key;
import java.util.*;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
 * 档案上传
@ -28,9 +28,8 @@ import java.util.*;
 */
public class OldPatientCDAUpload {
    private static Logger logger = LoggerFactory.getLogger(OldPatientCDAUpload.class);
    public static String uploadMethod;
    private static Logger logger = LoggerFactory.getLogger(OldPatientCDAUpload.class);
    /**
     * @param patient
@ -38,14 +37,14 @@ public class OldPatientCDAUpload {
     * @modify 2015.09.15 airhead 修订删除目录
     * @modify 2015.09.19 airhead 修复无文档问题及错误信息
     */
    public boolean upload(Patient patient,String token) {
    public boolean upload(Patient patient, String token) {
        ZipFile zipFile = zip(patient);
        try {
            if (zipFile == null || zipFile.file == null) {
                logger.info("压缩病人档案失败,病人文档未生成,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            boolean result = upload(patient, zipFile,token);
            boolean result = upload(patient, zipFile, token);
            if (!result) {
                logger.info("上传病人档案失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                FileUtil.deleteDirectory(new File(zipFile.directory));
@ -77,7 +76,7 @@ public class OldPatientCDAUpload {
            Key key = RSA.genPublicKey(SysConfig.getInstance().getPublicKeyMap().get(patient.getOrgCode()));
            if (key == null) {
                logger.info("压缩文件错误,无公钥信息.");
                FileUtil.deleteDirectory(new File( patientCDAIndex.getDirectory()));
                FileUtil.deleteDirectory(new File(patientCDAIndex.getDirectory()));
                return null;
            }
@ -98,25 +97,25 @@ public class OldPatientCDAUpload {
        return null;
    }
    private boolean upload(Patient patient,  ZipFile zipFile, String token) {
    private boolean upload(Patient patient, ZipFile zipFile, String token) {
        try {
            String uploadMethod = HttpHelper.defaultHttpUrl + "/packages";
            String fileMd5= MD5.getMd5ByFile(zipFile.file);
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", zipFile.encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            HttpResponse response = HttpHelper.postFile(uploadMethod, formParams, zipFile.file.getAbsolutePath(), header);
            String uploadMethod = EsbHttp.defaultHttpUrl + "/packages";
            String fileMd5 = MD5.getMd5ByFile(zipFile.file);
            Map<String, String> formParams = new HashMap<>();
            formParams.put("md5", fileMd5);
            formParams.put("package_crypto", zipFile.encryptPwd);
            formParams.put("org_code", patient.getOrgCode());
            formParams.put("token", token);
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + EsbHttp.clientKey);
            HTTPResponse response = HttpClientKit.postFile(uploadMethod, zipFile.file.getAbsolutePath(), formParams, header);
            if (response == null) {
                logger.info( "上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                logger.info("上传病人档案请求失败,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
            if (response.getStatusCode() != 200) {
                logger.info( "上传病人档案请求失败,错误代码:" + response.getStatusCode() + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                logger.info("上传病人档案请求失败,错误代码:" + response.getStatusCode() + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            }
@ -128,13 +127,13 @@ public class OldPatientCDAUpload {
                logger.info("上传病人档案失败,错误代码:" + result + ",patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return false;
            } else {
                logger.info( "上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                logger.info("上传病人档案成功,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.info( "上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            logger.info("上传病人档案异常,patient_id:" + patient.getPatientId() + ",event_no:" + patient.getEventNo());
            return false;
        }
    }

+ 7 - 8
src/main/java/com/yihu/hos/datacollect/service/DatacollectService.java

@ -10,13 +10,9 @@ import com.yihu.ehr.dbhelper.common.sqlparser.ParserSql;
import com.yihu.ehr.dbhelper.common.sqlparser.ParserSqlserver;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.ehr.dbhelper.mongodb.MongodbHelper;
import com.yihu.hos.web.framework.constrant.DateConvert;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import com.yihu.hos.web.framework.model.ActionResult;
import com.yihu.hos.common.Services;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.core.webservice.WebserviceUtil;
import com.yihu.hos.common.Services;
import com.yihu.hos.crawler.model.config.SysConfig;
import com.yihu.hos.crawler.model.patient.PatientIdentity;
import com.yihu.hos.datacollect.dao.intf.IDatacollectDao;
@ -25,6 +21,9 @@ import com.yihu.hos.datacollect.model.*;
import com.yihu.hos.datacollect.service.intf.IDatacollectManager;
import com.yihu.hos.datacollect.service.intf.IDatacollectService;
import com.yihu.hos.resource.service.IStdService;
import com.yihu.hos.web.framework.constrant.DateConvert;
import com.yihu.hos.web.framework.constrant.SqlConstants;
import com.yihu.hos.web.framework.model.ActionResult;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
@ -844,7 +843,7 @@ public class DatacollectService implements IDatacollectService {
                    String sqlMax = "select max(" + maxKey + ") as MAX_KEYVALUE from " + adapterTableName + strWhere;
                    //webservice获取数据总条数
                    String strCount = WebserviceUtil.request(url, "ExcuteSQL", new Object[]{"", sqlCount});
                    String strCount = "";//WebserviceUtil.request(url, "ExcuteSQL", new Object[]{"", sqlCount});
                    List<JSONObject> dataCount = getListFromXml(strCount);
                    if (dataCount != null && dataCount.size() > 0) {
@ -854,7 +853,7 @@ public class DatacollectService implements IDatacollectService {
                            message = "0条记录,无需采集。";
                        } else {
                            //webservice获取最大值
                            String strMax = WebserviceUtil.request(url, "ExcuteSQL", new Object[]{"", sqlMax});
                            String strMax = ""; //WebserviceUtil.request(url, "ExcuteSQL", new Object[]{"", sqlMax});
                            List<JSONObject> dataMax = getListFromXml(strCount);
                            int successCount = 0;
                            String maxKeyvalue = dataMax.get(0).getString("MAX_KEYVALUE");
@ -893,7 +892,7 @@ public class DatacollectService implements IDatacollectService {
                                String msg = "";
                                try {
                                    //获取分页数据
                                    String strList = WebserviceUtil.request(url, "ExcuteSQL", new Object[]{"", sql});
                                    String strList = ""; //WebserviceUtil.request(url, "ExcuteSQL", new Object[]{"", sql});
                                    List<JSONObject> list = getListFromXml(strList);
                                    if (list != null) {
                                        msg = intoMongodb(list, schemeVersion, stdTableName, colList); //返回信息

+ 14 - 14
src/main/java/com/yihu/hos/resource/controller/RsResourceController.java

@ -225,7 +225,7 @@ public class RsResourceController extends BaseController {
            model.addAttribute("appResourceDetail", rard);
            model.addAttribute("metadataName", resourceService.getRsResourceMetadata(rard.getMetadataId()));
            List<RsResourceDimensionModel> rsResourceDimensionModels =resourceService.getDimensionByResourceId(resourceId);
            List<RsResourceDimensionModel> rsResourceDimensionModels = resourceService.getDimensionByResourceId(resourceId);
            model.addAttribute("resultSelect", mapper.writeValueAsString(rsResourceDimensionModels));
            model.addAttribute("resourceId", resourceId);
            model.addAttribute("contentPage", "/resource/resourceregister/rsResourceDimensionDialog");
@ -281,9 +281,9 @@ public class RsResourceController extends BaseController {
            //得到资源对象
            RsResourceDeatilModel resource = resourceService.getRsResourceDeatilModel(id);
            //设置参数
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("rows", Integer.valueOf(pageSize));
            params.put("page", Integer.valueOf(currPage));
            Map<String, String> params = new HashMap<>();
            params.put("rows", pageSize);
            params.put("page", currPage);
            if (!StringUtils.isEmpty(resource.getDatasetCode())) {
                RsResourceRestDetail rrd = resourceRestService.getResourceRestDetailByCode(resource.getCode());
@ -308,22 +308,22 @@ public class RsResourceController extends BaseController {
            ObjectMapper mapper = new ObjectMapper();
            if (response_params.startsWith("[")) {
                //如果是数组
                ArrayNode jsonArray = mapper.readValue(response_params,ArrayNode.class);
                Integer count =jsonArray.size();//得到总数
                ArrayNode jsonArray = mapper.readValue(response_params, ArrayNode.class);
                Integer count = jsonArray.size();//得到总数
                //访问服务得到元数据
                //设置动态datagrid值
                result.setDetailModelList(mapper.readValue(response_params.toString().replace(":null", ":\"\""),List.class));
                result.setDetailModelList(mapper.readValue(response_params.toString().replace(":null", ":\"\""), List.class));
                result.setTotalCount(count);
                result.setCurrPage(Integer.valueOf(currPage));
                result.setPageSize(count);
                result.setSuccessFlg(true);
            } else if (response_params.startsWith("{")) {
                ObjectNode objectNode = mapper.readValue(response_params,ObjectNode.class);
                Integer count =  objectNode.get("count").asInt();//得到总数
                ObjectNode objectNode = mapper.readValue(response_params, ObjectNode.class);
                Integer count = objectNode.get("count").asInt();//得到总数
                //访问服务得到元数据
                //设置动态datagrid值
                String s = objectNode.get("detailModelList").toString().replace(":null", ":\"\"");
                result.setDetailModelList(mapper.readValue(s,List.class));
                result.setDetailModelList(mapper.readValue(s, List.class));
                result.setTotalCount(count);
                result.setCurrPage(Integer.valueOf(currPage));
                result.setPageSize(Integer.valueOf(pageSize));
@ -802,10 +802,10 @@ public class RsResourceController extends BaseController {
        try {
            String field = request.getParameter("field");
            ObjectMapper mapper = new ObjectMapper();
            ArrayNode jsonArray = mapper.readValue(field,ArrayNode.class);
            ArrayNode jsonArray = mapper.readValue(field, ArrayNode.class);
            String name = request.getParameter("name");
            Map<String, String> fieldMap = new HashMap<String, String>();
            for (JsonNode jo :jsonArray) {
            for (JsonNode jo : jsonArray) {
                fieldMap.put(String.valueOf(jo.get("key")), String.valueOf(jo.get("value")));
            }
            Result e = this.searchRomoteResourceList(request);
@ -823,13 +823,13 @@ public class RsResourceController extends BaseController {
            String field = request.getParameter("field");
            String data = request.getParameter("data");
            String name = request.getParameter("name");
            ArrayNode jsonArray = mapper.readValue(field,ArrayNode.class);
            ArrayNode jsonArray = mapper.readValue(field, ArrayNode.class);
            Map<String, String> fieldMap = new HashMap<String, String>();
            for (JsonNode jo : jsonArray) {
                fieldMap.put(String.valueOf(jo.get("key")), String.valueOf(jo.get("value")));
            }
            JXLUtil.listMapToExcel(mapper.readValue(data,List.class), fieldMap, name, response);
            JXLUtil.listMapToExcel(mapper.readValue(data, List.class), fieldMap, name, response);
        } catch (Exception e) {
            e.printStackTrace();
        }

+ 1 - 1
src/main/java/com/yihu/hos/resource/service/IRsResourceService.java

@ -36,7 +36,7 @@ public interface IRsResourceService {
    List<TreeResult> resourceCategoryTreeList(String name) throws Exception;
    String searchRomoteResourceList(String code, Map<String, Object> params) throws Exception;
    String searchRomoteResourceList(String code, Map<String, String> params) throws Exception;
    Result getDataSet(Map<String, Object> params) throws Exception;

+ 5 - 3
src/main/java/com/yihu/hos/resource/service/impl/RsResourceServiceImpl.java

@ -4,7 +4,8 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.hos.core.httpclient.HttpHelper;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.crawler.service.EsbHttp;
import com.yihu.hos.resource.dao.*;
import com.yihu.hos.resource.model.*;
import com.yihu.hos.resource.service.IRsResourceService;
@ -328,8 +329,9 @@ public class RsResourceServiceImpl implements IRsResourceService {
     * 通过网关获取资源数据
     */
    @Override
    public String searchRomoteResourceList(String code, Map<String, Object> params) throws Exception {
        String result = HttpHelper.getByGateway(code, params).getBody();
    public String searchRomoteResourceList(String code, Map<String, String> params) throws Exception {
        params.put("code", code);
        String result = HttpClientKit.get(EsbHttp.defaultHttpUrl, params).getBody();
        JsonNode jsonobject = objectMapper.readValue(result,JsonNode.class);
        Object response_params = jsonobject.get("responseResult");
        if (response_params.equals("null")) {