Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何让Tomcat 7在Windows Server 2008的端口80上运行?_Java_Apache_Tomcat_Tomcat7_Windows Server 2008 - Fatal编程技术网

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
文件中,我做了以下更改:

然后,当我启动服务器时,我会在日志中看到这一点(尽管服务器已启动):

当我访问url
mydomain.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);
    }
}