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