• tongweb使用之端口冲突处理办法


    问题现象:tongweb服务启动时 提示:[SEVERE] [main] [core] [address already in use: 8005]

     提示8005端口已经在用,此时我电脑上已经启动了tomcat tomcat的默认关闭端口就是8005。因此我们可以采用:关闭tomcat 、修改tomcat默认关闭端口、修改tongweb端口 等方式使得使用的端口不冲突。

    本文介绍不关闭tomcat、不修改tomcat端口而是修改 tongweb端口的方式处理此类端口冲突问题。

    要想修改端口,在未启动服务的情况下,需要通过修改配置文件来达成,因此我们需要了解tongweb的默认端口配置文件位置:

    tongweb使用的默认端口情况如下:

    服务程序        

    功能默认端口/协议端口作用所在配置文件
    TongWeb提供服务的核心进程8088默认应用访问端口conf/tongweb.xml
    9060默认控制台端口        
    7200JMX端口,并随机启动两个端口
    5100EJB远程端口
    8005默认停止端口

     可见tongweb默认的应用访问端口8088、控制台端口9060、jmx端口7200、EJB远程端口 5100以及默认停止端口8005均在安装根目录的conf文件夹里的tongweb.xml文件里,

     

    找到此文件tongweb.xml,查看到内容大致如下(不同版本内容可能存在不同):

    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <tongweb>
    3. <auto-deploy enabled="true" jsp-compile="false" dir="${tongweb.root}/autodeploy" check-interval="3000"/>
    4. <hot-deploy enabled="false" watched-resource="WEB-INF/web.xml,MATA-INF/application.xml"/>
    5. <apps>
    6. <web-app name="console" original-location="${tongweb.upload}/console" location="${tongweb.sysapp}/console" context-root="/console" vs-names="admin" is-directory="true" enabled="true" description="console" deploy-order="1" object-type="sys" jsp-compile="false" dtd-validate="false" is-autodeploy="false" delegate="false"/>
    7. <web-app name="heimdall" original-location="${tongweb.upload}/heimdall" location="${tongweb.sysapp}/heimdall" context-root="/heimdall" vs-names="admin" is-directory="true" enabled="true" description="heimdall" deploy-order="1" object-type="sys" jsp-compile="false" dtd-validate="false" is-autodeploy="false" delegate="false"/>
    8. <web-app name="sysweb" original-location="${tongweb.upload}/sysweb" location="${tongweb.sysapp}/sysweb" context-root="/sysweb" vs-names="admin" is-directory="true" enabled="true" description="sysweb" deploy-order="1" object-type="sys" jsp-compile="false" dtd-validate="false" is-autodeploy="false" delegate="false"/>
    9. <web-app name="ntkoSignServer" original-location="F:/SignServer/ntkoSignServer" location="F:/SignServer/ntkoSignServer" context-root="/ntkoSignServer" vs-names="server" is-directory="true" enabled="true" description="" deploy-order="100" object-type="user" jsp-compile="false" dtd-validate="false" is-autodeploy="false" version="" retire-state="none" retire-strategy="nature" retire-timeout="0" version-serial-number="1" delegate="false"/>
    10. <connector-app name="genericra" original-location="${tongweb.upload}/genericra" location="${tongweb.sysapp}/genericra" is-directory="true" enabled="true" thread-pool="default-thread-pool" deploy-order="1" object-type="sys" dtd-validate="false" is-autodeploy="false" version="">
    11. <property name="LogLevel" value="INFO"/>
    12. <property name="JndiProperties" value="java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory,java.naming.provider.url=file:${tongweb.root}/apache-activemq/conf"/>
    13. <property name="RMPolicy" value="OnePerPhysicalConnection"/>
    14. <property name="SupportsXA" value="false"/>
    15. <property name="ProviderIntegrationMode" value="jndi"/>
    16. </connector-app>
    17. </apps>
    18. <server jsf="false">
    19. <web-container jsp-development="true" parameter-encoding="UTF-8" response-encoding="UTF-8" jvm-route="" session-timeout="30" hung-thread-threshold="0" hostnameVerifier="NullHostnameVerifier">
    20. <access-log pattern="%{yyyyMMddHHmmssSSS}t %U %m %a %D" suffix=".txt" log-extend="false" file-date-format="yy.MM.dd.HH"/>
    21. <virtual-host name="admin" listeners="system-http-listener" accesslog-enabled="false" accesslog-dir="logs/access" sso-enabled="false" remote-filter-enabled="false">
    22. <sso/>
    23. <remote-filter/>
    24. </virtual-host>
    25. <virtual-host name="server" listeners="tong-http-listener" accesslog-enabled="false" accesslog-dir="logs/access" sso-enabled="false" remote-filter-enabled="false">
    26. <sso/>
    27. <remote-filter/>
    28. </virtual-host>
    29. <http-listener name="system-http-listener" port="9060" io-mode="nio2" redirect-port="8443" uri-encoding="GBK" parse-body-methods="POST,DELETE,PUT" default-virtual-host="admin" create-time="2019-10-29 10:54:11">
    30. <ssl/>
    31. <protocol max-threads="200" min-spare-threads="10"/>
    32. <http-options/>
    33. <advance/>
    34. </http-listener>
    35. <http-listener name="tong-http-listener" port="8088" status="started" address="0.0.0.0" io-mode="nio2" http2-enabled="false" ssl-enabled="false" redirect-port="8443" uri-encoding="UTF-8" use-body-encoding-for-uri="false" max-parameter-count="10000" max-post-size="2097152" parse-body-methods="POST" default-virtual-host="server" create-time="2019-10-29 10:54:11">
    36. <ssl/>
    37. <protocol not-allow-HTTP-methods="TRACE,OPTIONS,HEAD,CONNECT,DELETE" async-timeout="10000" enable-lookups="false" max-header-count="100" use-ipv-hosts="false" xpowered-by="false" backlog="100" accept-thread-count="1" connection-timeout="60000" keep-alive-timeout="60000" max-threads="200" min-spare-threads="10" processor-cache="200" tcp-no-delay="true" max-connections="10000" self-tuned="false">
    38. <property name="threadPriority" value="5"/>
    39. </protocol>
    40. <http-options compression="off" compressable-mime-type="text/html,text/xml,text/plain" compression-min-size="2048" disable-upload-timeout="true" max-http-header-size="8192" max-keep-alive-requests="100"/>
    41. <advance disable-keep-alive-percentage="75" selector-timeout="1000" usecomet="true" use-sendfile="true" oom-parachute="1048576"/>
    42. <property name="server" value="webserver"/>
    43. </http-listener>
    44. <http-listener name="ejb-server-listener" port="5100" uri-encoding="GBK" parse-body-methods="POST" default-virtual-host="server" create-time="2019-10-29 10:54:12">
    45. <ssl/>
    46. <protocol max-threads="200" min-spare-threads="10"/>
    47. <http-options/>
    48. <advance/>
    49. </http-listener>
    50. <property name="complete.message.timeout.seconds" value="0"/>
    51. <property name="max.attack.times" value="3"/>
    52. <property name="blacklist.expired.hours" value="12"/>
    53. <property name="interrupt.current.connect" value="true"/>
    54. <property name="unloadDelay" value="2"/>
    55. <property name="addWebinfClassesResources" value="false"/>
    56. <property name="sessionLog" value="false"/>
    57. <property name="hostHeaderGuard" value="false"/>
    58. <property name="hostHeaderGuardWhiteList" value=""/>
    59. </web-container>
    60. <ejb-container>
    61. <stateful/>
    62. <singleton/>
    63. <stateless/>
    64. <mdb/>
    65. </ejb-container>
    66. <security-service>
    67. <auth-realm name="defaultRealm" type="File">
    68. <property name="UsersFile" value="twusers.properties"/>
    69. <property name="GroupsFile" value="twgroups.properties"/>
    70. </auth-realm>
    71. </security-service>
    72. <transaction-service transaction-timeout-in-seconds="3600"/>
    73. <monitor-service monitoring-enabled="false" flush-interval="60" flush-time-threshold="1800" persist-enabled="false" rotation-limit-val="10" rotation-limit-unit="MB">
    74. <monitor-config name="Memory" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    75. <monitor-config name="JVMMemoryPool" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    76. <monitor-config name="GarbageCollector" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    77. <monitor-config name="JVMThread" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    78. <monitor-config name="Compilation" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    79. <monitor-config name="ClassLoading" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    80. <monitor-config name="Runtime" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    81. <monitor-config name="OperatingSystem" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    82. <monitor-config name="TWServer" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    83. <monitor-config name="ConnectorAndThreadPool" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    84. <monitor-config name="DataSource" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    85. <monitor-config name="DataSourceLite" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    86. <monitor-config name="TransactionManager" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    87. <monitor-config name="JCA" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    88. <monitor-config name="WebModule" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    89. <monitor-config name="SessionManager" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    90. <monitor-config name="Loader" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    91. <monitor-config name="ResourceCache" monitoring-enabled="false" produce-interval="10" persistent-enabled="false"/>
    92. </monitor-service>
    93. <jmx-service port="7200" address="127.0.0.1" protocol="rmi"/>
    94. <jms-service/>
    95. <log-service file="${tongweb.root}/logs/server.log" rotation-limit="50 MB" rotation-timelimit="0" rotation-file-count="20" rotation-by-day="false" log-format="[%d{yyyy-MM-dd HH:mm:ss SSS}] [%p] [%t] [%c] [%m]%n" rotation="true" verbose="false" asynclog-on="false" thread-num="1" capacity="2147483647">
    96. <module-log-levels ejb-container="INFO" web-container="INFO" cdi="INFO" jpa="INFO" jsf-impl="INFO" jsf-api="INFO" jta="INFO" jca="INFO" data-source="INFO" jms-resource="INFO" beanvalidation="INFO" naming="INFO" admin="INFO" configuration="INFO" deployment="INFO" monitor-service="INFO" core="INFO" security="INFO" rmi-service="INFO" systemout="INFO" other="INFO" javamail="INFO"/>
    97. </log-service>
    98. <log-save-path sql-log-path="logs" audit-log-path="logs/audit-log" persistence-log-path="persistence"/>
    99. <compress-log-service compress-enabled="false,false,false" log-dir="${tongweb.root}/logs,${tongweb.root}/logs/access,${tongweb.root}/persistence" compress-obj="1,2,3" rotation-time="1,1,1" execution-time="1,1,1"/>
    100. <snmp-service enabled="false" port="161" address="0.0.0.0" version="3" transportType="udp" engineID="62:a0:c1:81:11:c3:17:33" securityName="public" authKey="nmsAuthKey" privKey="myDesPriviateKey"/>
    101. <jca-thread-pool name="default-thread-pool" min-threads="10" max-threads="200" queue="100" keep-alive-time="3600"/>
    102. </server>
    103. <snapshot>
    104. <auto-snapshot interval-second="5" relation="or">
    105. <contents jstack="true" jmap="true" config="true" monitor="true" system-log="true" access-log="true" gc-log="true"/>
    106. </auto-snapshot>
    107. <size-clear disk-remain-percent="20%" clear-percent="60%"/>
    108. <time-clear timeout-day="30"/>
    109. </snapshot>
    110. </tongweb>

    可以看到涉及端口的信息如下:

    system-http-listener 即系统控制台端口信息:

    1. <http-listener name="system-http-listener" port="9060" io-mode="nio2" redirect-port="8443" uri-encoding="GBK" parse-body-methods="POST,DELETE,PUT" default-virtual-host="admin" create-time="2019-10-29 10:54:11">
    2. <ssl/>
    3. <protocol max-threads="200" min-spare-threads="10"/>
    4. <http-options/>
    5. <advance/>
    6. </http-listener>

    tong-http-listener 即http 通道端口 也就是应用程序访问端口信息: 

    1. <http-listener name="tong-http-listener" port="8088" status="started" address="0.0.0.0" io-mode="nio2" http2-enabled="false" ssl-enabled="false" redirect-port="8443" uri-encoding="UTF-8" use-body-encoding-for-uri="false" max-parameter-count="10000" max-post-size="2097152" parse-body-methods="POST" default-virtual-host="server" create-time="2019-10-29 10:54:11">
    2. <ssl/>
    3. <protocol not-allow-HTTP-methods="TRACE,OPTIONS,HEAD,CONNECT,DELETE" async-timeout="10000" enable-lookups="false" max-header-count="100" use-ipv-hosts="false" xpowered-by="false" backlog="100" accept-thread-count="1" connection-timeout="60000" keep-alive-timeout="60000" max-threads="200" min-spare-threads="10" processor-cache="200" tcp-no-delay="true" max-connections="10000" self-tuned="false">
    4. <property name="threadPriority" value="5"/>
    5. </protocol>
    6. <http-options compression="off" compressable-mime-type="text/html,text/xml,text/plain" compression-min-size="2048" disable-upload-timeout="true" max-http-header-size="8192" max-keep-alive-requests="100"/>
    7. <advance disable-keep-alive-percentage="75" selector-timeout="1000" usecomet="true" use-sendfile="true" oom-parachute="1048576"/>
    8. <property name="server" value="webserver"/>
    9. </http-listener>

    ejb-server-listener 即ejb服务端口信息:

    1. <http-listener name="ejb-server-listener" port="5100" uri-encoding="GBK" parse-body-methods="POST" default-virtual-host="server" create-time="2019-10-29 10:54:12">
    2. <ssl/>
    3. <protocol max-threads="200" min-spare-threads="10"/>
    4. <http-options/>
    5. <advance/>
    6. </http-listener>

    jmx-server port及jmx服务端口:

    1. <jmx-service port="7200" address="127.0.0.1" protocol="rmi"/>
    2. <jms-service/>

    8005的端口信息比较难找 ,内容为:

     <server jsf="false">

    没有配置 就是默认的8005。 将此项内容改为:

    <server  shutdown-port="8006" jsf="false">
    

    将对应的端口设置成可用的就可以了。

    再重启tongweb服务,查看效果:

     

  • 相关阅读:
    Python教程---Python基础语法(数据类型以及详解)
    并发与并行,同步和异步,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang并发编程之GoroutineEP13
    Feign实现文件上传下载
    使用vue3 搭建一个H5手机端访问的项目
    智能家居新选择,雷达感应器成品方案,人体存在感应控制照明联动
    tracepoint: 定义函数及调用示例
    英码科技推出鸿蒙边缘计算盒子:提升国产化水平,增强AI应用效能,保障数据安全
    Linux中的主要系统调用
    【序列化二叉树】
    Android 9 画中画实现流程
  • 原文地址:https://blog.csdn.net/yeyuningzi/article/details/125440392