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

serviceMix发布webservice服务

    博客分类:
  • j2ee
阅读更多

利用serviceMix对外发布外部的webservice服务,首先要使用mvn名进行工程打包。

在使用的过程中对xml及wsdl文件进行编程的时候,一定要用xml编辑器或无符号的记事本进行编辑,否则在复制粘贴的过程中会出现意想不到的错误。

mvn命令:

  1.  建立工程目录 :mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-project-root -DgroupId=org.apache.servicemix.samples -DartifactId=servicemix-cxf-bc-demo
  2. 工程发布到我们的本地 Maven repository :mvn install
  3. 建立SU :mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-cxf-bc-service-unit -DgroupId=org.apache.servicemix.samples -DartifactId=cxf-bc-su-demo
  4. 建立SA :mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-service-assembly -DgroupId=org.apache.servicemix.samples -DartifactId=cxf-bc-sa-demo
  5. 建立好SA组件:mvn install

hello word的例子:

现在已经有的一个hellow word的webservice服务,wsdl如下:

 

首先建立根目录mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-project-root -DgroupId=org.apache.servicemix.samples -DartifactId=servicemix-cxf-bc-demo

然后执行mvn install

 

建立SU

进入新建的目录servicemix-cxf-bc-demo  : cd servicemix-cxf-bc-demo

mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-cxf-bc-service-unit -DgroupId=org.apache.servicemix.samples -DartifactId=cxf-bc-su-demo

用来创建一个标准的CXF-BC-SU组件

现在进入新建的组件的文件夹。

        我们看到一个pom.xml文件,这个是对这个组件进行配置的一个文件。
        打开,我们可以看到详细内容
        现在我们修改这个组件的名字
        将<name>A Cxf BC Service Unit</name>
        改成<name>Cxf-Hello-SU</name>
然后把我们的helloWord.wsdl文件放到 %/cxf-bc-su-demo\src\main\resources下,可以删除service.wsdl文件,然后修改 helloWord.wsdl,修改如下:
    <binding name="HelloWordPortBinding" type="tns:HelloWordI">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <operation name="say">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="HelloWordServiceProxy">
        <port name="HelloWordPortProxy" binding="tns:HelloWordPortBinding">
            <soap:address location="http://localhost:8193/HelloWordI/HelloWord"/>
        </port>
    </service>
</definitions>
编辑xbean.xml文件
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" xmlns:ws="http://service.simple.cxf.guanghua.com/" xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance">
    <cxfbc:consumer wsdl="classpath:HelloWord.wsdl" service="ws:HelloWordServiceProxy" endpoint="ws:HelloWordPortProxy" targetService="ws:HelloWordService" targetEndpoint="ws:HelloWordPort" targetInterface="ws:HelloWordI"/>
    <cxfbc:provider wsdl="http://localhost:8084/HelloWordI/HelloWord?wsdl" service="ws:HelloWordService" endpoint="ws:HelloWordPort"/>
</beans>
注意,要添加hellow服务的命名空间 (xmlns:ws="http://service.simple.cxf.guanghua.com/"

修改 su的pom.xml文件,    <groupId>org.apache.servicemix.samples</groupId>
    <artifactId>cxf-bc-su-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jbi-service-unit</packaging>
    <name>cxf-hello-us </name>
    <url>http://www.myorganization.org</url>
    <build>
这样service unit就建好了,接下来我们建立service assembly
        在我们的工程路目下运行
mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix- service-assembly -DgroupId=org.apache.servicemix.examples -DartifactId=my-cxf-sa 
        现在可以看到工程目录中新建出来了SA的文件夹
        同样,我们修改一个名字
        <name>Cxf-Hello-SA</name>
 
        接下来,我们要在这个SA中注册我们刚才制作的SU
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.samples</groupId>
            <artifactId>cxf-bc-su-demo</artifactId>
            <version>1.0-SNAPSHOT</version>
            <type>jbi-service-unit</type>
        </dependency>
    </dependencies>
好了现在一切就绪,我们在工程目录下面运行
mvn install
        就可以建立好组件了
 
        在build successful之后,我们就可以在
        %\my-cxf-sa\target
        目录下面看到我们建立好的jar包
将这个jar包复制到servicemix目录下 面的\hotdeploy文件夹,来正式发布到servicemix当中
        如此一来,我们就成功的发布了一个服务到servicemix上

如果在serviceMix发布服务的过程中出现 serviceMix-cxf-bc为启动的错误,那么需要将servicemix-cxf-bc-2009.01-installer.zip从hotdeploy中移除,然后在添加进来,这样servicemix-cxf-bc组件就启动了,然后在利用cxf发布服务

 

分享到:
评论

相关推荐

    Servicemix做代理服务器发布WebService

    Servicemix做代理服务器发布WebService,Login登录实际代码。对应博客中ServiceMix做代理服务器发布WebService(附带案例源码) 该篇例子,需要的可以去看看,这个是源码。

    ServiceMix做内部服务器发布WebService(附带案例源码)

    在本案例中,我们将探讨如何利用ServiceMix来作为内部服务器发布Web服务。 发布Web服务在现代企业架构中扮演着关键角色,允许不同系统间进行数据交换和协同工作。ServiceMix作为ESB,具有强大的Web服务支持,可以...

    servicemix 7安装使用及camel-cxf代理webservice

    【标题】:“servicemix 7安装使用及camel-cxf代理webservice”涉及的知识点主要涵盖Apache ServiceMix 7的安装配置、Apache Camel和Apache CXF的集成使用,以及如何利用它们来代理Web服务。 Apache ServiceMix是...

    使用Servicemix(ESB)发布一个外部的WebService

    #### 在Servicemix上发布服务 Servicemix的服务发布过程涉及多个关键组件和概念,包括ServiceUnit、ServiceAssembly、Consumer、Provider和EndPoint。 - **ServiceUnit**代表单个服务实体,而**ServiceAssembly**...

    Servicemix(ESB)发布WebService.doc

    - **发布服务**:通过Servicemix的XML配置文件(如Spring配置文件)声明服务,指定服务的端点地址。 - **测试服务**:发布后,可以使用CXF提供的测试工具或者标准的SOAP客户端(如SoapUI)进行服务调用和验证。 5...

    servicemix 3安装及cxf-bc组件代理webservice服务

    【标题】:“Servicemix 3安装及CXF-Bundle Component代理WebService服务” 在本文中,我们将深入探讨Apache Servicemix 3的安装过程以及如何使用CXF-Bundle Component来代理WebService服务。Apache Servicemix是...

    基于JBI的ServiceMix服务总线.

    1. **创建WebService服务**:用户可以轻松地在ServiceMix环境中创建WebService服务,并利用这些服务实现与其他系统的交互。 2. **创建代理**:ServiceMix支持创建多种类型的代理,包括监听外部服务请求的绑定组件...

    使用Web Services Explorer测试Webservice服务.docx

    本资源聚焦于如何使用Web Services Explorer来测试Webservice服务,同时涵盖了安装ServiceMix的相关步骤,这对于Java开发者,特别是对服务集成感兴趣的人员来说,是一份非常有价值的教程。 首先,让我们深入了解Web...

    WebService_CXF范例.

    接着,你可以编写服务端和客户端代码,通过CXF提供的API来创建、发布和调用WebService。这个过程将帮助你直观地理解CXF如何实现服务的发布和调用。 总的来说,Apache CXF是一个强大且灵活的框架,适用于构建和消费...

    webservice

    对于大型项目,可能还需要使用服务治理工具,如Apache ServiceMix或Red Hat JBoss Fuse,来管理Web服务的生命周期。 总之,Java访问WebService服务主要依赖JAX-WS和相关框架,通过解析WSDL文件生成客户端代码或使用...

    WebService_CXF学习

    接着,编写Java代码来定义服务接口和服务实现,最后配置CXF的部署描述符,以便于发布和访问这个服务。 总的来说,Apache CXF提供了一个全面的框架,使开发人员能够高效、灵活地构建和使用WebService,是Java开发者...

    CXF-WebService-开发指南、技术文档.docx

    - 可以通过CXF提供的工具或自定义代码发布服务。例如,可以创建一个启动类,配置CXF并注册服务端点。 **三、CXF 对 Interceptor 拦截器的支持** CXF支持拦截器(Interceptor)机制,允许在服务处理流程中插入...

    WebService CXF学习-入门篇.pdf

    CXF允许开发者通过注解轻松地暴露服务接口,并通过JAX-WS标准进行服务的发布和调用。同时,CXF还支持动态调用接口(DII),使得在运行时可以动态地创建和调用Web服务。 通过以上步骤,我们可以完成一个基本的"Hello...

    WebService_CXF学习.doc

    **WebService** 是一种通过网络提供的服务,允许不同系统之间进行交互。它采用标准的Internet协议(如HTTP、XML、SOAP等),使得不同语言编写的程序能够进行通信。WebService的核心优势在于它的开放性和互操作性,这...

    CXF框架开发WebService概述及代码

    ### CXF框架开发WebService概述及代码 #### WebService概念与CXF框架 WebService技术使得不同系统之间能够通过网络进行通信,而无需关心底层的具体实现细节。这种基于HTTP协议的组件服务,强调的是分布式应用程序...

    WebService-CXF学习.doc

    接着,你可以编写一个简单的 Java 类,定义服务接口和实现,使用 CXF 提供的工具生成相应的 WSDL 文件,并配置服务发布和客户端调用。这个过程演示了如何使用 CXF 创建、部署和调用 Web 服务。 总之,Apache CXF 是...

    CXF依赖包,CXF依赖包,webservice

    - **发布服务**:最后,通过CXF的Servlet或JAX-WS端点发布服务。 4. **创建Web服务客户端**: - **从WSDL生成客户端代码**:CXF可以自动从WSDL文件生成客户端代理类,使得调用服务如同调用本地方法一样简单。 - ...

Global site tag (gtag.js) - Google Analytics