Ⅰ struts2 web.xml配置
最容易错的就是。你的struts.xml中的
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
这个部分一定要与你的struts2的版本对应的一样。建议你下载官方的包,官网
http://struts.apache.org/download.cgi#struts2181
下载truts-2.1.8.1-all.zip (110mb) [PGP] [MD5]
解压找到wapps文件。然后找到struts2-blank-2.1.8这个文件,它是一个关于struts2的空白文件,都给我们配置好了我们需要的包和一切环境。
你试一试。这个可能对你很有帮助。
看看struts.xml 如何写的
Ⅱ 如何使用Struts2框架发布webService
使用Struts2框架创建一个web工程,引入webservice所需的jar包,我用的是cxf的jar包,
关于Struts2和webService的整合核心是对于StrutsPrepareAndExecuteFilter这个类的修改,使访问webservice的地址能够继续访问servlet.
web.xml的修改。
<filter>
<filter-name>struts2</filter-name>
<filter-class>com.synjones.filter.ExtendStrutsFilter</filter-class>
</filter
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>CXF</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class
</servlet>
<servlet-mapping
<servlet-name>CXF</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
自定义过滤器StrutsPrepareAndExecuteFilter
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public
class ExtendStrutsFilter extends StrutsPrepareAndExecuteFilter{
public void doFilter(ServletRequest req, ServletResponse res,FilterChain
chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req; //不过滤的url,可以自行添加
if (request.getRequestURI().contains("/ws")) {
//System.out.println("使用自定义的过滤器");
chain.doFilter(req, res);
}else{
//System.out.println("使用默认的过滤器");
super.doFilter(request, res, chain);
}
}
}
其它的设置按照正常的webservice配置
Ⅲ 搭建struts2环境,在web.xml中加入过滤器的代码后访问任何页面都是404错误。请大家帮帮忙。
楼主,我记得struts2的核心过滤器是这样配的。
<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>