集成还算是简单,就是在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提供的包中有。
分享到:
相关推荐
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是Apache Struts框架的一个版本,它是Java Web开发中广泛使用的MVC框架之一。这个版本的Struts2集成了Spring和Hibernate,使得开发者能够更方便地管理控制层(Controller)和持久层(Persistence Layer)...
### Spring Batch 2.1.8 版本详解 #### 一、Spring Batch 简介 ##### 1.1 背景介绍 Spring Batch 是一个强大的批量处理框架,旨在简化开发大型批量数据处理应用的过程。该框架提供了一种灵活且可扩展的方式来构建...
Struts2.1.8、Spring2.5.6 和 iBatis2.3 的集成是Web开发中一种常见的技术组合,主要用于构建企业级的Java应用程序。这些框架各自都有其独特的优势,当它们协同工作时,可以提供强大的功能,如模型-视图-控制器(MVC...
这是一个关于Web项目集成的技术组合,涉及了Flex 3、BlazeDS 3、Spring 2.5.6、iBatis 2.3.4和Struts 2.1.8等多个关键组件。这些技术在现代企业级应用程序开发中扮演着重要角色,尤其在构建富互联网应用程序(RIA)...
本项目涉及的是Spring 2.5.6、Struts 2.1.8和Hibernate 3.3.2这三大流行Java企业级框架的集成。下面将详细介绍这三个框架及其集成的关键知识点。 首先,Spring框架(2.5.6版本)是一个轻量级的全面应用框架,它提供...
Spring Boot参考手册提供了关于如何使用Spring Boot的完整指南,本手册涉及了Spring Boot的版本2.1.8,该手册有480页,涵盖了使用Spring Boot进行开发的各个方面。 参考手册首先介绍了Spring Boot的基本文档,包括...
Struts2.1.8与Spring2.5.6是两个经典的Java企业级开发框架,它们在J2EE(Java 2 Platform, Enterprise Edition)应用中扮演着重要的角色。Struts2是一个强大的MVC(Model-View-Controller)框架,而Spring则是一个...
赠送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框架的无缝集成**:如Spring JDBC、Spring Integration、Spring Data等,简化开发流程。 - **多种数据源支持**:可以读写多种类型的数据源,如关系数据库、文件、XML、NoSQL等。 7. **定制化**:...
本文将深入探讨如何将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。这些技术分别扮演着不同的角色: - **Flex3**:这是一种用于创建富互联网应用...
struts2-spring-plugin
Struts2.1.8+Hibernate3.3+Spring3.0是经典的Java Web开发框架组合,也被称为SSH(Struts2、Spring、Hibernate)。这个环境的搭建涉及到多个步骤,涵盖了MVC(Model-View-Controller)框架、持久化框架和依赖注入...
Java代码生成工具是一种高效开发辅助软件,主要用于自动化生成基于Java技术栈的Web应用程序代码,尤其针对Struts2.1.8、Spring2.5和Hibernate3这三个经典框架的集成应用。这样的工具能够显著提高开发效率,减少手动...
标题中的"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应用开发中扮演着重要的角色,尤其...
Spring 3.0、Struts 2.1.8 和 Hibernate 3.2 是三个非常重要的Java开源框架,它们在企业级应用开发中扮演着核心角色。这个完整的jar包组合提供了一个集成的开发环境,方便开发者快速搭建基于MVC模式的Java Web应用...
Struts2.1.8+Spring2.5.6+Hibernate3.3.2是经典的Java Web开发框架组合,常被称为SSH。这三个框架协同工作,为开发者提供了强大的模型-视图-控制器(MVC)架构支持,使得企业级应用的开发更加高效和模块化。 Struts...
赠送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 整合 例子 struts 2.1.8 spring 2.5 jap ext 整合 例子