axis2 webservice服務端接口配置步驟

1:首先新建一個接口以及他的實現類。以下: java

/**   
 * Copyright © 2016 公司名 (工業與信息化部)工信通(北京)信息技術有限公司
 * @Company:(工業與信息化部)工信通(北京)信息技術有限公司
 * @Title : ClassForNameReflectService.java
 * @Prject: autocode2
 * @Package : com.gxt.autocode
 * @Description: TODO
 * @author: 研發中心--羅文浩   
 * @date: 2016-3-23 上午10:48:35
 * @version: V1.0   
 */
package com.gxt.autocode.until;


/**
 * @ClassName: ClassForNameReflectService
 * @Description: TODO
 * @author: 研發中心--羅文浩
 * @date: 2016-3-23 上午10:48:35
 */
public interface ClassForNameReflectService {
    /**
     * 經過一個javabean反射成一個class<?>類型
     *
     * @Title: classfornameReflect
     * @Description: TODO
     * @param pojo
     * @return
     * @return: Class<?>
     */
    public Class<?> classfornameReflect(String pojo);
}

2:實現接口類 web

/**   
 * Copyright © 2016 公司名 (工業與信息化部)工信通(北京)信息技術有限公司
 * @Company:(工業與信息化部)工信通(北京)信息技術有限公司
 * @Title: ClassForNameReflectServiceImpl.java
 * @Prject: autocode2
 * @Package: com.gxt.autocode.service
 * @Description: TODO
 * @author: 研發中心--羅文浩   
 * @date: 2016-3-23 上午10:49:10
 * @version: V1.0   
 */
package com.gxt.autocode.until;



/**
 * @ClassName: ClassForNameReflectServiceImpl
 * @Description: TODO
 * @author: 研發中心--羅文浩
 * @date: 2016-3-23 上午10:49:10
 */
public class ClassForNameReflectServiceImpl implements ClassForNameReflectService {
    /*
     * (non Javadoc)
     *
     * @Title: classfornameReflect
     *
     * @Description: TODO
     *
     * @param pojo
     *
     * @return
     *
     * @see
     * com.gxt.autocode.service.ClassForNameReflectService#classfornameReflect
     * (java.lang.String)
     */
    @Override
    public Class<?> classfornameReflect(String pojo) {
        Class<?> cls = null;
        try {
            cls = Class.forName(pojo);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return cls;
    }
}

3:在spring配置文件中配置java類的映射以及配置axis2類加載。若是用的springmvc直接@service spring


<!--axis2類加載--> apache

<bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" /> mvc

<!--webservice 服務端接口--> app

<bean id="myWS" class="com.gxt.autocode.until.ClassForNameReflectServiceImpl"></bean> ide

4:在項目中WEB-INF下面配置service.xml配置文件。 url

WEB-INF下面新建services-->myWS-->META-INF-->service.xml:如圖所示 .net

5:配置services.xml文件 code

<?xml version="1.0" encoding="UTF-8"?>
<service name= "ClassReflectService" >
    <description>axis ws</description>
    <parameter name= "ServiceObjectSupplier" locked="false">
        org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter>
    <!-- WEB-INF下applicationContext bean的id -->
    <parameter name= "SpringBeanName" locked="false">myWS</parameter>
    <messageReceivers>
        <messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-out"
             class = "org.apache.axis2.rpc.receivers.RPCMessageReceiver"  />
        <messageReceiver mep= "http://www.w3.org/2004/08/wsdl/in-only"
             class = "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"  />
    </messageReceivers>
</service>

說明:service name= "ClassReflectService"  這個名稱是訪問地址webservice的名稱

6:配置web.xml,訪問地址以及axis2啓動

<!-- lwh  add -->
  <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
        
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
 <!-- lwh add end -->


這樣既可啓動以及訪問axis2生成的webservice接口服務端

http://***:8080/項目名/services/ClassReflectService?wsdl

相關文章
相關標籤/搜索