Ⅰ 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>