web工程添加webservice接口
- 提问者网友:那叫心脏的地方装的都是你
- 2021-08-11 19:19
- 五星知识达人网友:不如潦草
- 2021-08-11 19:34
1.创建web工程
2.收集相关jar包:(可从官方网[xfire.codehaus.org]取得)
3,配置web.xml
4.编写一个服务接口及其实现类
5.创建xifre配置文件
6.部署web工程到服务器
详说:
1.创建web工程(略)
2.收集相关jar(略)
3.配置web.xml
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
" http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<display-name>XFire Servlet</display-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
4.编写服务接口及其实现类
接口:
public interface BookService{
public Book findBook(String isbn);
}
接口实现类:
public class BookServiceImpl implements BookService
{
private Book onlyBook;
public BookServiceImpl()
{
onlyBook = new Book();
onlyBook.setAuthor("Dan Diephouse");
onlyBook.setTitle("Using XFire");
onlyBook.setIsbn("0123456789");
}
public Book[] getBooks()
{
return new Book[] { onlyBook };
}
public Book findBook(String isbn) throws BookException
{
if (isbn.equals(onlyBook.getIsbn()))
return onlyBook;
throw new BookException("Book not exists",new BookExceptionDetail("NOT_EXIST","Can't find book"));
}
public Map getBooksMap() {
Map result = new HashMap();
result.put(onlyBook.getIsbn(), onlyBook);
return result;
}
}
5.创建xifre配置文件
在META-INF下创建xfire/services.xml文件,如果系统找不到该文件可以试着创建WEB-INF/classes/META-INF/xfire/services.xml文件,文件配置内容具体如下:
<beans xmlns=" http://xfire.codehaus.org/config/1.0">
<service>
<name>BookService</name>
<namespace> http://xfire.codehaus.org/BookService</namespace>
<serviceClass>org.codehaus.xfire.demo.BookService</serviceClass>
<implementationClass>org.codehaus.xfire.demo.BookServiceImpl</implementationClass>
<inHandlers>
<handler handlerClass="org.codehaus.xfire.demo.handlers.CheckVersionHandler" />
</inHandlers>
</service>
</beans>
6.部署web工程,访问http://localhost:youport/yourprojectname/services/BookService?wsdl
- 1楼网友:时间的尘埃
- 2021-08-11 19:52
<!-- ========================== hibernate事务管理 =============================== --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- ============spring事务事务代理================ --> <bean id="proxyUserLoginService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager" /> <property name="target" ref="personService" /> <property name="transactionAttributes"> <props> <prop key="get*">PROPARAGATION_REQUIRED,readOnly</prop> </props> </property> </bean>
在spring的配置文件中配置了一个hibernate的事务管理器,这个管理器只是管理sessionFactory中的事务(不包括事务的声明,提交和回滚)。 在spring的配置文件中配置了一个spring的事务管理器(这个不是事务管理器,是事务拦截器),象你现在配的这个就是拦截以get开头的数据库请求,它会自动为你的get*请求就加上事务控制,成功则提交,失败则回滚(hibernate的事务管理器没这功能)。 在spring的配置文件中配置了一个hibernate的事务管理器,是为了注入给事务拦截器(TransactionProxyFactoryBean)(你要说TransactionProxyFactoryBean反向控制transactionManager也可以)。 这句就是注入的配置<property name="transactionManager" ref="transactionManager" />