SpringMVC 與axis2 的整合(服務器端)


1,新建一個web project項目,項目的目錄 如下:

2,導入需要的jar包,本例用的是axis2 1.7.3版本。

3,創建接口。

package com.dsdl.hcm.webService.service;

import java.util.List;

import com.dsdl.hcm.businessmanagement.bean.HcmEmptyboxBean;



public interface EmptyBoxService {

	public String fanhui(String s);
	public int updateHcmEmptyBoxForBoxCodeBySano(List<HcmEmptyboxBean> hcmEmptyboxBeanList);
	public int getPrice();
	public String getGreeting(String name);
	public String recieveXml(String str);
}

4,創建接口的實現類EmptyBoxServiceImpl

package com.dsdl.hcm.webService.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import com.dsdl.hcm.businessmanagement.bean.HcmEmptyboxBean;
import com.dsdl.hcm.businessmanagement.dao.HcmEmptyboxDao;
import com.dsdl.hcm.webService.bean.HcmEmptyboxPojo;
import com.dsdl.hcm.webService.service.EmptyBoxService;
import com.dsdl.hcm.webService.xmlUtil.Xml;
import com.dsdl.hcm.webService.xmlUtil.XmlHead;
import com.dsdl.hcm.webService.xmlUtil.XmlUtil;

public class EmptyBoxServiceImpl implements EmptyBoxService {

	@Resource(name="hcmEmptyboxDao")
	public HcmEmptyboxDao hcmEmptyboxDao;
	
	@Override
	public String fanhui(String s) {
		// TODO Auto-generated method stub
		return s+""+hcmEmptyboxDao.toString();
	}

	@Override
	public int updateHcmEmptyBoxForBoxCodeBySano(
			List<HcmEmptyboxBean> hcmEmptyboxBeanList) {
		// TODO Auto-generated method stub
		return hcmEmptyboxDao.updateHcmEmptyBoxForBoxCodeBySano(hcmEmptyboxBeanList);
	}

	@Override
	public int getPrice() {
		// TODO Auto-generated method stub
		System.out.println(hcmEmptyboxDao+"================");
		return 11;
	}

	@Override
	public String getGreeting(String name) {
		// TODO Auto-generated method stub
		return "你好 " + name;
	}
	@Override
	public String recieveXml(String str){
		try {
			Xml xml = new Xml();
			Xml xmls = (Xml) XmlUtil.getObjectFromXml(xml, str);
			System.out.println(xmls.getXMLHEAD().getREQUESTUSER());
			
			switch (xmls.getXMLHEAD().getREQUESTMETHOD()) {
			case "writebackboxcode":
				return this.writeBackBoxCode(xmls);
			default:
				return this.writeBackBoxCode(xmls);
			}
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return "異常";
		}
	}
	
	private String writeBackBoxCode(Xml xmls) {
		// TODO Auto-generated method stub
//	    BusinessManagementController businessManagementController = (com.dsdl.hcm.businessmanagement.controller.BusinessManagementController) ctx.getBean("businessManagementController");
		List<HcmEmptyboxPojo> HcmEmptyboxPojo = xmls.getXMLBODY().getHCMEMPTYBOXPOJOLIST();
		List<HcmEmptyboxBean> hcmEmptyboxBeanList = new ArrayList<HcmEmptyboxBean>();
		HcmEmptyboxBean hcmEmptyboxBean = null;
		
		for (HcmEmptyboxPojo temp : HcmEmptyboxPojo) {
			hcmEmptyboxBean = new HcmEmptyboxBean();
			hcmEmptyboxBean.setSano(temp.getSANO());
			hcmEmptyboxBean.setBoxCode(temp.getBOXCODE());
			hcmEmptyboxBeanList.add(hcmEmptyboxBean);
		}
		int count = hcmEmptyboxDao.updateHcmEmptyBoxForBoxCodeBySano(hcmEmptyboxBeanList);
		Xml resultXml = new Xml();
		XmlHead xmlHead = new XmlHead();
		xmlHead.setREQUESTTIME("");
		xmlHead.setREQUESTUSER("");
		if(count > 0){
			xmlHead.setSTATUS(1);
			xmlHead.setSTATUS_TEXT("成功");
		}else{
			xmlHead.setSTATUS(0);
			xmlHead.setSTATUS_TEXT("失敗");
		}
		resultXml.setXMLHEAD(xmlHead);
		return XmlUtil.getXmlFromObject(resultXml);
	}
}

5,webservice類SimpleService

package com.dsdl.hcm.webService.server;
import java.util.List;
import org.apache.axis2.AxisFault;
import org.apache.axis2.ServiceObjectSupplier;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.i18n.Messages;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import com.dsdl.hcm.businessmanagement.bean.HcmEmptyboxBean;
import com.dsdl.hcm.webService.service.EmptyBoxService;

public class SimpleService implements EmptyBoxService {
	private static ApplicationContext ctx;
			
	@Override
	public String fanhui(String s) {
		// TODO Auto-generated method stub
		return null;
	}
	@Override
	public int updateHcmEmptyBoxForBoxCodeBySano(
			List<HcmEmptyboxBean> hcmEmptyboxBeanList) {
		// TODO Auto-generated method stub
		return 0;
	}
	@Override
	public int getPrice() {
		// TODO Auto-generated method stub
		return 0;
	}
	@Override
	public String getGreeting(String name) {
		// TODO Auto-generated method stub
		return null;
	}
	@Override
	public String recieveXml(String str) {
		// TODO Auto-generated method stub
		return null;
	}
	


}

6,web.xml

  <servlet>    
        <servlet-name>AxisServlet</servlet-name>    
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>    
        <init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:conf/axis2.xml</param-value>
		</init-param>
        <load-on-startup>1</load-on-startup>    
    </servlet>    
            
    <servlet-mapping>    
        <servlet-name>AxisServlet</servlet-name>    
        <url-pattern>/services/*</url-pattern>    
    </servlet-mapping> 

7, 所使用的框架是SSM,在配置文件中spring-mybatis.xml 中配置。

<bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" />
<bean id="emptyBoxService" class="com.dsdl.hcm.webService.service.impl.EmptyBoxServiceImpl"></bean>

 在這個里面配置,主要取決於,web.xml的配置

8,WEB-INF\services\XXX\META-INF\services.xml,在此目錄下配置service.xml ,如果不存在則自己創建。其中XXX可以自己定義。

<serviceGroup>
<service name="SimpleService" >
    <description>  
      	Test Service Example   
    </description>  
    <parameter name="ServiceObjectSupplier"><!-- 固定的不變 -->  
            org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier  
        </parameter>  
    <parameter name="SpringBeanName">emptyBoxService</parameter><!-- bean名字 -->  
    <parameter name="ServiceClass">  
        com.dsdl.hcm.webService.server.SimpleService
    </parameter>  
   <messageReceivers>
   	 	<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
       	<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </messageReceivers>  
</service>
</serviceGroup>

  到此為止,axis2+springMVC集成到此已經開發完成,接下把工程部署到tomcat。

  訪問地址是http://localhost:8080/HCM/services/SimpleService?wsdl。

  本人親測,如有不當之處,敬請批評指正,共同學習,共同進步。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM