轴2是否自动创建(并保存)wsdl文件?

时间:2013-04-14 00:48:04

标签: java web-services axis2 wso2 bpel

我有一个使用eclipse / tomcat / axis2运行的Web服务。我想把它链接到一个bpel进程,所以我需要wsdl文件。我可以通过启动服务器并转到

来显示wsdl
http://localhost:8080/axis2/services/MyService?wsdl

但是如果我搜索项目的目录结构,我找不到wsdl文件。我当然可以从浏览器中复制并粘贴wsdl并将其保存为文本文件,然后将bpel指向该wsdl。但似乎轴2会为我生成(并保存)一个wsdl文件,对吗?

2 个答案:

答案 0 :(得分:8)

默认情况下,当您添加?wsdl时,Axis2不会检索以前生成的WSDL文档。它每次都会生成。 但是,如果将WSDL文档文件和相应的XML Schema文件放在服务存档文件中的META-INF文件夹中,则可以使用以下命令恢复它:

http://localhost:8080/axis2/services/MyService.wsdl

services.xml中给出的服务名称和WSDL中定义的服务名称 文件应该是一样的。

另一方面,如果要保存生成的WSDL文档,只需使用类org.apache.ws.java2wsdl.Java2WSDL在项目的某些类上运行类似下面的片段作为 Java Application

public static void main(String[] args) throws Exception {
    Java2WSDL.main("-cn com.abc.MyService".split("\\s+"));
}

执行完毕后,生成的WSDL文档文件和相应的XML Schema文件可以在项目文件夹中找到。

enter image description here

要了解使用此工具使用它们的更多选项,请使用以下命令:

public static void main(String[] args) throws Exception {
    Java2WSDL.printUsage();
}

答案 1 :(得分:1)

它不会在文件系统中保留wsdl。您需要将其另存为.wsdl文件并将BPEL指向它。或者你可以按照http://axis.apache.org/axis2/java/core/tools/eclipse/wsdl2java-plugin.html中提到的java2wsdl向导来生成代码中的wsdl。