Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java类\源生成WSDL_Java_Wsdl - Fatal编程技术网

从java类\源生成WSDL

从java类\源生成WSDL,java,wsdl,Java,Wsdl,我有一个包含“logic”类的包(比如CheckAuthenticationDataLogic.java、GetVocabulariesLogic.java)。另一个类ApiService.java用于生成wsdl。 ApiService.java充满了这样的方法: /** * Check authentication data. * @param contractNumber - number of contract. * @param msisdn - msisdn.

我有一个包含“logic”类的包(比如CheckAuthenticationDataLogic.java、GetVocabulariesLogic.java)。另一个类ApiService.java用于生成wsdl。 ApiService.java充满了这样的方法:

/**
   * Check authentication data.
   * @param contractNumber - number of contract.
   * @param msisdn - msisdn.
   * @param superPassword - super password.
   * @return result of authentication.
   */
  @WebMethod
  @WebResult(name = "result")
  public CheckAuthenticationDataResult checkAuthenticationData(@WebParam(name = "contractNumber")
                                                               final String contractNumber,
                                                               @WebParam(name = "msisdn")
                                                               final String msisdn,
                                                               @WebParam(name = "superPassword")
                                                               final String superPassword) {
    return runLogic(new CheckAuthenticationDataLogic(contractNumber, msisdn, superPassword));
  }
正如你看到的,它只是一个代理方法。。。因此,我希望避免重复同样的工作,直接从逻辑类生成WSDL,而不编写ApiService.java。 是否存在用于此目的的工具或库

Metro()web服务堆栈提供了一个工具(wsgen),用于从带注释的Java生成WSDL。

该工具生成JAX-WS web服务中使用的JAX-WS可移植构件。请注意,您不必在开发时生成WSDL,因为当您部署服务时,JAXWS运行时将自动为您生成WSDL


您可能需要检查JAX-WSRI,尤其是(请特别注意fromjava示例)。

是另一种选择,特别是java2wsdl命令/插件,您不需要Metro(Metro=JAX-WSRI+WSIT/Tango),您只需要Java 6中包含的JAX-WSRI。所以,如果您使用的是Java 6,您实际上不需要任何东西。@Pascal Thivent:您完全正确。尽管如此,我认为Metro通常比JSE提供的JAX-WSRI更新得多。JDK6更新版本14有JAX-WS2.1.6RI,这相当不错。但事实上,Metro 1.5包括JAX-WS2.1.7(这被认为是一个次要版本,请参阅)。然而,如果您想使用JAX-WSRI2.1.7,您可以从下载,您仍然不需要Metro。但老实说,我不会费心去玩认可的目录机制。我在线程“main”java.lang.NoClassDefFoundError中出现了一个错误“Exception”,这是因为这个类不是放在类路径中,而是放在远程库中(库只是放在另一个文件夹中)。如何将这些库包含到我的类路径中?wsgen-wsdl:Xsoap1.2-extension-d testGen-cp/home/vidocq/workspace/ws-crp/build/output/eclipse classes com.crp.logic.checkAuthenticationDataLogic使用
-cp
运行
wsgen
时会出现什么错误?请更新您的问题,详细说明您的项目配置(源位置)和跟踪。