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