在SSH中加入webservice模块(CXF模式),只到wsdl页面。还没有实际项目内容

别问我为什么是CXF,项目要用这个

一、首先,原始的项目模式要使用新的功能板块,肯定需要加入对应的jar包 

现在这些是借鉴其他博客的架包,至于真正需要哪些架包我现在实际根本不清楚,只能等后期彻底熟悉之后再为大家补上了

二、 核心文件web.xml ,配置请求过滤的规则。  这里要开始明白的一点规则是,这里的过滤词语究竟是做什么用的,什么时候用 

<!--加入cxf过滤规则-->
    <servlet>
        <servlet-name>cxfService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>30</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cxfService</servlet-name>
        <url-pattern>/gxWS/*</url-pattern>
    </servlet-mapping>

示例,现在我的过滤路径为/gxWS/*     对比最终的wsdl访问路径  http://localhost:8080/gxksxt/gxWS/downloadingWS?wsdl  

可以发现 这里的gxWS是整个cxf过滤中必不可少的一部分。当然说出来的话大家都觉得理所当然,而且这个也不一定准确,后面再看 

三、修改struts2过滤规则,因为其他的板块访问规则还是原始的*.action  所以这一步我还没有进行,但是仍然能完好的访问wsdl,后期再这么改的时候会

持续更新  .不过测试改为自己的重写过滤器没有什么问题,先不改变规则即可 

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>com.gx.filter.WebserviceFilter</filter-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>
                struts-default.xml ,struts-plugin.xml,../struts/struts.xml
            </param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

四、再application中加入cxf依赖配置,这个文件是从架包中直接读取的,而且一般的spring标签都有对其的支持,所以照搬copy即可 

<!--引入webservice头文件-->
    <import resource="classpath*:META-INF/cxf/cxf.xml"/>
    <import resource="classpath*:META-INF/cxf/cxf-extension-soap.xml"/>
    <import resource="classpath*:META-INF/cxf/cxf-servlet.xml"/>

若有报错,可能是文件头的标签缺失 加上即可 

五、开始测试功能,因为为了读取的方便,首先建立一个interface,然后建立一个实现类即可  

例如   webService接口  和  webServiceImpl实现     在每个类名上加一个注解@WebService即可  

@WebService

public class WebServiceImpl implements WebService {

六、 暴露自己的功能访问路径 ,在application中配置  注意名称   

<!--暴露webservice接口-->
    <jaxws:endpoint id="down" implementor="com.gx.service.impl.QcBaseServiceImpl" address="/downloadingWS" >   </jaxws:endpoint>

1、 id可以自己定义    2、address可以自己定义,这是指向wsdl文件的最终标识。具有唯一性  3、implementor 即实现过程 必须是完整的定义类

猜你喜欢

转载自www.cnblogs.com/mzyy/p/8862779.html