`
fengpy2009
  • 浏览: 252074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

spring2.1.8集成xfire1.2.6出现的问题

阅读更多

集成还算是简单,就是在web.xml添加相关,spring配置就完事,具体如下:

1。web.xml

     加入:

   <servlet>
  <servlet-name>XFireServlet</servlet-name>
  <servlet-class>
   org.codehaus.xfire.spring.XFireSpringServlet
  </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>

 

<!-- Spring config-->
  <context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:springbeans.xml</param-value>

  <param-value>要包含xfire相关配置文件,或在其他配置文件中引入也可,如在其他配置文件中用  

            <import resource="applicationContext-webservice.xml" />引入

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

 

2.定义接口及实现服务

  定义接口,这个接口中定义要通过WebService暴露的方法
   package com.xxx.webservice;

   public interface test {
         public String sayHello(String name);
   }
  实现服务

package com.xx.webservice.impl;

import com.fireflow.webservice.test;

    public class testImpl implements test {

     public String sayHello(String name) {
      return "Hello"+name;
     }

}

 

3.配置服务
在spring引入的文件中(如applicationContext-webservice.xml):

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

<!--首先引入这个,这个以后可能抱错,见后面-->
 <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
 <bean name="testService" class="org.codehaus.xfire.spring.ServiceBean">
        <property name="serviceBean" ref="test"/>
        <property name="serviceClass" value="com.xx.webservice.test"/>
        <property name="inHandlers">
            <list>
                <ref bean="addressingHandler"/>
            </list>
        </property>
    </bean>

    <bean id="test" class="com.xx.webservice.impl.testImpl"/>

    <bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler"/>


</beans>

 

OK完成了,测试一下:

通过IE,输入http://ip:port/context/services/BookService?wsdl出现相应的wsdl文档。

 

 

几个异常:

1.由于引入<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />报org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.customEditorConfigurer' defined in ServletContext resource [/WEB-INF/customEditors.xml]: Cannot create inner bean 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor#1022de4' while setting bean property 'customEditors' with key [org.codehaus.xfire.service.ServiceFactory]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor#1022de4' defined in ServletContext resource [/WEB-INF/customEditors.xml]: Cannot resolve reference to bean 'xfire.transportManager' while setting bean property 'transportManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.transportManager' defined in ServletContext resource [/WEB-INF/xfire.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.codehaus.xfire.spring.editors.ServiceFactoryEditor#1022de4' defined in ServletContext resource [/WEB-INF/customEditors.xml]: Cannot resolve reference to bean 'xfire.transportManager' while setting bean property 'transportManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.transportManager' defined in ServletContext resource [/WEB-INF/xfire.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
Caused by:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xfire.transportManager' defined in ServletContext resource [/WEB-INF/xfire.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
Caused by:
java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamReader
at org.codehaus.xfire.soap.SoapTransportHelper.<clinit>(SoapTransportHelper.java:24)
at org.codehaus.xfire.transport.local.LocalTransport.<init>(LocalTransport.java:33)
解决方法:我是加入了jsr173_1.0_api.jar这个包,就解决了,这个包找下就成,也可在附件中可下

2.通过IE,输入http://ip:port/context/services/BookService?wsdl 测试服务正常,但是写了个jsp文件测试,报异常。

   jsp文件内容:

      try {

        Client client = new Client(new URL("http://localhost:8888/xx/services/testService?wsdl"));

        out.println("<b>1、</b>sayHello:");
  Object[] results = client.invoke("sayHello", new Object[]{"Jim"});
  out.println(results[0].toString());
  out.println("<br>");
  
 } catch (MalformedURLException e) {
  e.printStackTrace();
 } catch (Exception e) {
  e.printStackTrace();
 }

所报异常是:

    java.io.FileNotFoundException: http://localhost:8888/xx/services/testService?wsdl
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1168)
 at java.net.URL.openStream(URL.java:1007)
 at org.codehaus.xfire.client.Client.<init>(Client.java:246)
 at org.apache.jsp.ws_005ftest_jsp._jspService(ws_005ftest_jsp.java:73)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:319)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:270)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
 at com.fireflow.other.CurrentUserFilter.doFilter(CurrentUserFilter.java:30)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:220)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:227)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:211)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:817)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:623)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:444)
 at java.lang.Thread.run(Thread.java:595)

 

经查找未解决,于是把URL改成: Client client = new Client(new URL("http://localhost:8888/xx/services/test?wsdl"));因为服务类就是test,

 

改完后运行,再测试,又报异常,内容是:

java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/resolver/URIResolver
 at org.codehaus.xfire.client.Client.initFromDefinition(Client.java:262)
 at org.codehaus.xfire.client.Client.<init>(Client.java:236)
 at org.codehaus.xfire.client.Client.<init>(Client.java:246)
 at org.apache.jsp.ws_005ftest_jsp._jspService(ws_005ftest_jsp.java:73)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:319)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:270)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
 at com.fireflow.other.CurrentUserFilter.doFilter(CurrentUserFilter.java:30)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:220)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:191)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:227)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:211)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:817)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:623)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:444)
 at java.lang.Thread.run(Thread.java:595)

 

  经查org/apache/ws/commons/schema/resolver/URIResolver在XmlSchema-1.1.jar中,于是加入该jar包,解决。这个包在xfire提供的包中有。

 

 

 

0
0
分享到:
评论

相关推荐

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...

    struts2.1.8 集成 spring hibernate需要的 核心 jar

    Struts2.1.8是Apache Struts框架的一个版本,它是Java Web开发中广泛使用的MVC框架之一。这个版本的Struts2集成了Spring和Hibernate,使得开发者能够更方便地管理控制层(Controller)和持久层(Persistence Layer)...

    spring batch 2.1.8版本

    ### Spring Batch 2.1.8 版本详解 #### 一、Spring Batch 简介 ##### 1.1 背景介绍 Spring Batch 是一个强大的批量处理框架,旨在简化开发大型批量数据处理应用的过程。该框架提供了一种灵活且可扩展的方式来构建...

    Struts2.1.8 spring2.5.6 ibatis2.3 集成

    Struts2.1.8、Spring2.5.6 和 iBatis2.3 的集成是Web开发中一种常见的技术组合,主要用于构建企业级的Java应用程序。这些框架各自都有其独特的优势,当它们协同工作时,可以提供强大的功能,如模型-视图-控制器(MVC...

    WEB项目-集成Flex3_BlazeDS3[1].2_Spring2.5.6_iBatis2.3.4_Struts2.1.8

    这是一个关于Web项目集成的技术组合,涉及了Flex 3、BlazeDS 3、Spring 2.5.6、iBatis 2.3.4和Struts 2.1.8等多个关键组件。这些技术在现代企业级应用程序开发中扮演着重要角色,尤其在构建富互联网应用程序(RIA)...

    Spring2.5.6+struts2.1.8+hibernate3.3.2框架集成

    本项目涉及的是Spring 2.5.6、Struts 2.1.8和Hibernate 3.3.2这三大流行Java企业级框架的集成。下面将详细介绍这三个框架及其集成的关键知识点。 首先,Spring框架(2.5.6版本)是一个轻量级的全面应用框架,它提供...

    spring-boot-reference2.1.8.pdf

    Spring Boot参考手册提供了关于如何使用Spring Boot的完整指南,本手册涉及了Spring Boot的版本2.1.8,该手册有480页,涵盖了使用Spring Boot进行开发的各个方面。 参考手册首先介绍了Spring Boot的基本文档,包括...

    struts2.1.8+spring2.5.6

    Struts2.1.8与Spring2.5.6是两个经典的Java企业级开发框架,它们在J2EE(Java 2 Platform, Enterprise Edition)应用中扮演着重要的角色。Struts2是一个强大的MVC(Model-View-Controller)框架,而Spring则是一个...

    spring-security-oauth2-autoconfigure-2.1.8.RELEASE-API文档-中文版.zip

    赠送jar包:spring-security-oauth2-autoconfigure-2.1.8.RELEASE.jar; 赠送原API文档:spring-security-oauth2-autoconfigure-2.1.8.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-autoconfigure-...

    Spring Batch 2.1.8

    - **与其他Spring框架的无缝集成**:如Spring JDBC、Spring Integration、Spring Data等,简化开发流程。 - **多种数据源支持**:可以读写多种类型的数据源,如关系数据库、文件、XML、NoSQL等。 7. **定制化**:...

    jpa spring2.5.6 struts2.1.8整合需要的jar包

    本文将深入探讨如何将JPA(Java Persistence API)与Hibernate实现,Spring 2.5.6以及Struts2.1.8框架进行整合,同时还会涉及到Tiles框架的使用。这些组件的结合可以构建出一个强大的MVC(Model-View-Controller)...

    WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+Struts2.1.8

    本项目是关于构建一个WEB应用程序的集成框架,主要涉及的技术栈包括Flex3、BlazeDS3.2、Spring2.5.6、iBatis2.3.4以及Struts2.1.8。这些技术分别扮演着不同的角色: - **Flex3**:这是一种用于创建富互联网应用...

    struts2-spring-plugin-2.1.8

    struts2-spring-plugin

    Struts2.1.8+Hibernate3.3+Spring3.0环境搭建

    Struts2.1.8+Hibernate3.3+Spring3.0是经典的Java Web开发框架组合,也被称为SSH(Struts2、Spring、Hibernate)。这个环境的搭建涉及到多个步骤,涵盖了MVC(Model-View-Controller)框架、持久化框架和依赖注入...

    Java代码生成工具 绿色版_生成Struts2.1.8,Spring2.5,Hibernate3代码

    Java代码生成工具是一种高效开发辅助软件,主要用于自动化生成基于Java技术栈的Web应用程序代码,尤其针对Struts2.1.8、Spring2.5和Hibernate3这三个经典框架的集成应用。这样的工具能够显著提高开发效率,减少手动...

    spring2.5.6 +struts2.1.8+hiernate3.3.2(jar)

    标题中的"spring2.5.6 +struts2.1.8+hiernate3.3.2(jar)"指的是一个集成开发环境,它包含了三个关键的Java Web框架:Spring 2.5.6、Struts 2.1.8和Hibernate 3.3.2。这些框架在Java应用开发中扮演着重要的角色,尤其...

    spring3.0+struts2.1.8+hibernate3.2完整jar包

    Spring 3.0、Struts 2.1.8 和 Hibernate 3.2 是三个非常重要的Java开源框架,它们在企业级应用开发中扮演着核心角色。这个完整的jar包组合提供了一个集成的开发环境,方便开发者快速搭建基于MVC模式的Java Web应用...

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2项目整合

    Struts2.1.8+Spring2.5.6+Hibernate3.3.2是经典的Java Web开发框架组合,常被称为SSH。这三个框架协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得企业级应用的开发更加高效和模块化。 Struts...

    spring-security-oauth2-autoconfigure-2.1.8.RELEASE-文档-中英对照版.zip

    赠送jar包:spring-security-oauth2-autoconfigure-2.1.8.RELEASE.jar; 赠送原API文档:spring-security-oauth2-autoconfigure-2.1.8.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-autoconfigure-...

    struts 2.1.8 spring 2.5 jap ext 整合 例子2

    struts 2.1.8 spring 2.5 jap ext 整合 例子 struts 2.1.8 spring 2.5 jap ext 整合 例子

Global site tag (gtag.js) - Google Analytics