Struts2基本环境搭建过程中容易出现的丢包问题

就拿一个最简单的struts2的hello world为例来说明吧。


        struts2是继承自ActionSupport类,所以说一个最简单的hello world是不能缺少该类的包的,也就是说不能缺少xwork-core-2.3.16.jar,由于我们要搭建的框架是struts2,所以说也不能缺少struts2-core-2.3.16.jar,否则这就不是struts2框架了。


综上所述,一个struts2框架必不可少的包文件有:

struts2-core-2.3.16.jar
xwork-core-2.3.16.jar


struts2框架的HelloWorld源码如下:

Struts2Test.java源码:

package com.test;

import com.opensymphony.xwork2.ActionSupport;

public class Struts2Test extends ActionSupport{

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}

}

struts.xml源码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
	<action name="hello" class="com.test.Struts2Test">
		<result name="success">/success.jsp</result>
	</action>
</package> 
</struts>    

web.xml源码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter> 
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
</web-app>

index.jsp源码:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  <body>
    This is my JSP page. <br>
  </body>
</html>

success.jsp源码:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
  <head>
    <base href="<%=basePath%>">
    <title>SUCCESS</title>
  </head>
  <body>
    SUCCESS! <br>
  </body>
</html>

运行程序:


当出现下面的错误时:

严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: ognl/PropertyAccessor

根据提示,这说明此时缺少的包文件是ognl,所以说我们要导入该包:

ognl-3.0.6.jar


重启,继续运行程序


当出现下面的错误时:

严重: Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

根据提示,此时出现的错误是“调度程序初始化失败”,而实现该功能的包是javassist,所以说导入该包:

javassist-3.11.0.GA.jar


继续:


此时的错误提示为:

严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

        根据提示,此时出现的问题是没有找到类,而该类是StringUtils,所以说我们要导入该类所在的包文件,由于提示中说该类在lang3包中,该包的上一级包是commons,所以根据提示,我们很容易找到下面的包,直接导入即可。

commons-lang3-3.1.jar


继续运行:


此时报的错误为:

警告: Could not create JarEntryRevision for [jar:file:/C:/apache-tomcat-6.0.20/webapps/Struts2Test/WEB-INF/lib/struts2-core-2.3.16.jar]!
java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils

根据提示,我们需要导入的包文件为:commons/io,也就是说,我们需要导入的包文件为commons-io,所以说此处导入的包文件为:

commons-io-2.2.jar


继续运行:


根据提示,此时报的错误是:

严重: Dispatcher initialization failed
Unable to load configuration. - bean - jar:file:/C:/apache-tomcat-6.0.20/webapps/Struts2Test/WEB-INF/lib/struts2-core-2.3.16.jar!/struts-default.xml:64:179

        根据提示,此时出现的问题仍然是前面出现的“调度程序初始化失败”,此时我们应该看其第二条信息,第一次出现“调度程序初始化失败”时,第二行报的错误是:“InvocationTargetException”,而现在再出现“调度程序初始化失败”时,第二行的报错信息为:“struts-default.xml:64:179”,所以说此时报的错误并不是上次的同一个错误,此时需要导入的包文件为:

commons-fileupload-1.3.jar


继续运行:


此时报的错误信息为:

严重: Dispatcher initialization failed
Unable to load configuration. - bean - jar:file:/C:/apache-tomcat-6.0.20/webapps/Struts2Test/WEB-INF/lib/struts2-core-2.3.16.jar!/struts-default.xml:69:87


        额。。。貌似刚才的问题没有被解决,但是仔细看第二行提示,此时的提示为:struts-default.xml:69:87,也就是说报的错误信息和刚才的其实是不一样的,也就是说这不是上一个问题,上一个问题已经被解决了,而这是一个新问题,此时导入的包文件为:

freemarker-2.3.19.jar


继续运行程序:


此时提示的信息是:信息: 

Server startup in 7228 ms,


也就是说此时程序运行已经没有问题了。


接下来就是访问该程序的路径了:

http://localhost:8080/Struts2Test/


运行的结果:



当访问路径为:

http://localhost:8080/Struts2Test/hello

此时运行的结果为:








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值