`
xkorey
  • 浏览: 153448 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

cxf + spring +maven +tomat7 搭建webservice(MTOM) 上传文件(一)环境准备

阅读更多
1.首先需要下载cxf。官方下载地址:http://cxf.apache.org/download.html
下载 Binary distribution zip。
2.解压至任意目录,以便之后用cxf的工具生成java调用的类。目录结构是这样的。

3.在eclipse中新建maven工程,编写pom.xml 引入相关jar。pom.xml文件内容如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ws</groupId>
  <artifactId>ws</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>ws Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context</artifactId>
    	<version>3.2.3.RELEASE</version>
    </dependency>
    <dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>3.2.3.RELEASE</version>
	</dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-web</artifactId>
    	<version>3.2.3.RELEASE</version>
    </dependency>
    <dependency>
		<groupId>org.springframework.security</groupId>
		<artifactId>spring-security-core</artifactId>
		<version>3.1.4.RELEASE</version>
	</dependency>
	    <dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-frontend-jaxrs</artifactId>
		<version>2.7.5</version>
	</dependency>
	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-api</artifactId>
		<version>2.7.5</version>
	</dependency>
	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-frontend-jaxws</artifactId>
		<version>2.7.5</version>
	</dependency>
	 <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-databinding-xmlbeans</artifactId>
            <version>2.7.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>2.7.6</version>
        </dependency>
	<dependency>
		<groupId>javax.xml.ws</groupId>
		<artifactId>jaxws-api</artifactId>
		<version>2.2.11</version>
	</dependency>
	<dependency>
		<groupId>javax.activation</groupId>
		<artifactId>activation</artifactId>
		<version>1.1.1</version>
	</dependency>
     <dependency>
	<groupId>commons-httpclient</groupId>
	<artifactId>commons-httpclient</artifactId>
	<version>3.1</version>
</dependency>
            <dependency>
	<groupId>org.apache.ws.commons.axiom</groupId>
	<artifactId>axiom-api</artifactId>
	<version>1.2.14</version>
</dependency>

    <dependency>
		<groupId>org.apache.xbean</groupId>
		<artifactId>xbean-spring</artifactId>
		<version>3.14</version>
	</dependency>                       
    
    <dependency>
		<groupId>com.caucho</groupId>
		<artifactId>hessian</artifactId>
		<version>4.0.7</version>
	</dependency>
	            
                        
	<dependency>
		<groupId>org.apache.cxf</groupId>
		<artifactId>cxf-rt-bindings-soap</artifactId>
		<version>2.7.5</version>
	</dependency>
                        
  </dependencies>
  <build>
    <finalName>ws</finalName>
    <plugins>
	 <plugin>  
            <groupId>org.apache.tomcat.maven</groupId>  
            <artifactId>tomcat7-maven-plugin</artifactId>  
            <version>2.0-SNAPSHOT</version>  
            <configuration>  
                <url>http://localhost:8080/manager/text</url>   
                <server>tomcat7</server> 
                <username>admin</username> 
                <password>admin</password>
            </configuration>  
        </plugin>  
	        <plugin>
			 <groupId>org.apache.maven.plugins</groupId>
			 <artifactId>maven-compiler-plugin</artifactId>
			 </plugin>
        <plugin>
        	<groupId>org.apache.maven.plugins</groupId>
				  <artifactId>maven-war-plugin</artifactId>
				  <version>2.1.1</version>
        </plugin>
    </plugins>
  </build>
</project>


4.在web.xml中配置spring和cxf servlet,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>
  <display-name>Archetype Created Web Application</display-name>
  <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value>classpath:ws.xml</param-value> 
    </context-param> 
  <listener> 
        <listener-class> 
            org.springframework.web.context.ContextLoaderListener 
        </listener-class> 
    </listener> 
     <servlet> 
        <servlet-name>CXFServlet</servlet-name> 
        <display-name>CXF Servlet</display-name> 
        <servlet-class> 
            org.apache.cxf.transport.servlet.CXFServlet 
        </servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>CXFServlet</servlet-name> 
        <url-pattern>/ecm/ws/*</url-pattern> 
    </servlet-mapping> 
    
</web-app>

spring 配置文件 ws.xml 的内容最后在贴出来。下一步写service接口。
5.hello world 接口类
@WebService
public interface HelloWorldService {
	
	public void sayHello();
}


接口实现类

public class HelloWorldServiceImpl implements HelloWorldService {

	public void sayHello() {
		System.out.println("hello world.");
	}

}


6.在spring中配置webservice,ws.xml 内容如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 	<import resource="classpath:META-INF/cxf/cxf.xml"/>
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
	
	<context:component-scan base-package="com.ws" />
	
	
	<jaxws:endpoint id="helloWorldService" 
    	implementor="com.bocins.ecm.ws.impl.HelloWorldServiceImpl" 
    	address="/helloWorld" >
	</jaxws:endpoint>
	
 </beans>


7.启动tomcat ,测试webservice 是否发布成功 在地址栏输入 http://localhost:8080/boc/ecm/ws/ 就可以看到所有已发布的webservice了。
如图

点击 {http://impl.ws.ecm.bocins.com/}HelloWorldServiceImplService 访问生成的 helloworld wsdl
如图:

说明webservice 服务发布成功。
可以进入下个环节了。

8.利用cxf提供的工具生成调用类,具体过程 如图


到bin目录下执行wsdl2java ,利用cxf提供的工具生成调用webservice的java类。


wsdl2java 参数简单说明 -p 指定要生成java类的包名称
                       -d src java类的根目录 存放包的文件夹
                       -all 生成webservice所有的调用类
                       加webservice地址

生成的类



9.将生成的java类,拷贝到eclipse
直接运行 HelloWorldService_HelloWorldServiceImplPort_Client

会在控制台输出:hello world.

webservice 环境已搭建成功。

下一章会写如何利用webservice上传下载文件。






  • 大小: 38.2 KB
  • 大小: 3.7 KB
  • 大小: 16.5 KB
  • 大小: 7.8 KB
  • 大小: 90.5 KB
分享到:
评论
5 楼 xkorey 2013-08-15  
ysihaoy 写道
xkorey 写道
ysihaoy 写道
我的项目为什么不能用最新版本的spring,而必须是CXF所使用的spring版本?

你是否有遇到类似的问题呢?

没遇到过,我是在原有普通工程上改成maven工程的。原有工程引用jar包的版本我直接拿过来的,并没用最新的spring。


但是看你spring的版本写的是3.2.3.RELEASE,这就应该是最新的啊

还有你所说的原有普通工程是指什么?
原有普通工程就是我没用maven,建的普通的web工程,jar包都是网上下的。spring现在的版本是3.2.4。我博客中的spring和cxf配合的很好。你可以试下我pom文件中引用的jar版本。
4 楼 ysihaoy 2013-08-15  
xkorey 写道
ysihaoy 写道
我的项目为什么不能用最新版本的spring,而必须是CXF所使用的spring版本?

你是否有遇到类似的问题呢?

没遇到过,我是在原有普通工程上改成maven工程的。原有工程引用jar包的版本我直接拿过来的,并没用最新的spring。


但是看你spring的版本写的是3.2.3.RELEASE,这就应该是最新的啊

还有你所说的原有普通工程是指什么?
3 楼 xkorey 2013-08-15  
ysihaoy 写道
我的项目为什么不能用最新版本的spring,而必须是CXF所使用的spring版本?

你是否有遇到类似的问题呢?

没遇到过,我是在原有普通工程上改成maven工程的。原有工程引用jar包的版本我直接拿过来的,并没用最新的spring。
2 楼 ysihaoy 2013-08-14  
我的项目为什么不能用最新版本的spring,而必须是CXF所使用的spring版本?

你是否有遇到类似的问题呢?
1 楼 梦回下花园 2013-08-02  
朋友加油啊,我还得着看下面的文章呢,呵呵

相关推荐

    cxf整合spring发布webservice(源码)

    2. **创建Spring项目**:使用Spring Initializr生成一个新的Maven或Gradle项目,包含CXF和Spring的相关依赖。 3. **配置Spring**:在`applicationContext.xml`或通过Java配置类定义Spring的bean,包括CXF的`...

    SpringBoot框架及CXF发布WebService

    4. **Spring集成**:CXF可以通过Spring的`@WebService`和`@Endpoint`注解来声明服务,利用Spring的依赖注入特性,实现更灵活的服务定义和管理。 **CXF与SpringBoot整合** 在SpringBoot中集成CXF,通常需要以下步骤...

    spring集成cxf(webservice)

    - **工具支持**:CXF提供了一系列工具,支持JavaBean、Web服务与WSDL之间的转换,并且与Maven、Ant和Spring等工具无缝集成。 - **RESTful服务支持**:除了传统的SOAP服务外,CXF还支持RESTful服务,并且内置了JAX-RS...

    webService(CXF)与spring集成

    这个案例可能包括一个CXF服务端点和一个Spring配置文件,用于演示上述集成过程。 通过这种集成方式,开发者可以充分利用Spring的灵活性和CXF的强大功能,轻松创建和使用Web服务。这种集成模式特别适合大型企业级...

    CXF webService 工具类

    CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它主要用于构建和开发Web服务。CXF使得开发者能够轻松地创建和部署高质量、高性能的SOAP和RESTful Web服务。CXF工具类是CXF框架的一部分,提供了...

    WebService开发服务端的两种方式:jdk、cxf

    WebService是Web应用程序之间进行通信的一种技术,它允许不同的系统通过Internet进行交互,实现了跨平台、跨语言的数据交换。本文将详细介绍使用JDK和CXF两种方式来开发WebService服务端。 一、JDK原生实现...

    基于CXF的WebService实例

    这个实例将展示如何使用CXF从头开始创建一个简单的WebService,并在Tomcat服务器上部署和运行。 1. **CXF环境配置** 在开始之前,确保你已经安装了Java JDK和Apache Tomcat。接着,需要将CXF的JAR文件添加到项目的...

    cxf框架webservice所需所有jar包

    7. **容器支持**:CXF可以很好地与Spring框架集成,同时也支持其他Java EE容器,如Tomcat、Jetty等。 8. **国际化和本地化**:CXF支持多语言环境,允许服务提供者和消费者进行跨语言交互。 9. **错误处理和异常...

    webService 生成插件apache-cxf(2.7.7)

    在使用Apache CXF 2.7.7时,你可能会遇到的常见任务包括配置CXF的Spring XML配置文件、编写服务接口和服务实现、生成客户端代码、部署服务到应用服务器,以及进行性能优化和故障排查。熟悉这些知识点将有助于你高效...

    apache-cxf_WebService

    Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。这个项目的名字"CXF"代表了"CXF融合一切"(CXF = See Everything Fusion)。Apache CXF允许开发者以多种方式创建Web服务,包括使用Java API for Web ...

    JAVA的WebService支持-CXF

    3. **Spring集成**:默认情况下,CXF依赖于Spring框架,这意味着在没有Spring的环境中可能需要额外的配置才能正常运行。 #### 六、示例:服务端实现 下面是一个简单的服务端实现示例,展示了如何使用CXF发布一个...

    最新apache-cxf-3.2.7

    Apache CXF 是一个开源的Java框架,用于构建和开发服务导向架构(SOA)和Web服务。这个"最新apache-cxf-3.2.7"压缩包包含了该框架的3.2.7版本,这是Apache CXF在发布时的一个稳定版本。在本文中,我们将深入探讨...

    webservice示例(cxf开发的例子)

    在这个“webservice示例(cxf开发的例子)”中,我们主要探讨的是如何使用CXF框架来开发一个简单的Web服务。首先,让我们了解Web服务的基本概念和CXF框架的核心功能。 1. **Web服务基础**: - **SOAP**:简单对象...

    cxf实现webservice全面总结

    Apache CXF 是一个强大的开源框架,专为构建和消费 Web 服务而设计。它提供了全面的支持,涵盖了从基本的 Web 服务实现到高级特性的广泛范围。以下是对 CXF 实现 WebService 的全面总结: 1. **Web 服务标准支持**...

    CXF开发实例.pdf

    根据文件提供的内容,本篇文档是关于Apache CXF开发实例的详细说明,主要包含了Web服务的创建、部署以及相关技术的介绍。下面将分别详细阐述以下几个方面的知识点: ### CXF基础知识 Apache CXF是一个开源的服务...

    Apache cxf

    在给出的部分内容中,可以看出这个例子是一个基于Maven的Web应用项目,使用了CXF的多个模块,通过Maven的依赖管理来确保所有必要的组件都被正确引入。 总结起来,Apache CXF 是Java Web服务开发的重要工具,它简化...

    利用CXF发布restful WebService 研究

    1. **环境准备**:确保已安装Java环境,然后下载并配置Apache CXF的库。通常,这可以通过在项目中添加相应的Maven或Gradle依赖来完成。 2. **创建REST服务接口**:定义一个Java接口,声明服务方法,这些方法对应...

    Apache CXF开发Web Service 理解CXF Frontends之Code-First

    Apache CXF是一个开源的Java框架,它用于构建和开发Web服务。这个框架提供了一种灵活的方式来进行服务的创建、发布和调用。"Code-First"是CXF的一个重要概念,意味着开发者首先编写Java代码,然后CXF会自动生成相应...

    CXF的入门实例

    **CXF入门实例详解** Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。...这只是一个起点,CXF还支持更高级的功能,如安全、MTOM、Spring集成等,为开发复杂的Web服务提供了强大的支持。

    apache-cxf-3.3.7.zip

    Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。这个压缩包"apache-cxf-3.3.7.zip"包含了Apache CXF 3.3.7版本的所有组件和资源,允许开发者在他们的应用中集成和使用CXF来创建、部署和管理Web服务。...

Global site tag (gtag.js) - Google Analytics