技术文章

当前位置:首页>帮助手册>技术文章

系统配置-服务器端口冲突和端口修改

时间:2022-09-02   


在安装O2OA的服务器上很可能已经启用了IIS、apache或者nginx等服务器,已经有其他的应用或者web站点正在运行中,所以O2OA启动所需要的80端口已经被占用,导致端口冲突无法正常运行。本篇介绍如果解决遇到的服务器端口冲突问题。


一、报错信息

启动应用的时候发现启动到最后报了一个错,如下图所示:

image.png

image.png

报错信息内容

[main] INFO org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@3c20ba2b{HTTP/1.1,[http/1.1]}{0.0.0.0:20020}
[main] INFO org.eclipse.jetty.server.Server - Started @76111ms
2018-09-26 19:56:13 PRINT [main] com.x.server.console.server.application.ApplicationServerTools - application server start completed on port:20020.
[main] INFO org.eclipse.jetty.server.Server - jetty-9.4.z-SNAPSHOT; built: 2018-05-03T15:56:21.710Z; git: daa59876e6f384329b122929e70a80934569428c; jvm 1.8.0_171-b11
[main] INFO org.eclipse.jetty.server.session - DefaultSessionIdManager workerName=node0
[main] INFO org.eclipse.jetty.server.session - No SessionScavenger set, using defaults
[main] INFO org.eclipse.jetty.server.session - node0 Scavenging every 660000ms
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@6a0a48db{/,file:///D:/o2server/servers/webServer/,AVAILABLE}
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:340)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:308)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:244)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.server.Server.doStart(Server.java:398)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at com.x.server.console.server.web.WebServerTools.start(WebServerTools.java:73)
at com.x.server.console.server.Servers.startWebServer(Servers.java:73)
at com.x.server.console.Main.startWebServer(Main.java:555)
at com.x.server.console.Main.startAll(Main.java:600)
at com.x.server.console.Main.main(Main.java:201

看上去是端口被占用了,应该是web端口80被占用了。

 

二、查询端口占用情况

虽然网上有众多的相关说明,这里还是简要的把过程说明一下,大家有可能用得着,举一反三,其他的端口占用也可以使用类似的方法处理,思路如下:

1、查询端口监听程序所在的进程号(PID)

2、在Windows任务管理器里,查看该进程号所对应的应用程序名称即可。

操作过程:

1)查询端口监听程序所在的进程号(PID)使用命令:netstat -aon|findstr "80" (Linux应该也有相应的查询方法,可以自行查找相应的说明)

1.jpeg

netstat -aon|findstr "80

2)在Windows任务栏上使用右键(或者快捷键CTRL+SHIFT+ESC)打开任务管理器,在详细栏里,根据PID将所有的应用程序排序,之后找到2744对应的应用程序,如下图所示:

2.jpeg

关闭相应的应用程序,或者直接右键结束任务即可。您也可以根据实际情况对相应的应用程序做出处理,如果实在没有处理方式,那么还可以修改O2OA的Web服务器的端口来解决该问题。

 

三、修改O2OA服务器端口

O2OA服务器端口配置文件所在位置:o2server/config/node_127.0.0.1.json

【如果目录里没有该文件或者没有config目录,可以从configSample目录里COPY一个到新建的config目录下】

如下图所示:

3.jpeg

打开o2server/config/node_127.0.0.1.json,配置文件内容如下: 

{
  "enable": true,
  "center": {
    "enable": true,
    "order": 0.0,
    "sslEnable": false,
    "port": 8080.0,                             --端口改成 8080
    "httpProtocol": "",
    "proxyHost": "",
    "proxyPort": 8080.0                     --端口改成 8080
  },
  "application": {
    "enable": true,
    "port": 8080.0,                             --端口改成 8080
    "sslEnable": false,
    "proxyHost": "",
    "proxyPort": 8080.0,                    --端口改成 8080
    "includes": [],
    "excludes": []
  },
  "web": {
    "enable": true,
    "port": 8080.0,                             --端口改成 8080
    "sslEnable": false,
    "proxyHost": "",
    "proxyCenterEnable": true,
    "proxyApplicationEnable": true
  },
  "data": {
    "enable": true,
    "tcpPort": 20050.0,
    "includes": [],
    "excludes": [],
    "jmxEnable": false,
    "cacheSize": 512.0,
    "logLevel": "WARN",
    "maxTotal": 50.0,
    "maxIdle": 0.0,
    "statEnable": false,
    "statFilter": "mergeStat",
    "slowSqlMillis": 2000.0,
    "lockTimeout": 120000.0
  },
  "storage": {
    "enable": true,
    "port": 20040.0,
    "sslEnable": false,
    "name": "251",
    "prefix": "",
    "deepPath": false
  },
  "dumpData": {
    "enable": false,
    "cron": "",
    "size": 7.0,
    "path": ""
  },
  "restoreData": {
    "enable": false,
    "cron": "",
    "path": ""
  },
  "nodeAgentEnable": true,
  "nodeAgentPort": 20010.0,
  "nodeAgentEncrypt": true,
  "autoStart": true,
  "selfHealthCheckEnable": false
  "stackTrace": {
    "enable": false,
    "interval": 20.0
  }
}

修改完成后,重启,问题解决。希望本文对您有帮助!


上一篇:o2server中间件环境集成的方案

下一篇:O2OA消息配置使用说明