严重: Error starting endpoint
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:649)
at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:756)
at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:137)
at org.apache.catalina.connector.Connector.start(Connector.java:1095)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2012-4-17 18:30:17 org.apache.catalina.core.StandardService start
严重: Failed to start connector [Connector[HTTP/1.1-8080]]
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.catalina.connector.Connector.start(Connector.java:1102)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
出现以上的问题不要紧张,这个问题主要的原因是:tomcat的8080端口被占用了。解决的步骤方法如下:
第一种方法:查看端口。
1.开始-运行-输入cmd-netstat -ano-回车-查到8080端口的PID (linux下netstat -anp | grep :8080)
2.通过Ctrl+Alt+Delete快捷键打开Windows任务管理器-查看-选择列-勾选PID(进程标识符)(P)-找到8080端口的PID-结束进程
或开始-运行-输入cmd-netstat -ano|find "8080 "-tasklist|find "PID "-askkill /pid PID
由于我出现上述的问题是由于刚刚安装了oracle,Oracle中的 tnslsnr.exe进程占用了8080端口(oracle\ora92\bin\TNSLSNR.EXE)。故将tnslsnr.exe的进程结束,重新运行tomcat中的项目,发现不能连接数据库。对此我看了网上的一些资料,才知道:tnslsnr.exe 关掉后就不能通过网络方式连接数据库了(本机通过JDBC连也不行),但在服务器端还可以使用。如果你还想使用8080端口号又要能连接oracle数据库,那只有改tnslsnr.exe的端口8080为其他的端口号。在网上找到资料如下:具体的可否使用还没有测试,请原谅,希望后面的人测试了可以留言告诉一下后面的学习者,非常感谢。
以下修改tnslsnr.exe占用8080端口的内容来自:pendy2008的博文
[plain] view plaincopy
oracle 10服务一启动 TNSLSNR.exe 会占用8080端口,这时,需要改一下端口:
用oracle提供的包:
-- 把HTTP/WEBDAV端口从8080改到8081
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
/
-- 把FTP端口从2100改到2111
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))
/
SQL> commit;
SQL> exec dbms_xdb.cfg_refresh;
-- 检查修改是否已经成功
SQL> select dbms_xdb.cfg_get from dual;
[html] view plaincopy
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
将port=“8080”改为其他端口。注意:不要使用服务器端使用的熟知端口号,数值为0~1023,而数值为1024-49151的登记端口号是可以使用的,还有一类是客户端使用的端口号---短暂端口号,数值为49152~65535,这类端口号是仅在客户进程运行时才动态选择的,是留给客户进程选择暂时使用。简而言之,一般将端口该为8080左右的人一个端口号就可以了。但这种方法效果没有第一种好,因为修改后的端口也存在被暂用的可能。
第三种方法:结束javaw.exe和java.exe进程
出现这种情况也有可能是由于Myeclipse 不正常退出导致的,不过终于找到了一个可行的办法。打开任务管理器,找到名为JAVAW.EXE 和JAVA.EXE的进程(大小写可能有不同),结束掉占内存小的那个(占内存大的那个为当前正在使用的myeclipse),重启tomcat,问题解决。
第四种方法:取消tomcat的自动启动
假如你设置了tomcat开机时自启动,在项目里在启动tomcat时就报了端口被占用的错误。解决的办法是把tomcat开机时启动禁掉,重启计算机,在项目里启动tomcat,基本上可以了
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:649)
at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:756)
at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:137)
at org.apache.catalina.connector.Connector.start(Connector.java:1095)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2012-4-17 18:30:17 org.apache.catalina.core.StandardService start
严重: Failed to start connector [Connector[HTTP/1.1-8080]]
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.catalina.connector.Connector.start(Connector.java:1102)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
出现以上的问题不要紧张,这个问题主要的原因是:tomcat的8080端口被占用了。解决的步骤方法如下:
第一种方法:查看端口。
1.开始-运行-输入cmd-netstat -ano-回车-查到8080端口的PID (linux下netstat -anp | grep :8080)
2.通过Ctrl+Alt+Delete快捷键打开Windows任务管理器-查看-选择列-勾选PID(进程标识符)(P)-找到8080端口的PID-结束进程
或开始-运行-输入cmd-netstat -ano|find "8080 "-tasklist|find "PID "-askkill /pid PID
由于我出现上述的问题是由于刚刚安装了oracle,Oracle中的 tnslsnr.exe进程占用了8080端口(oracle\ora92\bin\TNSLSNR.EXE)。故将tnslsnr.exe的进程结束,重新运行tomcat中的项目,发现不能连接数据库。对此我看了网上的一些资料,才知道:tnslsnr.exe 关掉后就不能通过网络方式连接数据库了(本机通过JDBC连也不行),但在服务器端还可以使用。如果你还想使用8080端口号又要能连接oracle数据库,那只有改tnslsnr.exe的端口8080为其他的端口号。在网上找到资料如下:具体的可否使用还没有测试,请原谅,希望后面的人测试了可以留言告诉一下后面的学习者,非常感谢。
以下修改tnslsnr.exe占用8080端口的内容来自:pendy2008的博文
[plain] view plaincopy
oracle 10服务一启动 TNSLSNR.exe 会占用8080端口,这时,需要改一下端口:
用oracle提供的包:
-- 把HTTP/WEBDAV端口从8080改到8081
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
/
-- 把FTP端口从2100改到2111
SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))
/
SQL> commit;
SQL> exec dbms_xdb.cfg_refresh;
-- 检查修改是否已经成功
SQL> select dbms_xdb.cfg_get from dual;
第二种方法:改tomcat中的端口。
修改Tomcat 6.0\conf\server.xml,找到该文件中的以下标签内容。[html] view plaincopy
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
将port=“8080”改为其他端口。注意:不要使用服务器端使用的熟知端口号,数值为0~1023,而数值为1024-49151的登记端口号是可以使用的,还有一类是客户端使用的端口号---短暂端口号,数值为49152~65535,这类端口号是仅在客户进程运行时才动态选择的,是留给客户进程选择暂时使用。简而言之,一般将端口该为8080左右的人一个端口号就可以了。但这种方法效果没有第一种好,因为修改后的端口也存在被暂用的可能。
第三种方法:结束javaw.exe和java.exe进程
出现这种情况也有可能是由于Myeclipse 不正常退出导致的,不过终于找到了一个可行的办法。打开任务管理器,找到名为JAVAW.EXE 和JAVA.EXE的进程(大小写可能有不同),结束掉占内存小的那个(占内存大的那个为当前正在使用的myeclipse),重启tomcat,问题解决。
第四种方法:取消tomcat的自动启动
假如你设置了tomcat开机时自启动,在项目里在启动tomcat时就报了端口被占用的错误。解决的办法是把tomcat开机时启动禁掉,重启计算机,在项目里启动tomcat,基本上可以了