1:首先新建一个接口以及他的实现类。如下:
/**? ?
?* 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:实现接口类
/**? ?
?* 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
<!--axis2类加载-->
<bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" />
<!--webservice 服务端接口-->
<bean id="myWS" class="com.gxt.autocode.until.ClassForNameReflectServiceImpl"></bean>
4:在项目中WEB-INF下面配置service.xml配置文件。
WEB-INF下面新建services-->myWS-->META-INF-->service.xml:如图所示
5:配置services.xml文件
<?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