从WSDL文件创建web服务(不是web服务客户端)
我有一个需求,根据这个需求我必须创建一个基于wsdl文件的Axis2 Web服务。我已经有了wsdl文件。我以前一直在使用wsdl2java创建Web服务客户端,但我不知道如何使用给定的wsdl文件创建Web服务。有人可以帮助我给出正确的命令或选项来使用。从WSDL文件创建web服务(不是web服务客户端)
此外,我需要在WAS 6.1和JBoss 5.1.0 GA上发布它,为此应该做什么。
我能够得到答案。在此处更新以供他人参考。
使用WSDL开始,创建和部署服务
我们从一个WSDL,但是如果你没有一个WSDL,需要从Java类创建WSDL,请使用的Java2WSDL工具创建WSDL。正如您可能已经知道的那样,服务的WSDL描述提供了该Web服务的精确定义。 Axis2可以处理WSDL并生成为您完成大部分工作的Java代码。在服务器端,我们称它们为Skeletons,在客户端称为Stubs。
写使用Axis2 Web服务的这种方法包括四个步骤:
- 生成框架代码。
- 添加业务逻辑。
- 为Web服务创建一个* .aar存档(Axis Archive)。
- 部署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
听说我们可以利用的WSDL2Java命令的一些选项生成一些骨架代码。这可以用于这里的要求。 – 2013-04-02 06:56:10
我很惊讶,没有人曾经尝试过。这不是。 1网站关于技术问题和答案,仍然没有回应。请帮助我。 – 2013-04-04 06:45:21