我花了两天的时间使它正常工作。
当我第一次启动时Tomcat 7
,它8080
在Tomcat的默认端口上运行。因此可以访问它,但输入:http://localhost:8080/
或mydomain.com:8080
。
但是我希望从一个端口8080
移到另一个端口,80
以便我可以键入mydomain.com
并定向到该网页。
我已经禁用了所有可能在80
IIS,MSSQL,World Wide Web Publishing等端口上运行的额外服务。
在server.xml
文件中,我进行了以下更改:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
然后,当我启动服务器时,我会在日志中得到它(尽管服务器已启动):
...
Dec 27, 2014 9:34:44 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-80"]
java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket address (protocol/network address/port) is normally permitted.
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:453)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
Dec 27, 2014 9:34:44 PM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-80]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket address (protocol/network address/port) is normally permitted.
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:453)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
... 13 more
Dec 27, 2014 9:34:44 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Dec 27, 2014 9:34:44 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 3310 ms
Dec 27, 2014 9:34:44 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Dec 27, 2014 9:34:44 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.57
Dec 27, 2014 9:34:44 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Apache\tomcat\webapps\docs
Dec 27, 2014 9:34:46 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\Apache\tomcat\webapps\docs has finished in 1,985 ms
Dec 27, 2014 9:34:46 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Apache\tomcat\webapps\examples
Dec 27, 2014 9:34:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\Apache\tomcat\webapps\examples has finished in 1,234 ms
Dec 27, 2014 9:34:47 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Apache\tomcat\webapps\host-manager
Dec 27, 2014 9:34:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\Apache\tomcat\webapps\host-manager has finished in 453 ms
Dec 27, 2014 9:34:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Apache\tomcat\webapps\manager
Dec 27, 2014 9:34:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\Apache\tomcat\webapps\manager has finished in 313 ms
Dec 27, 2014 9:34:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\Apache\tomcat\webapps\ROOT
Dec 27, 2014 9:34:48 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory C:\Apache\tomcat\webapps\ROOT has finished in 156 ms
Dec 27, 2014 9:34:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Dec 27, 2014 9:34:48 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4282 ms
当我访问URL时,什么都看不到 mydomain.com
我在这方面是个新奇的人-在网上发布了很多帖子,并按照说明进行操作,但似乎没有任何效果。我之前已经做过相同的步骤,它就像一个魅力。
我现在该怎么办?请帮忙。
这就是我得到的 netstat
其他一些应用正在使用端口80。使用netstart进行本地端口扫描并打印可执行路径(此视频将帮助您:https : //www.youtube.com/watch? feature=player_detailpage &v= V3nWkr7v4-E#t =7)
通常是Skype(或其他聊天或点对点文件共享应用)。关闭Skype(退出不仅退出,过程应退出),然后启动tomcat。然后可以重新启动Skype,它将在其他一些端口上正常工作。
还有没有任何防火墙条目阻止Java绑定到此端口?可以从防火墙规则中进行检查-如果您使用的是默认Windows防火墙,则该防火墙将在“控制面板”中显示。https://www.youtube.com/results?search_query=widows+firewall+java+allow这些结果或常规搜索引擎中的相同术语将告诉您允许Java的步骤。通常,Windows会询问您首次运行应用程序的时间。因此,如果您说不,那么它会记住这一点。还需要具有管理员角色(登录/或在提示用户上)才能进行这些更改。对于某些问题,也有助于打开管理控制台。右键单击cmd.exe,然后选择以管理员身份运行,对安全提示说是。
该程序可能会有所帮助,将其保存到名为“ PortCheck.java”的文件中
class PortCheck{
public static void main(String []args) throws Exception{
String port = "80";
if(args.length > 0)port = args[0];
final int p = Integer.parseInt(port);
Thread t = new Thread(){
public void run(){
try{
java.net.ServerSocket s = new java.net.ServerSocket(p);
System.out.println("\nListening on port " + p);
s.accept();
}catch(Exception e){
System.out.println("Err " + e);
}
}
};
t.start();
Thread.sleep(2000);
System.out.println("Bye ");
System.exit(0);
}
}
编译它
javac c:\ _ your_path \ PortCheck.java
并运行它:
java -cp c:\ _ your_path PortCheck
如果成功绑定到80,则会告诉您:
在端口80上收听
可以太相似地尝试使用端口443
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句