`

webservice打包部署

阅读更多
到目前开发webservice有很多的插件了,比如:axis2,mf等,我个人觉还是axis2比较好用一些。可以从网站上下载axis2:

Apache Axis2 是Axis的后续版本,是新一代的SOAP引擎。Axis2的主要特点有:
      1)采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。
      2)支持不同的消息交换模式。目前Axis2支持三种模式:In-Only、Robust-In和In-Out。In-Only消息交换模式只有 SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在 SOAP请求和应答。
      3)提供阻塞和非阻塞客户端 API。
      4)支持内置的 Web服务寻址 (WS-Addressing) 。
      5)灵活的数据绑定,可以选择直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定方法,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。
      6)新的部署模型,支持热部署。
      7)支持HTTP,SMTP,JMS,TCP传输协议。
      8)支持REST (Representational State Transfer)。

5.Axis2 支持的规范包括:
    -SOAP 1.1 and 1.2
   -Message Transmission Optimization Mechanism (MTOM), XML Optimized Packaging (XOP) and SOAP with Attachments
   -WSDL 1.1, including both SOAP and HTTP bindings
   -WS-Addressing (submission and final)
   -WS-Policy
   -SAAJ 1.1

1、怎么使用axis2网上有很多的资料,我在这里就不多加说明了,随便一搜一大堆。在这里想说明的就是耶可以不借助eclipse插件耶可以打包(*.aar)部署。

把axis2.war包解压可以看到 :
+-example
|-------- +-sample
     |------- ×××.class【是生成的.class文件不是.java 文件目录】
|---------+-META-INF
   |------- services.xml

2、其中有一个services.xml
services.xml 此文件用于注册服务器端程序中的公有对外方法类型,以及描述信息,典型地,一个services.xml的文档结构如下:
xml 代码

    <service name="HelloWorldService" scope="application"> 
        <description>Hello World Service</description> 
       <operation name="getHelloWorldMs"> 
          <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
       </operation> 
       <operation name="setHelloWorldMs"> 
          <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" /> 
       </operation> 
       <operation name="getDownloadConfirm"> 
         <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
      </operation> 
      <parameter name="ServiceClass">samples.helloworld.service.axiom.HelloWorldService</parameter> 
   </service> 


其中的ServiceClass是必须参数,用来指明operation所在的ServiceClass(<!-- ServiceClass指定Java Class的位置,即实现服务的类。 -->)
    <parameter name="ServiceClass">samples.helloworld.service.axiom.HelloWorldService</parameter>

其中的messageReceiver类型可以分为2类,如果ServiceClass 中的方法有返回值则messageReceiver 采用IN-OUT模式,如果没有返回值则采用IN模式,相应地其客户端的调用方式也会有所不同。在IN-OUT模式下,采用sendReceive方法将数据发送到服务器段,服务器端在收到信息后将处理后的结果交给sendReceive ;在IN模式下,使用 fireAndForget 方法,调用此方法后,服务器端不会将处理结果返回给客户端
xml 代码
  <!-- operation 与Java Class中方法名对应。 -->
   <operation name="getHelloWorldMs"> 
      <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
   </operation> 
    <operation name="setHelloWorldMs"> 
       <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" /> 
   </operation> 
   <operation name="getDownloadConfirm"> 
      <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
   </operation> 


3、一个WSDL文件,该文件是传输过程中数据的Data Structure描述。可以使用Axis2提供的工具java2wsdl自动生成。
通常在定义好一个ServiceClass的框架后,尽管每个业务可能还没有完全实现,但是就已经可以用来直接生成Data Structure描述文件。
services.xml 此文件用于注册服务器端程序中的公有对外方法类型,以及描述信息,典型地,一个services.xml的文档结构如下:
xml 代码

    <service name="HelloWorldService" scope="application"> 
        <description>Hello World Service</description> 
        <operation name="getHelloWorldMs"> 
        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
        </operation> 
       <operation name="setHelloWorldMs"> 
          <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" /> 
        </operation> 
       <operation name="getDownloadConfirm"> 
          <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
       </operation> 
       <parameter name="ServiceClass">samples.helloworld.service.axiom.HelloWorldService</parameter> 
   </service> 


其中的ServiceClass是必须参数,用来指明operation所在的ServiceClass
<parameter name="ServiceClass">samples.helloworld.service.axiom.HelloWorldService</parameter>

4、我们可以通过ant来把我们所写的代码打包成aar。然后部署导axis2下执行。就把我所写的ant分享给大家吧。
<?xml version="1.0" encoding="UTF-8"?>
<project name="webservice" default="dist">
    <property name="name" value="webservice" />
<property name="version" value="0.1" />
<property name="author" value="xipei(xipei_1984@163.com)" />
<property name="build" value="build" />
<property name="build.classes" value="${build}/classes" />
<property name="dist" value="dist" />
<property name="src" value="src" />
<property name="lib" value="lib" />
<property name="conf" value="conf" />

<path id="project.class.path">
<fileset dir="${lib}">
<include name="*.jar" />
<include name="/${conf}/*.*" />
</fileset>
</path>

<target name="init">
<delete dir="${build}" />
<delete dir="${dist}" />
<mkdir dir="${build}" />
<mkdir dir="${build.classes}" />
<mkdir dir="${dist}" />
</target>

<target name="compile" depends="init">
<javac debug="true" srcdir="${src}" destdir="${build.classes}">
<classpath refid="project.class.path" />
</javac>
</target>
<target name="dist" depends="compile">
<jar jarfile="${dist}/${name}.aar">
<manifest>
<attribute name="Main-Class" value="**.**.service"/>
<attribute name="Classpath" value="*.jar;*.xml;*.MF"/>
</manifest>
<zipfileset dir="${build.classes}"/>
<zipfileset dir="${conf}"  excludes="*.properties"/>
</jar>
</target>
<target name="clean">
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
</project>

分享到:
评论

相关推荐

    webservice 打包 开发工具

    总结,Web服务的开发和打包涉及到多个技术环节和工具,从选择合适的协议和标准,到利用开发工具创建和调试服务,再到最后的打包和部署,每个步骤都至关重要。理解这些概念和技术对于构建高效、可靠的分布式系统具有...

    webservice打包

    【Web服务(Web Service)打包】是将基于Web的接口封装成可独立部署的组件,以便在不同系统间实现互操作性。Web服务利用开放标准如XML(Extensible Markup Language)、SOAP(Simple Object Access Protocol)、WSDL...

    Ant部署WebService服务

    本主题将深入探讨如何使用Ant来部署WebService服务。 WeberService是一种在网络上通过标准协议(如SOAP或REST)提供服务的技术,使得不同系统之间可以进行数据交换和业务交互。在Java世界中,常见的WebService框架...

    WebService例子及其如何部署到tomcat上面

    总结来说,本示例通过JAX-WS展示了如何创建和部署一个WebService,其中包括服务接口的定义、实现、WSDL的生成以及在Tomcat上的部署步骤。理解并掌握这些知识点对于开发跨平台的分布式应用程序至关重要,因为...

    webservice部署tomcat简单例子(客户端和服务端)

    5. **部署到Tomcat**:将这个Web应用打包成WAR文件(例如:hello-web-service.war),然后将它复制到Tomcat的`webapps`目录下。Tomcat会自动解压并部署这个应用。 6. **启动Tomcat**:启动Tomcat服务器,Web服务就...

    利用Axis2实现WebService开发与部署

    【标题】:“利用Axis2实现WebService开发与部署” 【描述】:“利用Axis2实现WebService开发与部署-3中方法进行开发” 【标签】:“WebService” 本文将详细讲解如何使用Apache Axis2框架来开发和部署Web ...

    用Eclipse生成WebService

    Eclipse作为一款强大的集成开发环境(IDE),提供了方便的工具来帮助开发者创建、部署和测试Web服务。本文将详细讲解如何使用Eclipse生成Web服务,并根据WSDL地址反向生成Java类。 首先,让我们了解Web服务的基础...

    axis1.4 部署webservice说明

    - 部署:将WSDD与Java类打包到一个WAR文件,然后部署到Web服务器(如Tomcat)的Axis插件下。 - 测试:使用`wsdl2java`生成客户端代码,编写测试用例调用服务。 - 运行:启动Web服务器,Web服务即可对外提供服务。...

    cxf的webservice部署

    综上所述,CXF的Web服务部署涉及多个层面,包括服务的创建、配置、打包和部署,以及相关的源码理解和工具使用。对于开发和维护基于CXF的Web服务,理解这些过程和细节至关重要。如果想深入了解,可以参考提供的博客...

    EAS-WebService开发指南.pdf

    在编写了业务逻辑后,开发者需要将WebService打包。在本例中,我们需要将编写的类及自动生成的所有相关类的全路径class拷贝到WEB-INF文件夹中的classes目录下,并将生成的WSDD文件拷贝到WEB-INF目录下。 Step 7: ...

    tomcat部署webservice程序

    描述中提到的“1:部署webservice的结果文件”可能是指部署后的WAR(Web ARchive)文件,这是Java Web应用的标准打包格式,包含了所有必要的类、资源和配置文件。这个WAR文件通常会被放入Tomcat的webapps目录下,由...

    Tomcat上部署WebService服务所需要引用的jar包集合

    在Tomcat这样的Java应用服务器上部署WebService服务,需要依赖一些特定的库,即jar包。本资源集合提供的"Jax-ws RI"(Java API for XML Web Services Reference Implementation)正是用于实现SOAP协议的Java工具包,...

    weblogic12c部署webservice错误问题WSSERVLET11

    然而,部署过程中可能会遇到各种问题,如在本问题中遇到的"weblogic12c部署webservice错误问题WSSERVLET11"。 错误信息"无法解析运行时描述符: java.lang.IllegalStateException: MASM0001:"指出在部署Web服务时...

    WebService详细教程包含jar 源码 说明文档 和部署方式

    本教程将深入讲解WebService的核心概念、工作原理、开发步骤以及部署策略。 **一、WebService核心概念** 1. **SOAP(Simple Object Access Protocol)**: SOAP是传输数据的一种协议,以XML格式封装数据,确保了...

    WebService依赖jar以及xml.zip

    例如,Apache CXF是一个流行的开源框架,它提供了开发和部署SOAP和RESTful WebService的能力。Axis2则是另一个类似的框架,专注于提供高性能和可扩展性。而Metro是Java EE环境中常用的WebService实现,特别适合在...

    WebService实现步骤(包括WEBSERVICE的demon)

    首先,需要将应用程序打包成 war 包,然后将其部署到 WebSphere 服务器上。在 cmd 命令行中,输入以下命令: ``` jar –cvf xyz.war ./* ``` 这将将当前目录下的所有文件打包成 xyz.war 文件。 2. 创建 WebService ...

    webService部署tomcat需要的jax-ws jar包

    3. 将服务类部署到Tomcat的`WEB-INF/classes`目录下,或将其打包到`WAR`文件中。 4. 在`web.xml`配置文件中配置`Servlet`,指定`SOAP`服务的实现类和URL映射。 5. 配置Tomcat的`server.xml`,如果需要,设置监听...

Global site tag (gtag.js) - Google Analytics