背景
笔者最近在项目中使用websocket,通过nginx进行代理,配置如下
server { listen 443 ssl; server_name www.example.com; ssl on; ssl_certificate www.example.com+5.pem; ssl_certificate_key www.example.com+5-key.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #charset koi8-r; access_log logs/aiPlatform/access_log; error_log logs/aiPlatform/error_log error; location /wsapi/asr { proxy_pass http://127.0.0.1:81/api/asr; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /wsapi/asrv2 { proxy_pass http://127.0.0.1:81/api/asrv2; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /wsapi/tts { proxy_pass http://127.0.0.1:81/wsapi/tts; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } }
本地Host文件配置如下
172.112.35.5 www.example.com
一开始在java中通过SDK方式调用,可以运行的。
关键代码
public static void main(String[] args) throws URISyntaxException, InterruptedException, IOException { String WS_URL = "ws://127.0.0.1:81/api/asrv2"; WS_URL="wss://www.example.com/wsapi/asrv2"; URI uri = new URI(WS_URL); CountDownLatch connectClose = new CountDownLatch(1); TestASRByChunkClient client = new TestASRByChunkClient(uri, connectClose); client.sendByStep(); client.sendEOS(); connectClose.await(); }
错误信息:
"D:Program FilesJavajdk1.8.0_111injava.exe" "-javaagent:D:developIntelliJ IDEA 2018.3.4.2libidea_rt.jar=43128:D:developIntelliJ IDEA 2018.3.4.2in" -Dfile.encoding=UTF-8 -classpath "D:Program FilesJavajdk1.8.0_111jrelibcharsets.jar;D:Program FilesJavajdk1.8.0_111jrelibdeploy.jar;D:Program FilesJavajdk1.8.0_111jrelibextaccess-bridge-64.jar;D:Program FilesJavajdk1.8.0_111jrelibextcldrdata.jar;D:Program FilesJavajdk1.8.0_111jrelibextdnsns.jar;D:Program FilesJavajdk1.8.0_111jrelibextjaccess.jar;D:Program FilesJavajdk1.8.0_111jrelibextjfxrt.jar;D:Program FilesJavajdk1.8.0_111jrelibextlocaledata.jar;D:Program FilesJavajdk1.8.0_111jrelibext ashorn.jar;D:Program FilesJavajdk1.8.0_111jrelibextsunec.jar;D:Program FilesJavajdk1.8.0_111jrelibextsunjce_provider.jar;D:Program FilesJavajdk1.8.0_111jrelibextsunmscapi.jar;D:Program FilesJavajdk1.8.0_111jrelibextsunpkcs11.jar;D:Program FilesJavajdk1.8.0_111jrelibextzipfs.jar;D:Program FilesJavajdk1.8.0_111jrelibjavaws.jar;D:Program FilesJavajdk1.8.0_111jrelibjce.jar;D:Program FilesJavajdk1.8.0_111jrelibjfr.jar;D:Program FilesJavajdk1.8.0_111jrelibjfxswt.jar;D:Program FilesJavajdk1.8.0_111jrelibjsse.jar;D:Program FilesJavajdk1.8.0_111jrelibmanagement-agent.jar;D:Program FilesJavajdk1.8.0_111jrelibplugin.jar;D:Program FilesJavajdk1.8.0_111jrelib esources.jar;D:Program FilesJavajdk1.8.0_111jrelib t.jar;F:ai开放平台SRCweb arget est-classes;F:ai开放平台SRCweb argetclasses;D:developapache-maven-3.5.4 epo kmybatismapper-spring-boot-starter2.1.3mapper-spring-boot-starter-2.1.3.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-jdbc2.0.2.RELEASEspring-boot-starter-jdbc-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epocomzaxxerHikariCP2.7.9HikariCP-2.7.9.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-jdbc5.0.6.RELEASEspring-jdbc-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgmybatismybatis3.4.6mybatis-3.4.6.jar;D:developapache-maven-3.5.4 epoorgmybatismybatis-spring1.3.2mybatis-spring-1.3.2.jar;D:developapache-maven-3.5.4 epo kmybatismapper-core1.1.3mapper-core-1.1.3.jar;D:developapache-maven-3.5.4 epojavaxpersistencepersistence-api1.0persistence-api-1.0.jar;D:developapache-maven-3.5.4 epo kmybatismapper-base1.1.3mapper-base-1.1.3.jar;D:developapache-maven-3.5.4 epo kmybatismapper-weekend1.1.4.5mapper-weekend-1.1.4.5.jar;D:developapache-maven-3.5.4 epo kmybatismapper-spring1.1.3mapper-spring-1.1.3.jar;D:developapache-maven-3.5.4 epo kmybatismapper-extra1.1.3mapper-extra-1.1.3.jar;D:developapache-maven-3.5.4 epo kmybatismapper-spring-boot-autoconfigure2.1.3mapper-spring-boot-autoconfigure-2.1.3.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-thymeleaf2.0.2.RELEASEspring-boot-starter-thymeleaf-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorg hymeleaf hymeleaf-spring53.0.9.RELEASE hymeleaf-spring5-3.0.9.RELEASE.jar;D:developapache-maven-3.5.4 epoorg hymeleafextras hymeleaf-extras-java8time3.0.1.RELEASE hymeleaf-extras-java8time-3.0.1.RELEASE.jar;D:developapache-maven-3.5.4 epoorg hymeleaf hymeleaf3.0.9.RELEASE hymeleaf-3.0.9.RELEASE.jar;D:developapache-maven-3.5.4 epoognlognl3.1.12ognl-3.1.12.jar;D:developapache-maven-3.5.4 epoorgjavassistjavassist3.20.0-GAjavassist-3.20.0-GA.jar;D:developapache-maven-3.5.4 epoorgattoparserattoparser2.0.4.RELEASEattoparser-2.0.4.RELEASE.jar;D:developapache-maven-3.5.4 epoorgunbescapeunbescape1.1.5.RELEASEunbescape-1.1.5.RELEASE.jar;D:developapache-maven-3.5.4 epoorgslf4jslf4j-api1.7.25slf4j-api-1.7.25.jar;D:developapache-maven-3.5.4 epo z etultraq hymeleaf hymeleaf-layout-dialect2.4.1 hymeleaf-layout-dialect-2.4.1.jar;D:developapache-maven-3.5.4 epo z etultraq hymeleaf hymeleaf-expression-processor1.1.3 hymeleaf-expression-processor-1.1.3.jar;D:developapache-maven-3.5.4 epoorgcodehausgroovygroovy2.4.15groovy-2.4.15.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-mail2.0.2.RELEASEspring-boot-starter-mail-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-context5.0.6.RELEASEspring-context-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-context-support5.0.6.RELEASEspring-context-support-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epocomsunmailjavax.mail1.6.1javax.mail-1.6.1.jar;D:developapache-maven-3.5.4 epojavaxactivationactivation1.1activation-1.1.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-web2.0.2.RELEASEspring-boot-starter-web-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-json2.0.2.RELEASEspring-boot-starter-json-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksonmodulejackson-module-parameter-names2.9.5jackson-module-parameter-names-2.9.5.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-tomcat2.0.2.RELEASEspring-boot-starter-tomcat-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgapache omcatembed omcat-embed-core8.5.31 omcat-embed-core-8.5.31.jar;D:developapache-maven-3.5.4 epoorgapache omcatembed omcat-embed-el8.5.31 omcat-embed-el-8.5.31.jar;D:developapache-maven-3.5.4 epoorgapache omcatembed omcat-embed-websocket8.5.31 omcat-embed-websocket-8.5.31.jar;D:developapache-maven-3.5.4 epoorghibernatevalidatorhibernate-validator6.0.9.Finalhibernate-validator-6.0.9.Final.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-web5.0.6.RELEASEspring-web-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-webmvc5.0.6.RELEASEspring-webmvc-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-log4j1.3.8.RELEASEspring-boot-starter-log4j-1.3.8.RELEASE.jar;D:developapache-maven-3.5.4 epoorgslf4jjcl-over-slf4j1.7.25jcl-over-slf4j-1.7.25.jar;D:developapache-maven-3.5.4 epolog4jlog4j1.2.17log4j-1.2.17.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-configuration-processor2.0.2.RELEASEspring-boot-configuration-processor-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-websocket5.0.6.RELEASEspring-websocket-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoio etty etty-all4.1.24.Final etty-all-4.1.24.Final.jar;D:developapache-maven-3.5.4 epomysqlmysql-connector-java5.1.46mysql-connector-java-5.1.46.jar;D:developapache-maven-3.5.4 epocomalibabadruid1.0.25druid-1.0.25.jar;D:Program FilesJavajdk1.8.0_111libjconsole.jar;D:Program FilesJavajdk1.8.0_111lib ools.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-test2.0.2.RELEASEspring-boot-starter-test-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-test2.0.2.RELEASEspring-boot-test-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-test-autoconfigure2.0.2.RELEASEspring-boot-test-autoconfigure-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgassertjassertj-core3.9.1assertj-core-3.9.1.jar;D:developapache-maven-3.5.4 epoorgmockitomockito-core2.15.0mockito-core-2.15.0.jar;D:developapache-maven-3.5.4 epo etytebuddyyte-buddy1.7.11yte-buddy-1.7.11.jar;D:developapache-maven-3.5.4 epo etytebuddyyte-buddy-agent1.7.11yte-buddy-agent-1.7.11.jar;D:developapache-maven-3.5.4 epoorgobjenesisobjenesis2.6objenesis-2.6.jar;D:developapache-maven-3.5.4 epoorghamcresthamcrest-core1.3hamcrest-core-1.3.jar;D:developapache-maven-3.5.4 epoorghamcresthamcrest-library1.3hamcrest-library-1.3.jar;D:developapache-maven-3.5.4 epoorgskyscreamerjsonassert1.5.0jsonassert-1.5.0.jar;D:developapache-maven-3.5.4 epocomvaadinexternalgoogleandroid-json .0.20131108.vaadin1android-json-0.0.20131108.vaadin1.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-test5.0.6.RELEASEspring-test-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgxmlunitxmlunit-core2.5.1xmlunit-core-2.5.1.jar;D:developapache-maven-3.5.4 epoorghamcresthamcrest-all1.3hamcrest-all-1.3.jar;D:developapache-maven-3.5.4 epocomjaywayjsonpathjson-path .8.1json-path-0.8.1.jar;D:developapache-maven-3.5.4 epo etminidevjson-smart1.1.1json-smart-1.1.1.jar;D:developapache-maven-3.5.4 epocommons-langcommons-lang2.6commons-lang-2.6.jar;D:developapache-maven-3.5.4 epocomjaywayjsonpathjson-path-assert .8.1json-path-assert-0.8.1.jar;D:developapache-maven-3.5.4 epojunitjunit4.12junit-4.12.jar;D:developapache-maven-3.5.4 epocomelerwebpinyin4j2.5.0pinyin4j-2.5.0.jar;D:developapache-maven-3.5.4 epocomgithubpagehelperpagehelper-spring-boot-starter1.2.10pagehelper-spring-boot-starter-1.2.10.jar;D:developapache-maven-3.5.4 epoorgmybatisspringootmybatis-spring-boot-starter1.3.2mybatis-spring-boot-starter-1.3.2.jar;D:developapache-maven-3.5.4 epoorgmybatisspringootmybatis-spring-boot-autoconfigure1.3.2mybatis-spring-boot-autoconfigure-1.3.2.jar;D:developapache-maven-3.5.4 epocomgithubpagehelperpagehelper-spring-boot-autoconfigure1.2.10pagehelper-spring-boot-autoconfigure-1.2.10.jar;D:developapache-maven-3.5.4 epocomgithubpagehelperpagehelper5.1.8pagehelper-5.1.8.jar;D:developapache-maven-3.5.4 epocomgithubjsqlparserjsqlparser1.2jsqlparser-1.2.jar;D:developapache-maven-3.5.4 epoorgslf4jslf4j-log4j121.8.0-beta2slf4j-log4j12-1.8.0-beta2.jar;D:developapache-maven-3.5.4 epochqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;D:developapache-maven-3.5.4 epochqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;D:developapache-maven-3.5.4 epoorgslf4jjul-to-slf4j1.7.25jul-to-slf4j-1.7.25.jar;D:developapache-maven-3.5.4 epoorgslf4jlog4j-over-slf4j1.7.25log4j-over-slf4j-1.7.25.jar;D:developapache-maven-3.5.4 epocomalibabafastjson1.2.56fastjson-1.2.56.jar;D:developapache-maven-3.5.4 epoorgapachecommonscommons-lang33.8.1commons-lang3-3.8.1.jar;D:developapache-maven-3.5.4 epoorgapachecommonscommons-text1.7commons-text-1.7.jar;D:developapache-maven-3.5.4 epoorgspringframeworksecurityspring-security-core4.2.12.RELEASEspring-security-core-4.2.12.RELEASE.jar;D:developapache-maven-3.5.4 epoaopallianceaopalliance1.0aopalliance-1.0.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-aop5.0.6.RELEASEspring-aop-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-beans5.0.6.RELEASEspring-beans-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-expression5.0.6.RELEASEspring-expression-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-redis1.4.7.RELEASEspring-boot-starter-redis-1.4.7.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkdataspring-data-redis2.0.7.RELEASEspring-data-redis-2.0.7.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkdataspring-data-keyvalue2.0.7.RELEASEspring-data-keyvalue-2.0.7.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkdataspring-data-commons2.0.7.RELEASEspring-data-commons-2.0.7.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-tx5.0.6.RELEASEspring-tx-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-oxm5.0.6.RELEASEspring-oxm-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epo edisclientsjedis2.9.0jedis-2.9.0.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-cache2.0.2.RELEASEspring-boot-starter-cache-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-data-redis2.0.2.RELEASEspring-boot-starter-data-redis-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoiolettucelettuce-core5.0.4.RELEASElettuce-core-5.0.4.RELEASE.jar;D:developapache-maven-3.5.4 epoioprojectreactor eactor-core3.1.7.RELEASE eactor-core-3.1.7.RELEASE.jar;D:developapache-maven-3.5.4 epoorg eactivestreams eactive-streams1.0.2 eactive-streams-1.0.2.jar;D:developapache-maven-3.5.4 epoio etty etty-common4.1.24.Final etty-common-4.1.24.Final.jar;D:developapache-maven-3.5.4 epoio etty etty-transport4.1.24.Final etty-transport-4.1.24.Final.jar;D:developapache-maven-3.5.4 epoio etty etty-resolver4.1.24.Final etty-resolver-4.1.24.Final.jar;D:developapache-maven-3.5.4 epoorgapachecommonscommons-pool22.5.0commons-pool2-2.5.0.jar;D:developapache-maven-3.5.4 epo etrampffmpegffmpeg .6.2ffmpeg-0.6.2.jar;D:developapache-maven-3.5.4 epocomgoogleguavaguava20.0guava-20.0.jar;D:developapache-maven-3.5.4 epocommons-iocommons-io2.5commons-io-2.5.jar;D:developapache-maven-3.5.4 epoorgmodelmappermodelmapper .7.7modelmapper-0.7.7.jar;D:developapache-maven-3.5.4 epoorgopenjdkjmhjmh-core1.21jmh-core-1.21.jar;D:developapache-maven-3.5.4 epo etsfjopt-simplejopt-simple4.6jopt-simple-4.6.jar;D:developapache-maven-3.5.4 epoorgapachecommonscommons-math33.2commons-math3-3.2.jar;D:developapache-maven-3.5.4 epoorgopenjdkjmhjmh-generator-annprocess1.21jmh-generator-annprocess-1.21.jar;D:developapache-maven-3.5.4 epoorgprojectlomboklombok1.18.8lombok-1.18.8.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-devtools2.0.2.RELEASEspring-boot-devtools-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot2.0.2.RELEASEspring-boot-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-autoconfigure2.0.2.RELEASEspring-boot-autoconfigure-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-aop2.0.2.RELEASEspring-boot-starter-aop-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgaspectjaspectjweaver1.8.13aspectjweaver-1.8.13.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksoncorejackson-databind2.9.9jackson-databind-2.9.9.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksonmodulejackson-module-jaxb-annotations2.9.9jackson-module-jaxb-annotations-2.9.9.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksoncorejackson-core2.9.9jackson-core-2.9.9.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksoncorejackson-annotations2.9.9jackson-annotations-2.9.9.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksondatatypejackson-datatype-jsr3102.9.9jackson-datatype-jsr310-2.9.9.jar;D:developapache-maven-3.5.4 epocomfasterxmljacksondatatypejackson-datatype-jdk82.9.9jackson-datatype-jdk8-2.9.9.jar;D:developapache-maven-3.5.4 epojavaxvalidationvalidation-api2.0.1.Finalvalidation-api-2.0.1.Final.jar;D:developapache-maven-3.5.4 epoorghibernatehibernate-validator5.4.0.Finalhibernate-validator-5.4.0.Final.jar;D:developapache-maven-3.5.4 epoorgjbossloggingjboss-logging3.3.2.Finaljboss-logging-3.3.2.Final.jar;D:developapache-maven-3.5.4 epocomfasterxmlclassmate1.3.4classmate-1.3.4.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-actuator2.0.2.RELEASEspring-boot-starter-actuator-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-actuator-autoconfigure2.0.2.RELEASEspring-boot-actuator-autoconfigure-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-actuator2.0.2.RELEASEspring-boot-actuator-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoiomicrometermicrometer-core1.0.4micrometer-core-1.0.4.jar;D:developapache-maven-3.5.4 epoorghdrhistogramHdrHistogram2.1.10HdrHistogram-2.1.10.jar;D:developapache-maven-3.5.4 epoorglatencyutilsLatencyUtils2.0.3LatencyUtils-2.0.3.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter2.0.2.RELEASEspring-boot-starter-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-logging2.0.2.RELEASEspring-boot-starter-logging-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgapachelogginglog4jlog4j-to-slf4j2.10.0log4j-to-slf4j-2.10.0.jar;D:developapache-maven-3.5.4 epoorgapachelogginglog4jlog4j-api2.10.0log4j-api-2.10.0.jar;D:developapache-maven-3.5.4 epojavaxannotationjavax.annotation-api1.3.2javax.annotation-api-1.3.2.jar;D:developapache-maven-3.5.4 epoorgyamlsnakeyaml1.19snakeyaml-1.19.jar;D:developapache-maven-3.5.4 epocomdyuprojectprotostuffprotostuff-runtime1.1.3protostuff-runtime-1.1.3.jar;D:developapache-maven-3.5.4 epocomdyuprojectprotostuffprotostuff-collectionschema1.1.3protostuff-collectionschema-1.1.3.jar;D:developapache-maven-3.5.4 epocomdyuprojectprotostuffprotostuff-api1.0.8protostuff-api-1.0.8.jar;D:developapache-maven-3.5.4 epocomdyuprojectprotostuffprotostuff-core1.0.8protostuff-core-1.0.8.jar;D:developapache-maven-3.5.4 epoorgjava-websocketJava-WebSocket1.4.0Java-WebSocket-1.4.0.jar;D:developapache-maven-3.5.4 epoorgspringframeworkootspring-boot-starter-websocket2.0.2.RELEASEspring-boot-starter-websocket-2.0.2.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-messaging5.0.6.RELEASEspring-messaging-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgyeauty etty-websocket-spring-boot-starter .8.0 etty-websocket-spring-boot-starter-0.8.0.jar;D:developapache-maven-3.5.4 epoio etty etty-codec-http4.1.24.Final etty-codec-http-4.1.24.Final.jar;D:developapache-maven-3.5.4 epoio etty etty-codec4.1.24.Final etty-codec-4.1.24.Final.jar;D:developapache-maven-3.5.4 epoio etty etty-handler4.1.24.Final etty-handler-4.1.24.Final.jar;D:developapache-maven-3.5.4 epoio etty etty-buffer4.1.24.Final etty-buffer-4.1.24.Final.jar;D:developapache-maven-3.5.4 epocommons-clicommons-cli1.2commons-cli-1.2.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-core5.0.6.RELEASEspring-core-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epoorgspringframeworkspring-jcl5.0.6.RELEASEspring-jcl-5.0.6.RELEASE.jar;D:developapache-maven-3.5.4 epocomopencsvopencsv4.5opencsv-4.5.jar;D:developapache-maven-3.5.4 epocommons-beanutilscommons-beanutils1.9.3commons-beanutils-1.9.3.jar;D:developapache-maven-3.5.4 epocommons-loggingcommons-logging1.2commons-logging-1.2.jar;D:developapache-maven-3.5.4 epocommons-collectionscommons-collections3.2.2commons-collections-3.2.2.jar;D:developapache-maven-3.5.4 epoorgapachecommonscommons-collections44.2commons-collections4-4.2.jar;D:developapache-maven-3.5.4 epocomcoreozwindmill1.2.0windmill-1.2.0.jar;D:developapache-maven-3.5.4 epoorgapachepoipoi-ooxml3.17poi-ooxml-3.17.jar;D:developapache-maven-3.5.4 epoorgapachepoipoi3.17poi-3.17.jar;D:developapache-maven-3.5.4 epoorgapachepoipoi-ooxml-schemas3.17poi-ooxml-schemas-3.17.jar;D:developapache-maven-3.5.4 epoorgapachexmlbeansxmlbeans2.6.0xmlbeans-2.6.0.jar;D:developapache-maven-3.5.4 epostaxstax-api1.0.1stax-api-1.0.1.jar;D:developapache-maven-3.5.4 epocomgithubvirtualdcurvesapi1.04curvesapi-1.04.jar;D:developapache-maven-3.5.4 epocom dunningjson1.8json-1.8.jar;D:developapache-maven-3.5.4 epocomgooglecodegsongson2.8.0gson-2.8.0.jar;D:developapache-maven-3.5.4 epoiohumblehumble-video-all .3.0humble-video-all-0.3.0.jar;D:developapache-maven-3.5.4 epoiohumblehumble-video-noarch .3.0humble-video-noarch-0.3.0.jar;D:developapache-maven-3.5.4 epoiohumblehumble-video-arch-x86_64-w64-mingw32 .3.0humble-video-arch-x86_64-w64-mingw32-0.3.0.jar;D:developapache-maven-3.5.4 epoorgapachehttpcomponentshttpclient4.5.6httpclient-4.5.6.jar;D:developapache-maven-3.5.4 epocommons-codeccommons-codec1.11commons-codec-1.11.jar;D:developapache-maven-3.5.4 epoorgapachehttpcomponentshttpcore4.4.3httpcore-4.4.3.jar;D:developapache-maven-3.5.4 epoorgapachehttpcomponentshttpmime4.5.6httpmime-4.5.6.jar;D:developapache-maven-3.5.4 epourbanophilejava-getopt1.0.9java-getopt-1.0.9.jar;D:developapache-maven-3.5.4 epocomgooglecodesoundlibs ritonus-share .3.7.4 ritonus-share-0.3.7.4.jar;D:developapache-maven-3.5.4 epocomgooglecodesoundlibs ritonus-all .3.7.2 ritonus-all-0.3.7.2.jar;D:developapache-maven-3.5.4 epocomgooglecodesoundlibsjorbis .0.17-2jorbis-0.0.17-2.jar" com.example.web.open.controller.TestASRByChunkClient 14:48:41.515 [WebSocketWriteThread-12] ERROR com.example.web.open.controller.TestASRByChunkClient - 出错了:{} javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:928) at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) at java.io.InputStream.read(InputStream.java:101) at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:424) at java.lang.Thread.run(Thread.java:745) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ... 10 common frames omitted Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ... 16 common frames omitted 14:48:41.519 [WebSocketWriteThread-12] INFO com.example.web.open.controller.TestASRByChunkClient - 已经断开与服务器端连接。 14:48:41.514 [WebSocketConnectReadThread-11] ERROR com.example.web.open.controller.TestASRByChunkClient - 出错了:{} javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:928) at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) at java.io.InputStream.read(InputStream.java:101) at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:424) at java.lang.Thread.run(Thread.java:745) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ... 10 common frames omitted Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ... 16 common frames omitted Exception in thread "main" org.java_websocket.exceptions.WebsocketNotConnectedException at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:630) at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:607) at org.java_websocket.client.WebSocketClient.send(WebSocketClient.java:344) at com.example.web.open.controller.TestASRByChunkClient.init(TestASRByChunkClient.java:74) at com.example.web.open.controller.TestASRByChunkClient.sendByStep(TestASRByChunkClient.java:105) at com.example.web.open.controller.TestASRByChunkClient.main(TestASRByChunkClient.java:58) Process finished with exit code 1
笔者本地调试,使用自签名证书:https本地自签名证书添加到信任证书访问
后来忽然不能运行了。也不知道为什么。后来查找到原因如下:
将cer证书转换成jks证书,并在ssl通信代码之前指定证书密码
转换命令:
jdk1.8.0_181jrein>keytool -importcert -file "D:develop ginx-1.14.2confwww.example.com+5.pem" -keystore "D:develop ginx-1.14.2confwww.example.com+5.jks" -alias "example"
输入密码changeit
然后在使用ssl通信代码之前加以下代码
public static void main(String[] args) throws URISyntaxException, InterruptedException, IOException { System.setProperty("javax.net.ssl.trustStore","D:\develop\nginx-1.14.2\conf\www.example.com+5.jks"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); String WS_URL = "ws://127.0.0.1:81/api/asrv2"; WS_URL="wss://www.example.com/wsapi/asrv2"; URI uri = new URI(WS_URL); CountDownLatch connectClose = new CountDownLatch(1); TestASRByChunkClient client = new TestASRByChunkClient(uri, connectClose); client.sendByStep(); client.sendEOS(); connectClose.await(); }
随后代码正常工作