1:所用的jar
xfire-all-1.2.6.jar 包含所有用的jar
ibatis 的jar ,
2:我们开始配置
applicationContext.xml
<?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="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:jdbc.properties</value> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>${jdbc.driverClassName}</value> </property> <property name="url"> <value>${jdbc.url}</value> </property> <property name="username"> <value>${jdbc.username}</value> </property> <property name="password"> <value>${jdbc.password}</value> </property> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="WEB-INF/sqlmap-config.xml" /> <property name="dataSource" ref="dataSource" /> </bean> <!-- 事务代理 --> <bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="get*">PROPAGATION_REQUIRES_NEW,-Exception</prop> </props> </property> </bean> <bean id="idemoI" class="com.lichen.services.ISdemo" /> <!-- 事务代理管理类 --> <bean id="isLogs" parent="baseTransactionProxy"> <property name="target"> <bean class="com.lichen.services.ISLogsImpl"> <property name="logDao"> <ref bean="logsDAO" /> </property> </bean> </property> </bean> <bean id="logsDAO" class="com.lichen.daoimpl.LogsImpl"> <property name="sqlMapClient"> <ref bean="sqlMapClient" /> </property> </bean> </beans>
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">
<beans>
<!-- 导入jar 中所需要xfire.mxl -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- xfire注解配置 -->
<bean id="webAnnotations"
class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" />
<bean id="jsr181HandlerMapping" class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
<property name="xfire" ref="xfire" />
<property name="webAnnotations" ref="webAnnotations" />
</bean>
</beans>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 导入jar 中所需要xfire.mxl -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- xfire注解配置 -->
<bean id="webAnnotations"
class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" />
<bean id="jsr181HandlerMapping" class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
<property name="xfire" ref="xfire" />
<property name="webAnnotations" ref="webAnnotations" />
</bean>
</beans>
4:web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>XFireService</display-name><!-- begin Spring配置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class> org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener><!-- end Spring配置 --><!-- begin XFire 配置 --> <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>*.ws</url-pattern> </servlet-mapping> <servlet><!-- 配合Spring容器中XFire一起工作的Servlet--> <servlet-name>xfireServlet</servlet-name> <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xfireServlet</servlet-name> <!-- 在这个URI下开放Web Service服务 --> <url-pattern>/service/*</url-pattern> </servlet-mapping><!-- end XFire 配置 --> </web-app>
interface:
package com.lichen.iservices;
import javax.jws.WebService;
@WebService(targetNamespace = "http://localhost/myXfire")
// ①指定SOAP的命名空间
public interface ISLogs {
public String get_AllLogs(String bh) throws Exception;
public String ddd();
}
interfaceimpl
package com.lichen.services;
import java.sql.SQLException;
import javax.jws.WebService;
import com.lichen.daoimpl.LogsImpl;
import com.lichen.iservices.ISLogs;
@WebService(serviceName = "logservice", // ①指定导出的Web Service名称
endpointInterface = "com.lichen.iservices.ISLogs")
public class ISLogsImpl implements ISLogs {
private LogsImpl logDao;
public LogsImpl getLogDao() {
return logDao;
}
public void setLogDao(LogsImpl logDao) {
this.logDao = logDao;
}
public String get_AllLogs(String bh) throws SQLException {
// TODO Auto-generated method stub
//事務管理
try{
logDao.getSqlMapClient().startTransaction();
logDao.updateLogs();
//logDao.insertLogs();
logDao.getSqlMapClient().commitTransaction();
}finally{
logDao.getSqlMapClient().endTransaction();
}
return "ok";
}
public String ddd() {
// TODO Auto-generated method stub
return "dd";
}
}
tomcat 访问地址