如何使用Struts2框架发布webService

 时间:2026-02-14 14:30:00

1、使用Struts2框架创建一个web工程,引入webservice所需的jar包,我用的是cxf的jar包,

2、关于Struts2和webService的整合核心是对于StrutsPrepareAndExecuteFilter这个类的修改,使访问webservice的地址能够继续访问servlet.

3、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>

4、自定义过滤器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);

        }

    }

5、其它的设置按照正常的webservice配置

  • 万能数据库客户端dbvisualizer安装使用【二】
  • impala怎样自定义函数
  • DataGrip如何连接IBM Db2,详细教程
  • 如何使用DBeaver将表记录导出到HTML文件中
  • oracle12c如何恢复表空间和数据文件
  • 热门搜索
    三明治的做法大全 馒头花卷的做法 金针菇怎么做好吃 菠萝咕噜肉的家常做法 薤怎么读 鱼汤的做法 凉拌苦瓜的做法 扁桃体肥大怎么治 葱油鱼的做法 扣碗的做法大全