永发信息网

web工程添加webservice接口

答案:2  悬赏:80  手机版
解决时间 2021-08-12 10:27
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-08-11 19:19
web工程添加webservice接口 web工程中使用了spring 我不会配置 希望高手给我远程 QQ:121849757 如果帮我弄好了 在追加100分 谢谢了 在线等
最佳答案
  • 五星知识达人网友:不如潦草
  • 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" />

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯