最近看书,学习框架Struts,按照书上写了一个例子《Hello World》。
用Tomcat部署,不停的提示错误。
2014-6-13 16:52:05 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.24 using APR version 1.4.6.
2014-6-13 16:52:05 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2014-6-13 16:52:05 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1c 10 May 2012)
2014-6-13 16:52:06 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
2014-6-13 16:52:06 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
2014-6-13 16:52:06 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1473 ms
2014-6-13 16:52:06 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2014-6-13 16:52:06 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.35
2014-6-13 16:52:06 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\ch03_1
2014-6-13 16:52:07 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\docs
2014-6-13 16:52:08 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\examples
2014-6-13 16:52:08 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\host-manager
2014-6-13 16:52:08 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\manager
2014-6-13 16:52:08 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\ROOT
2014-6-13 16:52:08 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
2014-6-13 16:52:08 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
2014-6-13 16:52:08 org.apache.catalina.startup.Catalina start
信息: Server startup in 2345 ms
2014-6-13 16:57:43 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.24 using APR version 1.4.6.
2014-6-13 16:57:43 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2014-6-13 16:57:44 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1c 10 May 2012)
2014-6-13 16:57:44 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
2014-6-13 16:57:44 org.apache.coyote.AbstractProtocol init
严重: Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:433)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
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:814)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:633)
at org.apache.catalina.startup.Catalina.load(Catalina.java:658)
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.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
2014-6-13 16:57:44 org.apache.catalina.core.StandardService initInternal
严重: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
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:814)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:633)
at org.apache.catalina.startup.Catalina.load(Catalina.java:658)
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.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:433)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
... 13 more
2014-6-13 16:57:44 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
2014-6-13 16:57:44 org.apache.coyote.AbstractProtocol init
严重: Failed to initialize end point associated with ProtocolHandler ["ajp-apr-8009"]
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:433)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
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:814)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:633)
at org.apache.catalina.startup.Catalina.load(Catalina.java:658)
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.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
2014-6-13 16:57:44 org.apache.catalina.core.StandardService initInternal
严重: Failed to initialize connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]]
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:814)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:633)
at org.apache.catalina.startup.Catalina.load(Catalina.java:658)
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.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:433)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)
... 13 more
2014-6-13 16:57:44 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1615 ms
2014-6-13 16:57:44 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2014-6-13 16:57:44 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.35
2014-6-13 16:57:44 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\ch03_1
2014-6-13 16:57:46 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\docs
2014-6-13 16:57:46 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\examples
2014-6-13 16:57:46 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\host-manager
2014-6-13 16:57:46 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\manager
2014-6-13 16:57:47 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\ROOT
2014-6-13 16:57:47 org.apache.catalina.startup.Catalina start
信息: Server startup in 2406 ms
2014-6-13 16:57:47 org.apache.catalina.core.StandardServer await
严重: StandardServer.await: create[localhost:8005]:
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
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:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
2014-6-13 16:57:47 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-apr-8080"]
2014-6-13 16:57:47 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-apr-8009"]
2014-6-13 16:57:47 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
2014-6-13 16:57:47 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-apr-8080"]
2014-6-13 16:57:47 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-apr-8080"]
2014-6-13 16:57:47 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["ajp-apr-8009"]
2014-6-13 16:57:47 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:00:17 org.apache.catalina.core.StandardServer await
信息: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
2014-6-13 17:00:17 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-apr-8080"]
2014-6-13 17:00:17 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:00:17 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
2014-6-13 17:00:17 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-apr-8080"]
2014-6-13 17:00:17 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:00:17 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-apr-8080"]
2014-6-13 17:00:17 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:03:13 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.24 using APR version 1.4.6.
2014-6-13 17:03:13 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2014-6-13 17:03:13 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1c 10 May 2012)
2014-6-13 17:03:14 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
2014-6-13 17:03:14 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:03:14 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1519 ms
2014-6-13 17:03:14 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2014-6-13 17:03:14 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.35
2014-6-13 17:03:14 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\ch03_1
2014-6-13 17:03:15 org.apache.catalina.util.SessionIdGenerator createSecureRandom
信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [124] milliseconds.
2014-6-13 17:03:15 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\docs
2014-6-13 17:03:15 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\examples
2014-6-13 17:03:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\host-manager
2014-6-13 17:03:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\manager
2014-6-13 17:03:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory E:\kftools\tomcat7\webapps\ROOT
2014-6-13 17:03:16 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
2014-6-13 17:03:16 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:03:16 org.apache.catalina.startup.Catalina start
信息: Server startup in 2468 ms
2014-6-13 17:04:25 org.apache.catalina.core.StandardServer await
信息: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
2014-6-13 17:04:25 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-apr-8080"]
2014-6-13 17:04:25 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:04:25 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
2014-6-13 17:04:25 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-apr-8080"]
2014-6-13 17:04:25 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["ajp-apr-8009"]
2014-6-13 17:04:25 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-apr-8080"]
2014-6-13 17:04:25 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-apr-8009"]
输入地址:http://localhost:8080/test002/login.jsp
一直部署不成功,提示无法找到指定login.jsp文件。
翻找资料查了半天,发现书本上写的需要部署5个Struts2的库文件(struts2-core-xxx.jar、xwork-xxx.jar、ognl-xxx.jar、freemaker-xxx.jar、commons-logging-xxx.jar),可能因为版本问题,部署的文件不对,于是网上找答案,最终发现,应该最少部署9个库文件,分别是:
commons-fileupload-xxx.jar文件上传组件
commons-io-xxx.jar IO包
commons-lang3-xxx.jar基础工具包,封装一些常用的基础操作
commons-loggin-xxx.jar日志组件
freemarker-xxx.jar 一个基于模板生成文本输出的通用工具
ognl-xxx.jar对象图导航语言(jar库包)
strut2-core-2.3.12.jar strut2核心包
xwork-core-2.3.12.jar xwork2核心包
javassist-3.15.0-GA.jar 扩展Java类和实现
将这9个文件放到项目lib中,部署成功,但是提示web.xml中有漏洞:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
需要换成新的
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
按照提示修改,部署成功,也未出现其他提示。