Java 如何让Tomcat 7在Windows Server 2008的端口80上运行?
我花了两天时间试着让它工作 当我第一次启动Java 如何让Tomcat 7在Windows Server 2008的端口80上运行?,java,apache,tomcat,tomcat7,windows-server-2008,Java,Apache,Tomcat,Tomcat7,Windows Server 2008,我花了两天时间试着让它工作 当我第一次启动tomcat7时,它在端口8080上运行,这是Tomcat的默认值。这样就可以访问它,只需键入:http://localhost:8080/或mydomain.com:8080 但是我想从端口8080移动到端口80,这样我就可以键入mydomain.com并直接进入网页 我已经禁用了所有可能在端口80上运行的额外服务,如IIS、MSSQL、万维网发布等 在server.xml文件中,我做了以下更改: 然后,当我启动服务器时,我会在日志中看到这一点(尽管
tomcat7
时,它在端口8080
上运行,这是Tomcat的默认值。这样就可以访问它,只需键入:http://localhost:8080/
或mydomain.com:8080
但是我想从端口8080
移动到端口80
,这样我就可以键入mydomain.com
并直接进入网页
我已经禁用了所有可能在端口80
上运行的额外服务,如IIS、MSSQL、万维网发布等
在server.xml
文件中,我做了以下更改:
然后,当我启动服务器时,我会在日志中看到这一点(尽管服务器已启动):
当我访问urlmydomain.com
我在这方面是个令人难以置信的新手——我在网上浏览了很多帖子,并按照说明进行了操作,但似乎没有任何效果。我之前也做过同样的步骤,效果很好
我现在该怎么办?请帮忙
这是我在netstat
其他一些应用程序正在使用端口80。使用netstart进行本地端口扫描并打印可执行路径(此视频将有助于: ) 通常是它的skype(或其他聊天或点对点文件共享应用程序)。关闭skype(退出而不仅仅是注销,进程应该退出),然后启动tomcat。然后可以重新启动skype,它将在其他一些端口上正常工作 是否存在阻止Java绑定到此端口的防火墙条目?如果您使用的是控制面板中的默认windows防火墙,则可以从防火墙规则中进行检查。这些结果或常规搜索引擎中的相同术语将告诉您允许Java的步骤。通常windows会在您第一次运行应用程序时询问。所以如果你说不,它就会记得。还需要具有管理员角色(登录/或提示用户)才能进行这些更改。对于某些问题,也可以打开管理控制台。右键单击cmd.exe并选择以管理员身份运行,对安全提示说“是” 此程序可能会有所帮助,将其保存到名为“PortCheck.java”的文件中 编译它 javac:\\您的\路径\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);
}
}
然后运行它:
java-cp c:\\您的\路径端口检查
如果成功绑定到80,将告诉您:
监听端口80
再见
也可以尝试使用端口443进行类似操作双击Tomcat服务器,然后将服务器位置切换到用户Tomcat安装我不使用Eclipse。在Eclipse中的控制台旁边,您将发现服务器,只需双击Tomcate V7。。。。。然后你会看到这个窗口,但我没有使用Eclipse。你在用什么?我没有在本地机器上运行它。我正在尝试在MicrosoftServer2008上运行它。所以没有Skype。你提到的我都做了。端口80上没有运行额外的服务。只有TCP正在侦听。哪个TCP和哪个端口?你查过防火墙规则了吗?端口80空闲吗?我检查了端口80-它只是说TCP处于侦听状态。它的外部地址是我的域名-我假设这意味着端口80是免费的?我也检查了防火墙规则,并遵循了这些视频中显示的所有内容。我仍然无法找出错误所在好吧,我不知道它是如何工作的,但这就是我所做的:1)在命令提示符下的
netstat-ptcp-ao
,2)taskkill/F/PID 4220
(占用端口80的进程的PID)3)service.bat卸载
卸载Tomcat7 4)service.bat安装
重新安装Tomcat7,不知怎的,这起作用了!至少重复4次之后!非常感谢,@tgkprog!
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);
}
}