如何使用Struts2框架发布webService

2025-03-17 11:59:34
推荐回答(1个)
回答1:

使用Struts2框架创建一个web工程,引入webservice所需的jar包,我用的是cxf的jar包,
关于Struts2和webService的整合核心是对于StrutsPrepareAndExecuteFilter这个类的修改,使访问webservice的地址能够继续访问servlet.
web.xml的修改。

struts2
com.synjones.filter.ExtendStrutsFilter

struts2
/*


CXF
org.apache.cxf.transport.servlet.CXFServlet

CXF
/ws/*

自定义过滤器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配置