【问题标题】:apt vs wsgen vs wsimport .Confusion on what to use when and why not to use the otherapt vs wsgen vs wsimport 。关于何时使用什么以及为什么不使用另一个的困惑
【发布时间】:2014-05-18 15:38:41
【问题描述】:

我一直在尝试编写一个 Web 服务 (JAX-WS),并且我已经阅读了从 2006 年到 2013 年的许多教程。它们中的大多数都与某些 IDE 有关。那些谈论手动创建/部署 Web 服务的都是 ant 脚本。到这里一切都很好。

在我检查 ant 脚本的那一刻,混乱就开始了。一些旧教程使用 APT 任务编译 SEI,然后使用 wsgen 生成工件。较新的仅使用 wsgen (尽管 APT 在 ant 脚本中被定义为 taskdef)。另外,正如我一直在阅读有关 JAVA 7 文档的内容,它说您不需要使用 wsgen,因为 javac 本身会执行所有编译和工件请求。 for WS 是在运行时动态生成的。

我尝试在 SEI 上使用 javac 命令并将其部署在 tomcat 上,但它不起作用。

任何人都可以澄清一下我需要在 JAVA SE 7 版本中使用哪些命令来部署 Web 服务。

另外,我想知道每个命令生成什么以及何时使用哪些命令。

据我所知,开发和部署不需要wsimport,只需要构建WS-client。它是否正确?如果没有,请给我指点以澄清我的理解。

提前致谢

另外,如果我重复我自己,那么对不起,因为我是 StackOverflow 的新手并且对此不太熟悉。 :)

【问题讨论】:

    标签: web-services jax-ws wsimport apt wsgen


    【解决方案1】:

    要使用 Java-WS 规范创建 Web 服务,您需要几个工件。 “apt”、“wsgen”和“wsimport”的目的是自动化这个过程。

    有两种创建 Web 服务的方法:自底向上(先代码,然后 WSDL)和自顶向下(先 WSDL,然后代码)。

    自下而上方法:

    • apt:使用源代码,生成 WSDL(和工件)
    • wsgen:使用编译后的代码,生成 WSDL(和工件)

    自上而下

    • wsimport:使用 WSDL,为服务/客户端实现生成 java 代码。

    使用 apt 的优势在于,拥有源代码脚本将能够获取参数名称并在 WSDL 上使用它们。

    网络服务部署

    对于生产,您需要一个负责安全性、可扩展性和资源管理的 Web 容器,但是,出于测试目的,您可以使用 Java SE 上的内置 Web 服务器部署您的 Web 服务,方法是:

     @WebService 
     public class MyService {
                                              
        public static void main(String args[]) {   
            MyService service = new MyService();   
            String url = "service/";   
            Endpoint ep = new Endpoint(url, service); 
        }
         
    
        @WebMethod 
        public String getInfo() {   
            return "Service info"; 
        }
    }
    

    这段代码将生成 WSDL 并将服务发布到您的本地主机/服务。

    【讨论】:

    • 谢谢...这给了我编写符合 JAX-WS 规范的 Web 服务的基本思路。现在 w.r.t apt 和 wsgen,我是否需要显式使用其中的任何一个/?? bcz 我能够在没有任何这些的情况下部署 Myservice 类,它确实工作正常......
    • 不,你没有。 “这段代码将生成 WSDL 并在您的本地主机/服务上发布服务”。 Endpoint 类将为您执行 wsgen。如果您觉得这个答案有帮助,请选择“这个答案有帮助”,或者更好的是,“接受”这个答案。
    猜你喜欢
    • 2017-05-09
    • 2013-11-04
    • 1970-01-01
    • 2013-05-19
    • 2010-12-06
    • 1970-01-01
    • 2019-09-07
    • 2015-04-23
    • 1970-01-01
    相关资源
    最近更新 更多