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。
本人親測,如有不當之處,敬請批評指正,共同學習,共同進步。