2013-04-14 27 views
7

我有一个Web服务启动并运行eclipse/tomcat/axis2。我想将它链接到bpel进程,所以我需要wsdl文件。我可以通过启动服务器,并打算轴2是否自动创建(并保存)wsdl文件?

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

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

+0

我不使用轴,我使用将JBossWS(不是说这是更好的,只是指出它有),它有一个类似的行为:如果你去 'http:// serviceUrl/MyService?wsdl'你可以得到wsdl文件。事情是:JBoss实际上创建了一个丑陋的命名文件,例如“MyService7365956195937503885.wsdl”,然后在应用程序(战争或耳朵)部署时在服务器日志上输出其路径(如果需要,可以按照路径得到它);也许axis也是这样的。 – acdcjunior

回答

8

默认情况下,当您添加?wsdl时,Axis2不会检索先前生成的WSDL文档。它每次都会产生。

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

services.xml给出的服务名称和定义的服务名称: 但是,如果你把WSDL文档文件,并在服务存档文件中的META-INF文件夹内的相应的XML架构文件,可以用回收在WSDL 文件中应该是一样的。

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

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(); 
} 
相关问题