从WSDL文件创建web服务(不是web服务客户端)

问题描述:

我有一个需求,根据这个需求我必须创建一个基于wsdl文件的Axis2 Web服务。我已经有了wsdl文件。我以前一直在使用wsdl2java创建Web服务客户端,但我不知道如何使用给定的wsdl文件创建Web服务。有人可以帮助我给出正确的命令或选项来使用。从WSDL文件创建web服务(不是web服务客户端)

此外,我需要在WAS 6.1和JBoss 5.1.0 GA上发布它,为此应该做什么。

+0

听说我们可以利用的WSDL2Java命令的一些选项生成一些骨架代码。这可以用于这里的要求。 – 2013-04-02 06:56:10

+0

我很惊讶,没有人曾经尝试过。这不是。 1网站关于技术问题和答案,仍然没有回应。请帮助我。 – 2013-04-04 06:45:21

我能够得到答案。在此处更新以供他人参考。

使用WSDL开始,创建和部署服务

我们从一个WSDL,但是如果你没有一个WSDL,需要从Java类创建WSDL,请使用的Java2WSDL工具创建WSDL。正如您可能已经知道的那样,服务的WSDL描述提供了该Web服务的精确定义。 Axis2可以处理WSDL并生成为您完成大部分工作的Java代码。在服务器端,我们称它们为Skeletons,在客户端称为Stubs。

写使用Axis2 Web服务的这种方法包括四个步骤:

  1. 生成框架代码。
  2. 添加业务逻辑。
  3. 为Web服务创建一个* .aar存档(Axis Archive)。
  4. 部署Web服务。

第一步:生成骨架代码

要生成骨骼和所需的类,你可以使用Axis2中提供的WSDL2Java工具。该工具位于发行版的bin目录中,可以使用提供的脚本(.bat或.sh)执行。该工具的参数列表可以在Axis2参考文档中找到。

本例中wsdl2java工具的参数如下。请注意,对于这个例子,我们使用xmlbeans作为数据绑定框架,并且生成的代码将被放置在“samples”目录中。

wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd -d xmlbeans 
-o ../samples -p org.apache.axis2.userguide

这将产生在“抽样/ SRC”目录所需的类和架构类中的“样本/资源/ schemaorg_apache_xmlbeans”目录中。请注意,这些不是源文件,应该在类路径中可用,以便编译生成的类。

第2步:实现业务逻辑

现在你应该填写业务逻辑的骨架类。您可以在samples/src/org/apache/axis2/userguide目录中的生成的类中找到框架类-Axis2SampleDocLitServiceSkeleton.java-让我们在框架中填充echoString(..)方法,如下所示。 “samples/wsdl”目录中的-Axis2SampleDocLit.wsdl有三个操作:echoString,echoStringArray,echoStruct。看的时候,他们都充满了别人会怎么看,看代码为Axis2SampleDocLitService服务

public org.apache.axis2.userguide.xsd.EchoStringReturnDocument 
    echoString(org.apache.axis2.userguide.xsd.EchoStringParamDocument param4) throws Exception { 
    //Use the factory to create the output document. 
    org.apache.axis2.userguide.xsd.EchoStringReturnDocument retDoc = 
      org.apache.axis2.userguide.xsd.EchoStringReturnDocument.Factory.newInstance(); 
    //send the string back. 
    retDoc.setEchoStringReturn(param4.getEchoStringParam()); 
    return retDoc; 

第3步:创建存档文件

的Axis2服务必须捆绑为一个服务档案。下一步是将类打包到.aar(axis2归档文件)中并将其部署到Axis2中。有一个用代码生成的ant文件;它会为您生成Axis2服务归档。但是,如果你不想使用Ant,您可以通过以下步骤创建一个档案:

编译生成的代码。
复制“资源/ schemaorg_apache_xmlbeans” XMLBeans类到您的类文件夹中。
在生成的文件,会出现一个services.xml文件,这是Axis2服务部署描述符。[详细了解一下。资源/ service.xml中复制到META-INF/services.xml的
(要编写自己的service.xml文件,请参阅编写Web服务使用Axis2的主要API的子部分)

使用内容创建存档的类文件夹。将目录更改为类文件夹并运行jar -cf service-name.aar来创建存档。

第4步:部署Web服务

该服务可以通过简单地去掉了 “.aar” 文件到你的servlet “/ webapps /下的Axis2/WEB-INF” “服务” 目录中进行部署容器。我们建议使用Apache Tomcat作为servlet容器。请注意,服务目录仅在Tomcat爆炸axis2.war后才可用。但是,最简单的方法是在将axis2.war复制到webapps目录(如果尚未启动它)后启动Tomcat。检查Axis2的Web应用程序(

http://localhost:8080/axis2
)的主页上的“服务”的链接,看到了Axis2SampleDocLitService是否部署的服务下显示。

我们建议您使用分解的配置在WebLogic和WebSphere应用程序服务器上部署Axis2的WAR支持的Axis2的hotupdate/hotdeployment功能。有关详细信息,请参阅Application Server特定配置指南

注:Axis2中提供了一种简单的方式来部署使用Axis2的Web应用程序的管理模块中的“上传服务”工具的Web服务。 (见Web管理指南获取更多信息)

请参见以下链接为文章全文:http://axis.apache.org/axis2/java/core/docs/adv-userguide.html