xfire+spring+hibernate 配置文件

1.application

 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans>

	<!-- 加载数据库配置文件 -->
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="classpath:jdbc.properties"/>
	</bean>
	<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor" lazy-init="true">
	</bean> 
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">      
        <property name="driverClass">
            <value>${jdbc.driverClassName}</value>
        </property>
        <property name="jdbcUrl">
            <value>${jdbc.url}</value>
        </property>
        <property name="user">
            <value>${jdbc.username}</value>
        </property>
        <property name="password">
            <value>${jdbc.password}</value>
        </property>
        <property name="minPoolSize" value="5"/>
        <property name="maxPoolSize" value="60"/>
        <property name="maxIdleTime" value="60"/>
        <property name="acquireIncrement" value="5"/>
        <property name="maxStatements" value="50"/>
        <property name="initialPoolSize" value="5"/>
        <property name="idleConnectionTestPeriod" value="60"/>
        <property name="acquireRetryAttempts" value="30"/>
        <property name="acquireRetryDelay" value="1000"/>
        <property name="breakAfterAcquireFailure" value="false"/>
        <property name="testConnectionOnCheckout" value="false"/>
        <property name="testConnectionOnCheckin" value="false"/>
        
    </bean>
	<bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">   
    <property name="nativeJdbcExtractor">   
        <ref local="nativeJdbcExtractor" />   
    </property> 
</bean> 
	
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource"> 
			<ref bean="dataSource" />
		</property>
		<property name="lobHandler">   
        	<ref local="lobHandler"/>   
    	</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.hbm2ddl.auto">none</prop>
				<prop key="hibernate.jdbc.batch_size">100</prop>
				<prop key="hibernate.jdbc.fetch_size">100</prop>
				<prop key="hibernate.connection.release_mode">after_transaction</prop>
			</props>
		</property>
		<property name="mappingLocations">
			<list>
				<value>classpath*:com/combanc/weike/pojo/**/*.hbm.xml</value>
			</list>
		</property>
		 <property name="eventListeners">
            <map>
                <entry key="merge">
                    <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>
                </entry>
            </map>
        </property>
	</bean>
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	<bean id="jdbcTemplate"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
	</bean>
	
	<bean id="BasicDao" class="com.combanc.common.core.dao.BaseDao">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>
	
	<bean id="BaseHibernateDAO" class="com.combanc.common.core.dao.BaseHibernateDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
		<property name="jdbcTemplate">
			<ref local="jdbcTemplate" />
		</property>
	</bean>
	<bean id="userDAO" class="com.combanc.weike.dao.UsersDAO">
		 <property name="sessionFactory" ref="sessionFactory" />
		 <property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>
	<bean id="curricumScheduleDAO" class="com.combanc.weike.dao.CurricumScheduleDAO">
		 <property name="sessionFactory" ref="sessionFactory" />
		 <property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>
	<bean id="studentClassDAO" class="com.combanc.weike.dao.StudentClassesDAO">
		 <property name="sessionFactory" ref="sessionFactory" />
		 <property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>
	<bean id="teacherDAO" class="com.combanc.weike.dao.TeacherDAO">
		 <property name="sessionFactory" ref="sessionFactory" />
		 <property name="jdbcTemplate" ref="jdbcTemplate" />
	</bean>
	<bean id="userServiceImpl" class="com.combanc.weike.service.userServiceImpl">
	 <property name="userDAO" ref="userDAO"/>
	 <property name="curricumScheduleDAO" ref="curricumScheduleDAO"/>
	 <property name="studentClassDAO" ref="studentClassDAO"/>
	 <property name="teacherDAO" ref="teacherDAO"/>
	</bean>
	<span style="background-color: rgb(255, 0, 0);"><bean id="userServer" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager" ref="transactionManager"/>
        <property name="target" ref="userServiceImpl"/>
        <property name="transactionAttributes">
            <props>         
            <prop key="*">PROPAGATION_REQUIRED</prop>                   
            </props>
        </property>
    </bean> </span>
	 
</beans>


2.web.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/classes/conf/spring/applicationContext.xml
		            <span style="background-color: rgb(255, 0, 0);"> classpath:org/codehaus/xfire/spring/xfire.xml
</span>		</param-value>
	</context-param>	
	<context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/WEB-INF/log4j.properties</param-value>
    </context-param>

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>webservicetest.root</param-value>
    </context-param>

     <filter>
        <filter-name>sessionFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>   

    <filter-mapping>
        <filter-name>sessionFilter</filter-name>
        <url-pattern>/services/*</url-pattern>
    </filter-mapping>        

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>    

  <span style="background-color: rgb(255, 0, 0);"><servlet>
        <servlet-name>xfire</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>xfire</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>      </span>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

3.xfire-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"  >
<span style="background-color: rgb(255, 0, 0);"><beans>
    <!-- START SNIPPET: xfire -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="urlMap">
            <map>
                <entry key="/userService">
                    <ref bean="query"/>
                </entry>   
             </map>
        </property>
    </bean>

    <!-- Declare a parent bean with all properties common to both services -->

    <bean id="query" class="org.codehaus.xfire.spring.remoting.XFireExporter">

        <property name="serviceFactory">
            <ref bean="xfire.serviceFactory"/>
        </property>
        <property name="xfire">
            <ref bean="xfire"/>
        </property>
        <property name="serviceBean"> 
            <ref bean="userServer"/>  <!-- 请注意这个需在applicationContext.xml有定义-->
        </property>

        <property name="serviceClass">
            <value>com.combanc.weike.service.IuserService</value>
        </property> 

    </bean>   
    </span><!-- END SNIPPET: xfire -->
</beans>

用到的jar包:

<classpathentry kind="src" path="src"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/JAMon.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/antlr-2.7.6rc1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/aopalliance-1.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm-attrs.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/asm.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/burlap-2.1.12.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/c3p0-0.9.0.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/c3p0-0.9.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cglib-2.1.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-attributes-api.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-attributes-compiler.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections-2.1.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-collections.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-dbcp.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-digester-1.8.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-fileupload.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-httpclient-3.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-httpclient.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-lang.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging-1.0.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-logging.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-pool.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/concurrent-1.3.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/connector.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/cos.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/db-ojb-1.0.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/dom4j-1.6.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/dom4j-1.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/easymock.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/easymockclassextension.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/ehcache-1.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/freemarker.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hessian-2.1.12.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/hibernate3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/itext-1.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaas.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jacc-1_0-fr.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jakarta-oro-2.0.8.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jasperreports-1.0.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxen-1.1-beta-4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxen-1.1-beta-7.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-cache.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-common.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-jmx.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jboss-system.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jdbc2_0-stdext.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jgroups-2.2.8.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jmxremote.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jmxremote_optional.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jmxri.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jotm.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jta.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/junit.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jxl.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j-1.2.11.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/log4j-1.2.14.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mysql-connector-java-5.1.7-bin.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/oscache-2.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/poi-2.5.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/proxool-0.8.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/quartz-1.5.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-aop.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-beans.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-context.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-core.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-dao.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-hibernate.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-jdbc.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-mock.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-orm.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-remoting.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-support.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-web.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring-webmvc.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/spring.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/swarmcache-1.0rc2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/velocity-1.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/velocity-tools-generic-1.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/velocity-tools-view-1.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xapool.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xerces-2.6.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-all-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xml-apis.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/XmlSchema-1.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/activation-1.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bcprov-jdk15-133.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-attributes-api-2.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-beanutils-1.7.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-codec-1.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/commons-discovery-0.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxb-api-1.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxb-api-2.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxb-impl-1.0.5.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxb-impl-2.0.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxb-xjc-2.0.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxen-1.1-beta-9.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jaxws-api-2.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jdom-1.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/jsr173_api-1.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/mail-1.4.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/opensaml-1.0.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/relaxngDatatype-20050913.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/saaj-api-1.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/saaj-impl-1.3.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/stax-api-1.0.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/stax-utils-20040917.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/wsdl4j-1.6.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/wss4j-1.5.1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/wstx-asl-3.2.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xbean-2.2.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xbean-spring-2.8.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xercesImpl-2.6.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-aegis-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-annotations-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-core-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-generator-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-java5-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-jaxb-1.1.2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-jaxb2-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-jaxws-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-jsr181-api-1.0-M1.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-spring-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-ws-security-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xfire-xmlbeans-1.2.6.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xml-apis-1.0.b2.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xmlsec-1.3.0.jar"/>
	<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/xsdlib-20050913.jar"/>


出现的问题:

1.找不到hibernate的 *.hbm.xml

  xfire自身的框架中含有spring-1.2.6。jar 包 去掉

2.使用框架spring 生成的jar包,会缺少一些

  spring-aop

aopalliance-1.0.jar

spring-core.jar  如果出现找不到某些类 可能是 这个包旧了


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值